Python 调用扫描操作时如何解决(AccessDeniedException):用户:arn:aws:sts。。。未被授权对资源执行:dynamodb:Scan.“;?

Python 调用扫描操作时如何解决(AccessDeniedException):用户:arn:aws:sts。。。未被授权对资源执行:dynamodb:Scan.“;?,python,amazon-web-services,amazon-dynamodb,amazon-iam,Python,Amazon Web Services,Amazon Dynamodb,Amazon Iam,我正在尝试使用Elastic Beanstalk和Flask将类似Instagram的应用程序部署到AWS。使用eb deploy命令后,我可以访问应用程序主页面,而不需要访问DynamoDB表。当我尝试登录时,应用程序应该访问DynamoDB表来检索数据,例如图片中的like数,但是它显示 500内部服务器错误 myeb logs返回此错误 ClientError:调用>扫描操作时出错(AccessDeniedException):用户:arn:aws:sts::013051511429:假定

我正在尝试使用Elastic Beanstalk和Flask将类似Instagram的应用程序部署到AWS。使用eb deploy命令后,我可以访问应用程序主页面,而不需要访问DynamoDB表。当我尝试登录时,应用程序应该访问DynamoDB表来检索数据,例如图片中的like数,但是它显示

500内部服务器错误

myeb logs返回此错误

ClientError:调用>扫描操作时出错(AccessDeniedException):用户:arn:aws:sts::013051511429:假定角色/aws->elasticbeanstalk-ec2-role/i-049593eb550052c8f无权>执行:dynamodb:扫描资源:arn:aws:dynamodb:us east->1:013051511429:表格/cloudgram

我认为发生这种情况是因为IAM配置错误,它表示与我的EC2实例(I-04959..)对应的用户无权对我的DynamoDB表执行扫描

我试过这样做:

以下是我在aws-elasticbeanstalk-ec2-role中附加的策略:

  • AmazonRDSFullAccess
  • AmazonS3FullAccess
  • AWSLAMBDADynamodExecutionRole
  • AWSElasticBeanstalkWebTier
  • 多集装箱装卸工
  • AWSELASTICBEANSTOWERTIER
我正在使用: Python 2.7
Flask 1.0.2

您提供的策略,
awslambdadynamodexecutionrole
,适用于DynamoDB流。它不允许访问表


解决此问题的一种方法是添加
amazondynamodfullaccess
策略,但更好的方法是创建一个IAM策略,该策略只允许您需要的操作和资源(DynamoDB表)。下面是一个例子。

您没有为访问表提供适当的DynamoDB角色。AWSLAMBDADynamodExecutionRole用于DynamoDB流。那么我应该使用哪一个呢?我添加了FullAccess策略,事实上它起了作用!稍后我将尝试遵循这个示例并改进它!非常感谢你!