Amazon Simple Notification Service (Amazon SNS) トピックからの E メール通知が届きません。
解決策
メールエンドポイントが確認済みの状態であることを確認する
**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用しているかどうかを確認してください。
AWS マネジメントコンソールまたは AWS CLI を使用して、E メールエンドポイントの状態を確認します。
AWS マネジメントコンソール
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで [トピック] を選択し、次にトピックを選択します。
- トピックページの「購読」セクションの「エンドポイント」列で目的のメールエンドポイントを探します。
- サブスクリプションの「ステータス」列で、ステータスが「確認済み」であるかどうかを確認します。メールエンドポイントの購読が完了すると、ステータスが確認されます。
- Amazon SNS コンソールでサブスクリプションを手動で確認します。確認メールが届かない場合は、以下のセクションの手順を実行してください。
- 確認メールを再リクエストするには、エンドポイントでサブスクリプションを選択し、[確認をリクエスト] を選択します。
AWS CLI
list-subscriptions-by-topic AWS CLI コマンドを実行します。
注:「エンドポイント」列にメールエンドポイントがない場合、そのエンドポイントは削除されています。
メールアドレスが外部連絡先からのメールを受信できるかどうかを確認する
問題が Amazon SNS に限定されているかどうかを確認するには、外部プロバイダーから送信先のメールアドレスにテストメールを送信します。これにより、外部ソースからどのような種類のトラフィックが許可されているかを判断できます。組織内のメールボックスは、多くの場合、内部トラフィックに制限されています。
メールボックスが機能していて問題がなければ、「ファイアウォール、スパムフィルター、ブロッカー、フィルターポリシーの確認」セクションの手順を実行してください。
ファイアウォール、スパムフィルター、ブロッカー、またはフィルターポリシーを確認する
次のトラブルシューティング手順を実行してください。
- メール管理者に問い合わせて、no-reply@sns.amazonaws.com アドレスがファイアウォールやスパムフィルターで除外されていないか確認してください。
**ヒント:**メールボックスの許可リストに no-reply@sns.amazonaws.com アドレスを追加するのがベストプラクティスです。詳細については、Q: を参照してください。 購読者は Amazon SNS から通知を受け取るためにメール設定を具体的に設定する必要がありますか?Amazon SNS に関するよくある質問へのエントリ
- それでもメールがスパムとして除外されている場合は、メールボックスのルールをチェックし、SNS トピックのメールをブロックする明示的な拒否がないか確認してください。メールがメールボックス内の特定のフォルダーにルーティングされているかどうかを確認することもできます。
- SNS トピックメールの受信者全員を個人が購読解除できないようにするには、登録解除用の認証を設定します。
**注:**メールエンドポイントの購読を解除するには、必要な権限が必要です。Amazon SNS コンソールまたは AWS CLI で認証されたユーザーにサブスクリプションを確認できます。
サブスクリプションのフィルターポリシーを確認してください。
- Amazon SNS コンソールを開きます。
- ナビゲーションペインで [サブスクリプション] を選択します。
- 検索ボックスに、メールエンドポイントが購読しているメールアドレスまたは SNS トピックを入力し、結果からサブスクリプションを選択します。
- メールエンドポイントの [サブスクリプションフィルターポリシー] タブを選択し、[サブスクリプションフィルターポリシー] セクションでサブスクリプションのフィルターポリシーを探します。
**注:**Amazon SNS は、メッセージがエンドポイントに送信されるときに、メッセージ属性をフィルターポリシーの属性と比較します。メッセージ属性とフィルターポリシー属性が一致しない場合、メッセージはメールエンドポイントで受信されません。
デフォルトの AWS KMS キー設定を使用していないことを確認する
Amazon SNS では、保存中のトピックを暗号化することができます。デフォルトの AWS Key Management Service (AWS KMS) キーを暗号化に使用すると、サービス (Amazon CloudWatch など) は SNS トピックにメッセージを公開できません。Amazon SNS のデフォルトの AWS KMS キーのキーポリシーでは、これらのサービスが kms:Decrypt および kms:GenerateDataKey API 呼び出しを実行することは許可されていません。このキーは AWS で管理されているため、ポリシーを手動で編集することはできません。
Amazon SNS トピックを暗号化する場合は、カスタマー管理キーを使用してください。カスタマー管理キーには、キーポリシーのステートメントセクションに次の権限が含まれている必要があります。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "service.amazonaws.com"
},
"Action": [
"kms:GenerateDataKey*",
"kms:Decrypt"
],
"Resource": "*"
}
]
}
これらの権限により、サービスは暗号化された SNS トピックにメッセージを公開できます。