如何让AWS worker账户的SNS服务使用sender账户的10DLC资源?
AWS跨账户复用10DLC实现SNS短信发送方案
核心思路
通过双SNS主题的转发架构,完全解耦worker账户的业务发送逻辑和sender账户的10DLC短信发送能力,无需修改worker侧现有发布逻辑。
具体操作步骤
1. sender账户侧配置
- 在sender账户创建专属的SNS短信发送主题,进入主题的短信发布设置页面,将已完成配置的10DLC长码设置为该主题的默认始发号码,后续所有发往该主题的消息都会自动使用该10DLC发送,无需调用时指定参数。
- 配置该SNS主题的访问策略,添加允许worker账户的消息发布身份(如worker侧的SNS服务角色、触发消息发布的业务服务角色等)执行
sns:Publish操作的规则,示例策略片段参考:
{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<worker账户ID>:root" }, "Action": "sns:Publish", "Resource": "<sender侧SNS主题ARN>" }
- 将所有需要接收SMS通知的订阅者,全部添加到sender账户的这个SNS主题中,协议选择SMS,填写对应手机号即可。
2. worker账户侧配置
- 找到你现有业务使用的SNS主题,新增一条订阅:订阅协议选择
AWS,订阅目标填写sender侧刚才创建的SNS主题的完整ARN。 - 配置worker侧SNS主题的访问策略,允许SNS服务本身执行跨账户发布操作,确保worker侧主题收到消息后可以正常转发到sender侧主题。
可选优化配置
如果不需要把worker侧主题的所有消息都转发为短信,可以在worker侧的跨账户订阅上添加订阅筛选策略,仅将符合业务规则的消息转发到sender侧发送短信,其他消息按原有逻辑处理。
内容的提问来源于stack exchange,提问作者cmonkey
相关产品推荐
相关产品推荐

