我正在寻找一种方法来防止意外删除 API 网关。但是我找不到执行此操作的 IAM 策略示例。
我目前在:
{
"Sid": "DenyDeleteAPIGateway",
"Effect": "Deny",
"Action": [
"apigateway:DELETE"
],
"Resource": [
"arn:aws:apigateway:*::/apis/*"
]
}
但是好像没啥作用。 我的目标只是防止实际的 API 网关删除,不阻止实际 AWG 上的所有操作。
你的行动是正确的,但你需要限制资源。 https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonapigatewaymanagement.html
类似:
{
"Sid": "DenyDeleteAPIGateway",
"Effect": "Deny",
"Action": [
"apigateway:DELETE"
],
"Resource": [
"arn:aws:apigateway:*::/restapis/*"
]
}
应该这样做。 API Gateway V1 使用
/restapis
,API Gateway V2 使用 /apis
。
在探索了互联网最黑暗的角落并在 Amazon Q 的帮助下,以下是保护您的 API 网关免遭意外删除的策略。
{
"Statement": [
{
"Action": "apigateway:DELETE",
"Effect": "Deny",
"NotResource": [
"arn:aws:apigateway:*::/restapis/*/resources/*",
"arn:aws:apigateway:*::/restapis/*/resources/*/methods/*"
],
"Sid": "APIGatewayDenyDelete"
}
],
"Version": "2012-10-17"
}
这会拒绝对 API 网关资源执行 DELETE 操作,同时允许删除 API 网关资源和方法。