Получите ARN для ресурса шлюза API, который создается безсерверной средой в моем файле serverless.yml - PullRequest
0 голосов
/ 20 октября 2018

Как я могу получить ARN для ресурса шлюза API, который создается безсерверной средой в моем файле serverless.yml?

Я хочу получить ARN для ресурса шлюза API, чтобы я мог использовать его вполитика IAM для выполнения авторизации на основе IAM на шлюзе.

1 Ответ

0 голосов
/ 20 октября 2018

Весь ARN для API имеет форму : arn:aws:execute-api:region:account-id:api-id/stage/METHOD_HTTP_VERB/Resource-path).Использование { "Ref" : "ApiGatewayRestApi" } ( ссылка ) в вашем serverless.yml дает вам 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"}]]
          - "*"
...