我正在尝试在DynamoDB上创建一个简单的ApiGateway,为用户添加一个 endpoints ,以便通过它访问数据 .
集成类型 AWS Service
AWS Region eu-west-1
AWS服务 DynamoDB
AWS子域
HTTP方法 GET
行动 ListResources
执行角色 [iam arn]
凭据缓存 Do not add caller credentials to cache key
内容处理 Passthrough
当我点击测试按钮时,我得到:
由于配置错误导致执行失败:API Gateway无权承担提供的角色
在这里和那里检查,但没有任何线索的问题 . 我尝试更改IAM用户的权限并向他授予所有Dynamo和APIGateway权限,但没有任何更改 .
2 回答
首先,更新执行角色以使用角色而不是IAM用户 . 然后,确保该角色具有您要访问的所有DynamoDB操作和资源的权限 . 最后,通过添加IAM信任策略授予API网关权限以承担该角色,如下所示 .
来自"API Gateway Permissions Model for Invoking an API" on documentation page here
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
似乎问题与我使用IAM用户而不是IAM角色这一事实有关 . 我会把它留在这里,也许这会有所帮助 .