我有一个 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:*
行动?
可以通过正确的 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"
},