API-шлюз и S3: почему я получаю отказ в доступе и как его отладить? - PullRequest
0 голосов
/ 26 апреля 2020

Я работаю над учебным пособием : создайте REST API в качестве прокси-сервера Amazon S3 в API Gateway . Конечная точка для GET / работает нормально, но я получаю «Отказано в доступе», когда я PUT /{folder}. Я попытался использовать входящее в комплект OpenAPI определение и создать его, как описано в руководстве.

У меня был временный успех, когда я удалил конечную точку PUT /{folder} и заново создал ее в консоли AWS. Затем я создал второй шлюз API из предоставленного определения OpenAPI , чтобы я мог понять, что я сделал по-другому, но затем оба перестали работать.

Два вопроса:

  1. Почему я получаю «Отказано в доступе»?
  2. Как мне отладить это?

По первому. Я проверил, что роль IAM apigAwsProxyRole из openapi do c существует и имеет управляемые привилегии AmazonS3FullAccess, которые allow S3:*. У него есть политика доверия с sts:AssumeRole для "apigateway.amazonaws.com"

Во-вторых, есть ли какая-то полезная информация, которую я должен увидеть в CloudWatch или CloudTrail? Я видел события, которые говорят мне «Доступ запрещен», но это не очень информативно.

...