寻求可生效的AWS IAM策略以防止API Gateway意外删除
解决API Gateway意外删除的IAM策略问题
你当前的策略未生效,大概率是因为资源ARN的覆盖范围不够,或者未匹配到API删除操作的全部场景。以下是经过验证的有效策略,仅阻止API Gateway的删除操作,不影响其他正常操作:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeleteAPIGateway", "Effect": "Deny", "Action": "apigateway:DELETE", "Resource": [ "arn:aws:apigateway:*::/apis/*", "arn:aws:apigateway:*::/apis" ] } ] }
关键调整说明:
- 补充
arn:aws:apigateway:*::/apis资源:当通过控制台批量删除API或触发顶层API删除操作时,部分场景会匹配这个根路径资源,仅指定/apis/*可能覆盖不到所有删除触发的资源匹配逻辑。 - 简化Action写法:单个
apigateway:DELETE即可覆盖所有API Gateway的删除操作,数组包裹写法也有效,但简化后不影响功能。
额外排查点:
- 确保该策略直接附加到需要限制的IAM用户/角色/组,避免因层级继承导致策略未生效。
- 检查是否存在其他允许
apigateway:DELETE的策略:虽然IAM的Deny优先级高于Allow,但如果存在基于资源标签或更宽松的Allow策略,需确认Deny策略的作用范围完全覆盖目标API。 - 兼容性:上述策略同时覆盖REST API和HTTP API的删除操作,无需区分API类型。
内容的提问来源于stack exchange,提问作者Sierra6
相关产品推荐
相关产品推荐

