Amazon SNS トピックが Amazon S3 イベント通知を受け取らないのはなぜですか?

最終更新日: 2021 年 6 月 21 日

Amazon Simple Notification Service (Amazon SNS) トピックを通じてメッセージを送信する Amazon Simple Storage Service (Amazon S3) イベント通知を作成しました。ただし、Amazon S3 バケットで新しいイベントが発生した場合、Amazon SNS トピックはメッセージを送信しません。この問題をトラブルシューティングする方法を教えてください。

解決方法

Amazon S3 イベントタイプが正しく設定されていることを確認する

Amazon S3 イベント通知を設定する場合、Amazon S3 による通知の送信をトリガーするサポート対象の Amazon S3 イベントタイプを指定する必要があります。指定しなかったイベントタイプが S3 バケットで発生しても、Amazon S3 は通知を送信しません。

オブジェクトキー名のフィルターが URL エンコード (パーセントエンコード) 形式であることを確認する

イベント通知がオブジェクトキー名のフィルタリングを使用するように設定されている場合、特定のプレフィックスまたはサフィックスを持つオブジェクトに対してのみ通知が送信されます。

プレフィックスまたはサフィックスに特殊文字を使用する場合は、URL エンコード (パーセントエンコード) 形式で入力する必要があります。詳細については、オブジェクトキーの名前付けガイドラインおよびオブジェクトメタデータの使用を参照してください。

注: ワイルドカード文字 (「*」) は、フィルターで任意の文字を表すプレフィックスまたはサフィックスとして使用することはできません。

トピックにメッセージを送信するために必要なアクセス許可を Amazon S3 に付与したことを確認する

Amazon SNS トピックのリソースベースのポリシーでは、Amazon S3 バケットによるトピックへのメッセージの送信を許可する必要があります。

トピックの AWS Identity and Access Management (IAM) ポリシーをチェックして、必要なアクセス許可があることを確認し、必要に応じて追加します。詳細については、「SNS トピックまたは SQS キューにメッセージを送信するためのアクセス許可の付与」を参照してください。

(サーバー側の暗号化 (SSE) が有効なトピックの場合) トピックに必要な AWS Key Management Service (KMS) のアクセス許可があることを確認する

Amazon SNS トピックは、カスタマー管理のカスタマーマスターキー (CMK) を使用する必要があります。この CMK には、Amazon S3 に十分なキー使用アクセス許可を与えるカスタムキーポリシーを含める必要があります。

必要な AWS KMS アクセス許可を設定するには、次の手順を実行します。

1.    Amazon S3 に必要なアクセス許可を含む、カスタマー管理の新しい CMK を作成します

2.    作成したカスタム CMK を使用して、Amazon SNS トピックの SSE を設定します。

3.    Amazon S3 が暗号化されたトピックにメッセージを送信できるようにする AWS KMS アクセス許可を設定します

Amazon S3 が暗号化された Amazon SNS トピックにメッセージを送信することを許可する IAM ポリシーステートメントの例

{
"version": "2012-10-17",
"statement": [{
    "effect": "allow",
    "principal": {"service": "s3.amazonaws.com"},
    "action": ["kms:generatedatakey*", "kms:decrypt"],
    "resource": "*"
}]
}

この記事は役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?