スキップしてコンテンツを表示

Amazon SNS トピックにサブスクライバーを追加する際の IAM 認証エラーを解決する方法を教えてください

所要時間1分
0

Amazon Simple Notification Service (Amazon SNS) トピックにサブスクライバーを追加しようとしたところ、Identity and Access Management (IAM) の認証エラーが表示されました。

簡単な説明

IAM エンティティSubscribe API アクションのアクセス許可なしで Amazon SNS トピックにサブスクリプションを追加しようとすると、SNS は次のエラーを返します。

"An error occurred (AuthorizationError) when calling the Subscribe operation: User: your_IAM_user_or_role is not authorized to perform: sns:Subscribe on resource: YOUR_SNS_TOPIC_ARN"

注: 特定のエラーメッセージを確認して、エラーがアイデンティティベースのポリシーによるものか、リソースベースのポリシーによるものかを判断してください。

このエラーを解決するには、Amazon SNS トピックで Subscribe API アクションを実行するアクセス許可を IAM エンティティに付与します。

解決策

Amazon SNS トピックで Subscribe API アクションを実行するアクセス許可を IAM エンティティに付与するには、次の手順を実行します。

クロスアカウントアクセス

IAM エンティティが SNS トピックの AWS クロスアカウントにある場合は、次の手順を実行します。

  1. 以下のアイデンティティベースのポリシーを IAM エンティティにアタッチして、エンティティが sns:Subscribe API アクションを実行できるようにします。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "SNSSubscribePermission",
                "Effect": "Allow",
                "Action": "sns:Subscribe",
                "Resource": "YOUR_SNS_TOPIC_ARN"
            }
        ]
    }

    注: YOUR_SNS_TOPIC_ARN は Amazon SNS トピックの Amazon リソースネーム (ARN) に置き換えてください。

  2. 以下のリソースベースのポリシーをトピックのアクセスポリシーにアタッチして、IAM エンティティが sns:Subscribe API アクションを実行できるようにします。

    {
        "Sid": "AllowIAMEntity",
        "Effect": "Allow",
        "Principal": {
            "AWS": "YOUR_IAM_ENTITY_ARN "
        },
        "Action": "sns:Subscribe",
        "Resource": "YOUR_SNS_TOPIC_ARN"
    }

    注: YOUR_IAM_ENTITY_ARN は IAM エンティティの ARN に置き換えてください。YOUR_SNS_TOPIC_ARN は Amazon SNS トピックの ARN に置き換えてください。

同じアカウント間のアクセス

IAM エンティティが SNS トピックと同じ AWS アカウントにある場合は、sns:Subscribe アクションへのアクセス許可を許可するポリシーをアタッチします。前のステップで作成したアイデンティティベースのポリシーまたはリソースベースのポリシーのいずれかをアタッチします。

関連情報

Using identity-based policies with Amazon SNS (Amazon SNS でアイデンティティベースのポリシーを使用する)

AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ