允许跨区域的AWS SQS队列访问

Jas*_*ett 10 amazon-sqs amazon-web-services

我有一个AWS SQS队列,其权限策略如下所示:

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-east-1:123123123:default_staging/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid123123123123",
      "Effect": "Allow",
      "Principal": {
        "AWS": "123123123123"
      },
      "Action": "SQS:*",
      "Resource": "arn:aws:sqs:us-east-1:123123123123123:default_staging"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法default_staging从我在不同地区的AWS服务器上向队列添加消息.

如果我将权限策略设置为全开,我可以default_staging从其他区域添加消息.

如何调整我的政策以允许SQS:*我所有地区的行动?

kix*_*orz 15

SQS通过正确的IAM权限可以跨区域共享,最重要的SQS URL是您需要提供的权限AWS SDK.

在这里,您可以找到有关队列和消息标识符的更多信息.

以下是可应用于队列的策略示例,以便为IAM用户SQSUser授予对该队列的权限:

{
  "Version": "2012-10-17",
  "Id": "arn:aws:sqs:us-east-1:123123123123:default_staging/SQSDefaultPolicy",
  "Statement": [
    {
      "Sid": "Sid89345945989988",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123123123123:user/SQSUser"
      },
      "Action": "SQS:*",
      "Resource": "arn:aws:sqs:us-east-1:123123123123:default_staging"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是重要的部分:

      "Principal": {
        "AWS": "arn:aws:iam::123123123123:user/SQSUser"
      },
Run Code Online (Sandbox Code Playgroud)

  • 当有人对一个行之有效的解决方案投反对票时,这很有趣。 (2认同)
  • 这仍然有效吗?我正在寻找类似的东西,但还没有让它发挥作用。 (2认同)