适用于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

上一篇: AWS IAM policy for SQS

下一篇: Bower v1.5.2 : EINVALID errors when installing dependencies