2014-03-24 175 views
8

我想一个策略添加到已经可以在两个S3桶执行CRUD这里现有IAM用户当前工作的政策AWS IAM策略SQS

{ 
    "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" 
     } 
    ] 
    } 

我没有得到任何解析错误,但模拟器WA还在归国否认对SQS队列

也真的我只是希望此用户能够将消息添加到队列,接受他们,并删除它们,而上述政策会增加,我相信所有的动作

回答

5

您的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