AWS API Gateway.Обновите существующий API из github.добавить новый маршрут - PullRequest
0 голосов
/ 31 мая 2018

Я собираюсь обновить существующий шлюз Api с помощью команд aws cli (https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-rest-api.html) из AWS CodePipeline и столкнуться с проблемой, что CodeBuild имеет

An error occurred (AccessDeniedException) when calling the GetRestApis operation: User: arn:aws:sts:<skipped_text> is not authorized to perform: apigateway:GET on resource: arn:aws:apigateway:us-west-2::/restapis

Можно ли обновить шлюз Api через код, используяCodePipeline и aws cli? Или что вы используете в качестве инструмента для обновления apigateway?

Ответы [ 2 ]

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

Обязательно добавьте следующую политику для пользователя IAM , чтобы разрешить административный доступ (CREATE, READ, UPDATE, DELETE) к шлюзу API,

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "apigateway:*"
            ],
            "Resource": "arn:aws:apigateway:*::/*"
        }
    ]
}

, который также существуетв соответствии с политикой управления Amazon, AmazonAPIGatewayAdministrator,

admin apigateway access

0 голосов
/ 31 мая 2018

1) Проверьте, правильно ли работают ваши учетные данные. Похоже, учетные данные, используемые в вашем AWS SDK, не имеют действительных разрешений для API-интерфейса шлюза API.

Вам потребуется определить политику дляпользователь / роль похожа на ниже.

2) При использовании CloudFormation с CodePipeline необходимо создать роль, которую может принять CloudFormation, CodePipeline перемещает выпуски по конвейеру, используя рольвы указываете для конвейера.CloudFormation требуется разрешение для принятия отдельной роли, которую вы создаете для действия CloudFormation (недостаточно создать роль с разрешением доступа к другим ресурсам).

Ссылки

...