如何允许组织中的 AWS 账户将消息发布到我账户中的 Amazon SNS 主题?

上次更新时间:2021 年 2 月 17 日

我希望 AWS 账户中的 Amazon Simple Notification Service (Amazon SNS) 主题接受我在 AWS Organizations 中的组织的任何 AWS 账户发布的消息。该如何进行设置?

简短描述

配置 Amazon SNS 主题的访问策略,以允许组织中的任何账户将消息发布到主题。在访问策略中,包括全局条件键 aws:PrincipalOrgID 并指定您组织的 ID。

解决方法

1.在 Organizations 控制台中查找您组织的 ID。有关更多信息,请参阅从管理账户查看组织的详细信息。

2.在 Amazon SNS 控制台中创建主题。记下新主题的 Amazon 资源名称 (ARN)。

3.在 Amazon SNS 控制台中,编辑主题。在编辑 <topicName> 页面上,展开访问策略 - 可选,然后将以下示例策略粘贴到 JSON 编辑器

重要:snsTopicArn 替换为主题的 ARN。然后将 myOrgId 替换为您组织的 ID。

{
    "Version": "2008-10-17",
    "Id": "__default_policy_ID",
    "Statement": ,
            "Resource": "snsTopicArn",
            "Condition": {
                "StringEquals": {
                    "aws:PrincipalOrgID": "myOrgId"
                }
            }
        }
    ]
}

提示:要允许组织中的账户执行更多 Amazon SNS API 操作(如 GetTopicAttributes),请在策略的“操作”下添加操作。

4.利用您的电子邮件地址订阅 SNS 主题以进行测试。在创建订阅时,请确保指定您主题的 ARN。

5.在您的电子邮件中,找到来自 AWS 通知的订阅确认消息,并确认订阅。

6.使用组织中的任何 AWS 账户,将消息发布到您账户中的 SNS 主题。在发布请求中,请确保指定主题的 ARN。

您将在电子邮件中收到已发布的消息。