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 (AWS KMS) 許可があることを確認する

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

必要な AWS KMS 許可をセットアップするには、以下の手順を実行します。

1.    カスタマーが管理し、Amazon S3 に必要な許可が含まれた、新しい KMS キーを作成します

2.    先ほど作成したカスタム KMS キーを使用して、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": "*"
}]
}

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


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