我有一个关于API网关部署的自动化:
aws apigateway create-deployment ...
我试图将我的功能包装在持续部署中,我似乎无法理解IAM权限,它似乎偏离了其他服务的所有其他IAM权限:
-
apigateway:GET
-
apigateway:PUT
-
apigateway:POST
-
apigateway:DELETE
-
apigateway:PATCH
-
apigateway:OPTIONS
(Cloudonaut Documentation; "Control Access for Managing an API")
权限似乎只涵盖阶段:
-
arn:aws:apigateway:region::/restapis/*
适用于区域AWS区域中的所有资源,方法,模型和阶段 . -
arn:aws:apigateway:region::/restapis/api-id/*
对于API中的所有资源,方法,模型和阶段,在区域的AWS区域中具有api-id标识符 . -
arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/*
对于资源中具有标识符resource-id的所有资源和方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 . -
arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/*
对于资源中具有标识符resource-id的所有方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 . -
arn:aws:apigateway:region::/restapis/api-id/resources/resource-id/methods/GET
仅用于具有标识符resource-id的资源中的GET方法,该标识符位于具有区域的AWS区域中的api-id标识符的API中 . -
arn:aws:apigateway:region::/restapis/api-id/models/*
对于API中的所有模型,在区域的AWS区域中具有api-id标识符 . -
arn:aws:apigateway:region::/restapis/api-id/models/model-name
对于名称为model-name的模型,该模型位于API中,区域的AWS区域中具有api-id标识符 . -
arn:aws:apigateway:region::/restapis/api-id/stages/*
对于API中的所有阶段,在区域的AWS区域中具有api-id的标识符 . -
arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
仅适用于API中具有stage-name名称的阶段,其区域的AWS区域中具有api-id的标识符 .
如何授予为给定阶段创建部署的能力? apigateway:PUT
? apigateway:POST
?
2 回答
通过测试,我已经阐明了所需的政策:
可能无法将部署限制到给定阶段,但我不知道,因为我没有对此进行测试 .
试试这个:
{ "Action": "apigateway:POST", "Resource": "arn:aws:apigateway:*::/restapis/*/stages/${stage_name}", "Effect": "Allow", "Sid": "VisualEditor" }