他の AWS ID やアクセス管理 (IAM) エンティティから自分の Amazon Simple Notification Service (Amazon SNS) トピックにアクセスできるようにしたいと考えています。
簡単な説明
Amazon SNS トピックのアクセスポリシーは、Amazon SNS コンソールまたは AWS コマンドラインインターフェイス (AWS CLI) のいずれかを使用して編集できます。
解決方法
Amazon SNS コンソールを使用して Amazon SNS トピックのアクセスポリシーを編集する
- Amazon SNS コンソールを開きます。
- 左側のナビゲーションペインで、[トピック] を選択します。
- Amazon SNS トピックの名前を選択します。
- [編集] ボタンを選択します。
- [アクセスポリシー - オプション] セクションを展開します。
- アクセスポリシーを編集して、ユースケースで必要とするアクセス権限を付与します。
**注:**アクセスポリシーの記述方法の詳細については、「Amazon SNS でのアクセス管理の概要」を参照してください。
- [変更を保存] を選択します。
AWS CLI を使用して Amazon SNS トピックのアクセスポリシーを編集する
**注:**AWS CLI のコマンドの実行時にエラーが発生する場合は、「AWS CLI エラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用しているようにしてください。
アクセス権限を変更、追加、削除するには、次の SetTopicAttributes コマンドを実行します。
**注:置き換え先は、<TopicARN>**トピックの Amazon リソースネーム (ARN) です。testpolicy.json をポリシードキュメントへのパスに置き換えます。
aws sns set-topic-attributes --topic-arn '<TopicARN>' --attribute-name 'Policy' --attribute-value file://testpolicy.json
または、
アクセス権限のみを追加するには、次の AddPermission コマンドを実行します。
**注:置き換え先は、<TopicARN>**トピックの ARN です。AllowProdAccountsXXX を新しいポリシーステートメントの一意の ID に置き換えます。AWS アカウント ID を、特定のアクションへのアクセスを許可する IAM エンティティのアカウント ID に置き換えます。Publish と Subscribe は、指定した IAM エンティティに許可するアクションのリストに置き換えます。
sns add-permission --topic-arn '<TopicARN>' --label 'AllowProdAccountsXXX' --aws-account-id 'AWS Account ID' --action-name 'Publish' 'Subscribe'
関連情報
Amazon SNS アクセス制御のサンプルケース
Amazon SNS のアクション、リソース、および条件キー