【发布时间】:2019-03-25 08:43:08
【问题描述】:
如何获取无服务器框架在我的 serverless.yml 文件中创建的 API 网关资源的 ARN?
我想获取 API Gateway 资源的 ARN,以便我可以在 IAM 策略中使用它在网关上执行基于 IAM 的授权。
【问题讨论】:
标签: amazon-web-services aws-api-gateway serverless-framework
如何获取无服务器框架在我的 serverless.yml 文件中创建的 API 网关资源的 ARN?
我想获取 API Gateway 资源的 ARN,以便我可以在 IAM 策略中使用它在网关上执行基于 IAM 的授权。
【问题讨论】:
标签: amazon-web-services aws-api-gateway serverless-framework
API 的整个 ARN 属于 form:arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path)。在 serverless.yml 中使用 { "Ref" : "ApiGatewayRestApi" } (link) 会为您提供 apiId。
您可以执行以下操作(请参阅资源部分)将其转换为整个 Arn 以引用 API:
PolicyName: InvokeAPI
PolicyDocument:
Version: "2012-10-17"
Statement:
Effect: "Allow"
Action: "execute-api:Invoke"
Resource:
- Fn::Join:
- "/"
-
- Fn::Join: [":", ["arn:aws:execute-api", {"Ref": "AWS::Region"}, {"Ref":"AWS::AccountId"}, {"Ref": "ApiGatewayRestApi"}]]
- "*"
【讨论】: