【发布时间】:2021-06-03 17:52:12
【问题描述】:
我有一个 SAM 模板,其中包含创建 lambda 函数和 api 网关的资源。该模板与 lambda 函数和 buildspec.yaml 文件的代码一起保存。当我在没有 api 网关资源的情况下通过 codepipeline 运行代码时,SAM 模板被转换然后成功部署。当我包含创建 api 网关所需的资源时,我在创建时出现以下错误:
AccessDenied. User doesn't have permission to call apigateway:GetResources
当我查看附加到 cloudformation 角色的策略时,我有以下信息:
Actions:
- apigateway:DELETE
- apigateway:GetResources
- apigateway:GetRestApis
- apigateway:POST
Effect: Allow
Resource: !Sub "arn:${AWS::Partition}:apigateway:*::/*"
该操作已定义apigateway:GetResources,但它仍然失败。当我允许所有 api 网关操作时,codepipeline 和 cloudformation 成功部署了模板。那就是如果我有以下声明:
Actions:
- apigateway:*
Effect: Allow
Resource: !Sub "arn:${AWS::Partition}:apigateway:*::/*"
问题:是否可以让codepipeline 和cloudformation 创建一个api 网关而不提供catchall(*) api 网关操作?
【问题讨论】:
标签: amazon-web-services aws-api-gateway api-gateway