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

Amazon SNS の "publish operation" エラーを解決する方法を教えてください。

所要時間1分
0

Amazon Simple Notification Service (Amazon SNS) トピックを発行しようとしたときに、"publish operation" エラーが発生しました。

解決策

受信した Amazon SNS の "publish operation" エラーの種類に応じてトラブルシューティング手順を実行します。

"An error occurred (AuthorizationError) when calling the Publish operation"

これは、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスの AWS Identity and Access Management (IAM) ロールのアクセス許可や SNS ポリシーが正しくないために発生しました。

このエラーを解決するには、「IAM ロールを使用して、クロスアカウントの Amazon EC2 インスタンスから Amazon SNS トピックに公開するにはどうすればよいですか?」を参照してください。

"An error occurred (KMSAccessDenied) when calling the Publish operation"

このエラーは、サーバー側の暗号化を使用する AWS クロスアカウント Amazon EC2 インスタンスから SNS トピックを発行しようとしたときに発生します。このエラーが発生した原因は、不適切な IAM と AWS Key Management Service (AWS KMS) のアクセス許可です。EC2 インスタンスの IAM ロールと KMS キーの AWS KMS キーポリシーのアクセス許可が正しくありません。

このエラーを解決するには、AWS KMS キーを有効にし、AWS KMS キーポリシーと IAM ポリシーを正しいアクセス許可に更新します。

注: IAM ポリシーを使用して、最小特権のアクセス許可を付与することをおすすめします。

次の手順を実行します。

  1. AWS KMS キーが有効になっていることを確認します。

  2. EC2 インスタンスの IAM ロールが AWS KMS キーポリシーkms:GenerateDataKey*kms:Decrypt の実行を許可されていることを確認します。これは、SNS トピックのサーバー側の暗号化に使用される KMS キーのキーポリシーで、次のようなものです。

    {  "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/cross-acc-ec2-sns-publish-role"
      },
      "Action": [
        "kms:GenerateDataKey*",
        "kms:Decrypt"
      ],
      "Resource": "*"
    }
    
  3. kms:GenerateDataKey* および kms:Decrypt アクセス許可を使用して、次の IAM ロールポリシーを EC2 インスタンスにアタッチします。

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "kms:Decrypt",
                    "kms:GenerateDataKey*"
                ],
                "Resource": "your_KMS_Key_ARN"
            }
        ]
    }

    注: your_KMS_Key_ARN を KMS キーの Amazon リソースネーム (ARN) に置き換えてください。

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

関連するコンテンツ