允许跨区域访问AWS SQS队列

问题描述 投票:0回答:1

我有一个 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"
    }
  ]
}

不幸的是,我无法将消息从我位于不同区域的 AWS 服务器添加到

default_staging
队列。

如果我将权限策略设置为完全开放,我可以从其他区域向

default_staging
添加消息。

我如何调整我的政策以允许在我的所有区域执行

SQS:*
行动?

amazon-web-services amazon-sqs
1个回答
26
投票

可以通过正确的 IAM 权限以及最重要的是您需要提供给 AWS 开发工具包的 SQS URL 来跨区域共享 SQS。

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

以下是一个策略示例,可以应用于队列以向 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"
    }
  ]
}

这是重要的部分:

"Principal": {
  "AWS": "arn:aws:iam::123123123123:user/SQSUser"
},
© www.soinside.com 2019 - 2024. All rights reserved.