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

所要時間1分
0

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": "*"
}]
}

Amazon S3 イベント通知が SNS トピックでまだ受信されない場合は、Amazon SNS CloudWatch メトリクスNumberOfMessagePublished を確認してください。このメトリクスは、Amazon S3 がイベントをパブリッシュしているかどうかを示します。メトリクスが入力されない場合は、Amazon S3 から Amazon SNS への設定に問題があります。

NumberOfMessagePublished メトリクスが入力されている場合は、NumberOfNotificationsDeliveredNumberOfNotificationsFailed メトリクスを確認します。これらのメトリクスでは、メッセージが Amazon SNS トピックからサブスクライブ中のエンドポイントに正常に配信されたかどうかを示します。

Amazon SNS では、Amazon SNS エンドポイントを使用してトピックに送信された通知メッセージの配信ステータスを記録するサポートを提供します。これには、HTTP、Amazon Kinesis Data Firehose、AWS Lambda、プラットフォームアプリケーションエンドポイント、Amazon Simple Queue Service、および AWS SMS が含まれます。Amazon SNS トピックの配信ステータスログを有効にして、問題をさらにトラブルシューティングします。


関連情報

Amazon S3 イベント通知をトピックに公開することを許可する

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ