

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SNS メッセージの署名を検証する
<a name="sns-verify-signature-of-message"></a>

Amazon SNS はメッセージ署名を使用して、HTTP エンドポイントに送信されたメッセージの信頼性を確認します。メッセージの整合性を確保し、なりすましを防ぐには、Amazon SNS メッセージを処理する前に署名を検証する**必要があります**。

**Amazon SNS 署名の検証が必要になるタイミング**

次のシナリオでは、Amazon SNS メッセージの署名を検証する必要があります。
+ Amazon SNS が HTTP(S) エンドポイントに通知メッセージを送信するとき。
+ Amazon SNS が [https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html](https://docs.aws.amazon.com/sns/latest/api/API_Subscribe.html) API 呼び出しや [https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html](https://docs.aws.amazon.com/sns/latest/api/API_Unsubscribe.html) API コールにエンドポイントに確認メッセージを送信するとき。

**Amazon SNS は次の 2 つの署名バージョンをサポートしています。**
+ SignatureVersion1 – メッセージの SHA1 ハッシュを使用します。
+ SignatureVersion2 – メッセージの SHA256 ハッシュを使用します。このバージョンはセキュリティを強化するため、推奨されるオプションです。

**SNS メッセージの署名を正しく検証するには、次のベストプラクティスに従ってください。**
+ 不正な傍受攻撃を防ぐために、常に HTTPS を使用して署名証明書を取得します。
+ 証明書が Amazon SNS によって発行されていることを確認します。
+ 証明書の信頼チェーンが有効であることを確認します。
+ 証明書は SNS 署名付き URL から取得する必要があります。
+ メッセージで提供された証明書を、検証せずに信頼してはいけません。
+ なりすましを防ぐために、予期しない `TopicArn` を含むメッセージは拒否します。
+ Amazon SNS AWS SDKs は、組み込みの検証ロジックを提供するため、誤実装のリスクが軽減されます。