ステップ 5: トピックに発行するアクセス権限をユーザーに付与する (オプション) - Amazon Simple Notification Service

ステップ 5: トピックに発行するアクセス権限をユーザーに付与する (オプション)

デフォルトでは、トピックの所有者にはトピックを発行するアクセス権限があります。その他のユーザーやアプリケーションがトピックに発行できるようにするには、AWS Identity and Access Management (IAM) を使ってトピックへの発行許可を付与する必要があります。Amazon SNS アクションに対するアクセス権限を IAM ユーザーに付与する方法の詳細については、「Amazon SNS でのアイデンティティベースのポリシーを使用する」を参照してください。

トピックへのアクセスは、以下の 2 つの方法でコントロールできます。

  • IAM ユーザーまたはグループにポリシーを追加する。トピックへのアクセス権限をユーザーに付与する最も簡単な方法では、グループを作成し、適切なポリシーをグループに追加して、そのグループにユーザーを追加します。個々のユーザーに設定するポリシーを継続的に追跡するよりも、グループに対してユーザーを追加または削除する方がはるかに簡単です。

  • トピックにポリシーを追加します。別の AWS アカウントにトピックへのアクセス権限を追加する場合、そのプリンシパルとして、アクセス権限を付与する AWS アカウントを持っているポリシーを追加することが唯一の方法です。

ほとんどの場合は、最初の方法 (ポリシーをグループに適用し、適切なユーザーをグループに追加または削除することでアクセス権限を管理する) を使用します。別のアカウントのユーザーにアクセス権限を付与する必要がある場合は、2 番目の方法を使用します。

IAM ユーザーまたはグループに次のポリシーを追加した場合、そのユーザーまたはそのグループのメンバーに、MyTopic トピックで sns:Publish アクションを実行する許可が付与されます。

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

以下の例のポリシーでは、トピックへのアクセス権限を別のアカウントに付与する方法を示しています。

注記

アカウントのリソースへの別の AWS アカウント アクセス権限を付与する場合、管理者レベルのアクセス (ワイルドカードアクセス) の権限を持っている IAM ユーザーにも、そのリソースへのアクセス許可が付与されます。他のアカウントの他のすべての IAM ユーザーは、自動的にリソースへのアクセスが拒否されます。その AWS アカウント アクセスの特定の IAM ユーザーにリソースへのアクセス権を付与する場合、管理者レベルアクセス権を持っているアカウントまたは IAM ユーザーは、そのリソースのアクセス権限をそれらの IAM ユーザーに委任する必要があります。クロスアカウントの委任の詳細については、『IAM ガイドの使用』の「Enabling Cross-Account Access」を参照してください。

アカウント 123456789012 の「マイトピック」トピックに以下のポリシーを追加した場合、そのトピックで sns:Publish アクションを実行するアクセス権限をアカウント 111122223333 に付与したことになります。

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