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

1 分钟阅读
0

我想要一个 Amazon Simple Notification Service (Amazon SNS) 主题来接受来自 AWS Organizations 组织中的任何 AWS 账户的消息。

简短描述

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

解决方法

完成以下步骤:

  1. 组织控制台中查找您的组织的 ID。有关详细信息,请参阅通过管理账户查看组织的详细信息
  2. 在 Amazon SNS 控制台中创建主题。记下新主题的 Amazon 资源名称 (ARN)
  3. 打开 Amazon SNS 控制台
  4. 在导航窗格中,选择 Topics(主题)。
  5. 选择您在步骤 2 中创建的主题,然后选择 Edit(编辑)。
  6. Edit(编辑)页面上,展开 Access policy -optional(访问策略(可选))。
  7. 将以下示例策略粘贴到 JSON 编辑器中,然后选择 Save changes(保存更改)。
    **重要事项:**请将 snsTopicArn 替换为主题的 ARN。然后,将 myOrgId 替换为您的组织的 ID。
    {
      "Version": "2012-10-17",
      "Id": "__default_policy_ID",
      "Statement": [
        {
          "Sid": "allow-publish-from-organization-accounts",
          "Effect": "Allow",
          "Principal": {
            "AWS": "*"
          },
          "Action": [
            "sns:Publish"
          ],
          "Resource": "snsTopicArn",
          "Condition": {
            "StringEquals": {
              "aws:PrincipalOrgID": "myOrgId"
            }
          }
        }
      ]
    }
    **提示:**要允许您组织中的账户执行更多 Amazon SNS API 操作,例如 GetTopicAttributes,请在策略中的 "Action" 下添加操作。
  8. 将您的电子邮件地址订阅到 SNS 主题以进行测试。创建订阅时,请务必指定主题的 ARN。
  9. 在您的电子邮件中,找到 AWS 通知中的订阅确认消息并确认订阅。
  10. 使用您组织中的任何 AWS 账户向 SNS 账户发布消息。在发布请求中,确保指定主题的 ARN

已发布消息显示在您的电子邮件中。

相关信息

AWS 全局条件上下文键

Example cases for Amazon SNS access control

在 Amazon SNS 中管理访问权限概述

可以在 AWS Organizations 中使用的 AWS 服务

AWS 官方
AWS 官方已更新 5 个月前