允许跨区域访问 AWS SQS 队列
Allow AWS SQS queue access across regions
我有一个 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
权限和最重要的 SQS URL
可以跨区域共享 SQS
您需要提供给 AWS SDK
.
在这里您可以找到更多关于 Queue and Message Identifiers 的信息。
这是一个策略示例,可以应用于队列以授予名为 SQSUser
的 IAM 用户对该队列的权限:
{
"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"
},
我有一个 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
权限和最重要的 SQS URL
可以跨区域共享 SQS
您需要提供给 AWS SDK
.
在这里您可以找到更多关于 Queue and Message Identifiers 的信息。
这是一个策略示例,可以应用于队列以授予名为 SQSUser
的 IAM 用户对该队列的权限:
{
"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"
},