Вопрос разрешения для ресурса arn: aws: cloudformation: us-east-1: aws: transform - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь интегрировать swagger с api gateway и lambda, используя расширения swagger.Файл Swagger загружен в корзину S3, я использую Body с преобразованием и включаю, как показано ниже

Использование BodyS3Location в свойствах AWS :: ApiGateway :: RestApi возвращает ошибку Невозможно проанализировать определение API из-за неправильно сформированной интеграции дляВ той же интеграции, о которой говорилось выше, я ссылался на файл Swagger с расширениями AWS, который хранится в S3 Bucket для создания API с Cloudformation .

и изменил шаблон, как показано ниже для свойств AWS :: ApiGateway :: RestApi Body: Fn::Transform: Name: AWS::Include Parameters: Location: Fn::Sub: "s3://${BucketName}/apiSwaggerSpec.yaml"

Для стека выше у меня есть все права на действия по облачной обработке

Ниже кодаЯ добавил как расширение чванства. x-amazon-apigateway-auth: type: "aws_iam" x-amazon-apigateway-integration: type: "aws_proxy" httpMethod: "POST" passthroughBehavior: "when_no_match" uri: Fn::Sub: "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:${accountId}:function:testLambdaFunction/invocations" credentials: Fn::Sub: "arn:aws:iam::${accountId}:role/${myRole}" responses: default: statusCode: 200

Я получаю сообщение об отказе в разрешении с сообщением, поскольку myrole не авторизован для выполнения облачной информации: CreateChangeSet на ресурсе: arn: aws: облачная информация: us-east-1: aws: transform / include

Нужно ли добавлять специальные разрешения для преобразования / включения.В документации aws говорится, что для этого не нужны специальные разрешения?

1 Ответ

0 голосов
/ 23 августа 2019

Я столкнулся с той же проблемой, и этот вопрос был единственным значимым результатом, который я смог найти при поиске.Несмотря на заявления AWS об обратном, похоже, что требуется разрешение, но единственное, на которое жалуется сообщение об ошибке;после этого преобразование «Включить», похоже, заработает.Это вся политика, которую я добавил:

      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - # The AWS::Include transform requires this weird permission.
            Sid: UseInclude
            Effect: "Allow"
            Action: "cloudformation:CreateChangeSet"
            Resource: !Sub "arn:aws:cloudformation:${AWS::Region}:aws:transform/Include"
...