适用于SQS的AWS IAM策略
我正在尝试向现有的iam用户添加一个策略,该用户可以在两个s3存储桶中执行crud,这是当前的工作策略
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "devcontrol",
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:Put*",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": [
"arn:aws:s3:::blahimages/*",
"arn:aws:s3:::blahvideos/*"
]
}
]
}
来自sqs文档的示例策略是这样的
{
"Version": "2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":"sqs:*",
"Resource":"arn:aws:sqs:*:123456789012:bob_queue*"
}
]
}
所以我尝试了这个
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "devcontrol",
"Effect": "Allow",
"Action": [
"s3:Get*",
"s3:Put*",
"s3:DeleteObject",
"s3:DeleteObjectVersion"
],
"Resource": [
"arn:aws:s3:::blahimages/*",
"arn:aws:s3:::blahvideos/*"
]
},
{
"Effect":"Allow",
"Action":"sqs:*",
"Resource":"arn:aws:sqs:*:myarn"
}
]
}
我没有得到任何分析错误,但模拟器仍然拒绝sqs队列
也真的,我只是希望这个用户能够将消息添加到队列中,接收并删除它们,而上述策略会添加所有我相信的操作
您的SQS ARN无效: "arn:aws:sqs:*:myarn"
。
您应该使用arn:aws:sqs:<region name>:<account id>:<queue name>
。 (你错过了<account id>
)。
如果您希望您的政策在多个地区有效,则地区名称可能会被替换为*
。 但是账户ID是强制性的,因为队列名称在AWS主账户和区域内是唯一的。
有关有效的SQS策略的示例,请参阅http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSExamples.html。
链接地址: http://www.djcxy.com/p/20101.html下一篇: Bower v1.5.2 : EINVALID errors when installing dependencies