- 最新
- 投票最多
- 评论最多
【以下的回答经过翻译处理】 此角色的Trust Entity应该是replication.dynamodb.amazonaws.com而不是apigateway.amazonaws.com。
你应该前往IAM控制台,创建一个新的角色,选择API Gateway,然后添加适当的策略来写入DynamoDB。
最终,你的角色应该包括以下政策:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "dynamodb:PutItem", "Resource": "arn:aws:dynamodb:eu-west-1:xxxxxxxx:table/Comments" } ] }
和
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "apigateway.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
您好:
想要准许 API Gateway 测试请求写入 DynamoDB,您需要创建一个 IAM role,并且做以下两件事:
- 前往 AWS 控制主控台,打开 IAM role,选择创建角色
在可信实体类型选择自定义信任策略,并且将 “Service” : "apigatway.amazonaws.com" 加入 Principle 中,使 API gateway 可以拥有这个角色的权限策略
您的信任策略应该会看起来像:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Statement1",
"Effect": "Allow",
"Principal": {
"Service": "apigateway.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
接着选择下一步,选择您可能需要的权限策略,若只需要写入 DynamoDB,我们待会会创建内联策略
下一步,为IAM角色取名,并且创建角色
官方参考文件:https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/permissions.html
- 前往您刚创建的角色页面,点选权限下的添加权限,创建内联策略
选择 DynamoDB,在筛选操作中输入 PutItem,并点选添加 ARN
选择此帐户,并填入您 DynamoDB 的 table name,选择下一步
输入策略名称并且点选创建策略,完成后您的 IAM 角色便具备写入 DynamoDB 的权限
您的权限策略应该会看起来像:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "dynamodb:PutItem",
"Resource": "arn:aws:dynamodb:your-region:your-accountID:table/TABLE-NAME"
}
]
}
官方参考文件:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/iam-policy-example-data-crud.html
完成后,您便可以使用 API gateway 将请求写入 DynamoDB