Как решить (AccessDeniedException) при вызове операции сканирования: Пользователь: arn: aws: sts ... не авторизован для выполнения: dynamicodb: Сканирование на ресурсе .. "? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь развернуть приложение, похожее на Instagram, на AWS, используя Elastic Beanstalk и Flask. После использования команды eb deploy я могу получить доступ к главной странице приложения, которая не требует доступа к таблицам DynamoDB. Когда я пытаюсь войти в систему, приложение должно получить доступ к таблице DynamoDB для получения данных, таких как количество лайков в картинках, однако при этом отображается

500 Внутренняя ошибка сервера

А мои eb logs возвращают эту ошибку.

ClientError: Произошла ошибка (AccessDeniedException) при вызове> операции сканирования: Пользователь: arn: aws: sts :: 013051511429: предполагаемая роль / aws- >asticbeanstalk-ec2-role / i-049593eb550052c8f не авторизован для> выполнить: DynamodB: сканирование на ресурс: ARN: AWS: DynamodB: США-восток-> 1: 013051511429: таблица / cloudgram

Я думаю, что это происходит из-за неверной конфигурации IAM , в которой говорится, что пользователь, соответствующий моему экземпляру EC2 (i-04959 ..), не авторизован для выполнения сканирования в моей таблице DynamoDB.

Я попытался сделать следующее: https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-api.html

Вот политики, которые я прикрепил к моей роли aws -asticbeanstank-ec2:

  • AmazonRDSFullAccess
  • AmazonS3FullAccess
  • AWSLambdaDynamoDBExecutionRole
  • AWSElasticBeanstalkWebTier
  • AWSElasticBeanstalkMulticontainerDocker
  • AWSElasticBeanstalkWorkerTier

Я использую: Python 2.7 Колба 1.0.2

1 Ответ

0 голосов
/ 03 апреля 2019

Указанная вами политика AWSLambdaDynamoDBExecutionRole предназначена для потоков DynamoDB. Не разрешает доступ к таблицам.

Одним из способов решения этой проблемы является добавление политики AmazonDynamoDBFullAccess, хотя лучшим способом было бы создание политики IAM, которая разрешает только те требуемые действия и только те ресурсы (таблицы DynamoDB), которые вам нужны. Вот пример этого.

...