第 5 步:授予用户发布主题的权限(可选) - Amazon Simple Notification Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

第 5 步:授予用户发布主题的权限(可选)

默认情况下,只有主题所有者才拥有发布主题的权限。要启用其他用户或应用程序向主题发布,您应使用Amazon Identity and Access Management(IAM) 为主题授予发布权限。有关授予 Amazon SNS 操作权限的更多信息,请参阅将基于身份的策略用于 Amazon SNS

可以采取两种方式控制对主题的访问:

  • 向 IAM 用户或群组添加策略。向用户授予主题权限的最简单方式就是创建群组,向该群组添加适当策略,再向此群组添加用户。相比较而言,向群组添加或删除用户,比追踪您为单独用户而设定的各项策略要简单得多。

  • 添加策略至主题。如果您想将某个主题的权限授予另一个Amazon帐户,唯一的方法只有添加策略,而该策略必须具备 Amazon Web Services 账户 您想要向其授予权限。

绝大多数情况下,您应使用第一种方法(通过向群组添加或删除适当用户的方式,向群组添加策略,管理用户权限)。如果您需要向另一账户的用户授予权限,请使用第二种方法。

如果您已添加以下策略至 IAM 用户或组,那么您应向该组的用户或成员授予执行sns:Publish行动的主题 MyTopic。

{ "Statement":[{ "Sid":"AllowPublishToMyTopic", "Effect":"Allow", "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic" }] }

以下策略示例显示如何向主题授予另一账户权限。

注意

当你给另一个 Amazon Web Services 账户 访问您账户中的资源,那么您还可以向拥有管理员级访问(通配符访问)的 IAM 用户授予访问该资源的权限。此操作将自动拒绝其他账户中的所有其他 IAM 用户访问您的资源。如果您想在该 Amazon Web Services 账户 访问您的资源、账户或具有管理员级访问权限的 IAM 用户必须将此项资源的访问权限委派给这些 IAM 用户。有关跨账户委派的更多信息,请参阅启用跨账户访问中的使用 IAM 指南

如果您向账户 123456789012 的主题“我的主题”添加以下策略,那么您同时也是向账户 111122223333 授予在此主题上执行 sns:Publish 操作的权限。

{ "Statement":[{ "Sid":"Allow-publish-to-topic", "Effect":"Allow", "Principal":{ "AWS":"111122223333" }, "Action":"sns:Publish", "Resource":"arn:aws:sns:us-east-2:123456789012:MyTopic" }] }