全局AWS账号能否向中国区AWS账号的SQS队列发布SNS消息
跨AWS分区SNS向SQS推送消息的配置调整方案
核心问题原因
AWS中国区(宁夏/北京)属于独立的aws-cn分区,与国际区(含新加坡区域)的aws分区账号体系隔离,仅填写纯数字账号ID的Principal写法无法跨分区识别账号所属分区,因此会配置失败。
具体调整步骤
1. 中国宁夏区SQS队列策略修改
- Principal不能直接填写国际区账号的纯数字ID,必须使用国际区账号的完整root ARN格式:
arn:aws:iam::[国际区账号ID]:root - 必须显式允许
sqs:SendMessage动作,条件中可限定仅接受指定SNS主题的请求,降低安全风险 - 参考配置示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::1111111:root" }, "Action": "sqs:SendMessage", "Resource": "arn:aws-cn:sqs:cn-northwest-1:[中国区账号ID]:[你的SQS队列名称]", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sns:ap-southeast-1:1111111:[你的SNS主题名称]" } } } ] }
2. 新加坡区域SNS主题策略修改
- 授权中国区账号访问权限时,Principal同样不能直接填写中国区账号的纯数字ID,必须使用中国区账号的完整root ARN格式:
arn:aws-cn:iam::[中国区账号ID]:root - 参考配置示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws-cn:iam::2222222:root" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:ap-southeast-1:1111111:[你的SNS主题名称]" } ] }
3. 额外校验项
- 确保中国区SQS队列未配置仅允许VPC端点访问的限制,跨分区SNS推送默认走公网链路,需要SQS开放公网访问权限
- 所有跨分区引用的资源ARN必须正确填写分区标识:国际区资源前缀为
arn:aws:,中国区资源前缀为arn:aws-cn:
内容的提问来源于stack exchange,提问作者Prashanna
相关产品推荐
相关产品推荐

