

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

# の HMAC キー AWS KMS
<a name="hmac"></a>

Hash-based Message Authentication Code (HMAC) KMS キーは、 AWS KMS内で HMAC を生成して検証するために使用される対称キーです。それぞれの HMAC KMS キーに関連する一意のキーマテリアルは、HMAC アルゴリズムが必要とするシークレットキーを提供します。HMAC KMS キーを `[GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html)` および [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html) オペレーションで使用して、 AWS KMS内のデータの整合性と信頼性を検証することができます。

HMAC アルゴリズムは、暗号化ハッシュ関数と共有シークレットキーを組み合わせます。これらはメッセージとシークレットキー (HMAC KMS キーのキーマテリアルなど) を使用して、一意の固定サイズのコード (タグ) を返します。メッセージの文字が 1 字でも違う場合、またはシークレットキーが同一ではない場合、結果として得られるタグはまったく異なるものになります。HMAC は、シークレットキーをリクエストすることによって信頼性も提供します。シークレットキーがなければ、同一の HMAC タグを生成することは不可能です。HMAC は、デジタル署名のように機能しますが署名と検証の両方に単一のキーを使用するので、対称署名と呼ばれることもあります。

が AWS KMS 使用する HMAC KMS キーと HMAC アルゴリズムは、[RFC 2104 ](https://datatracker.ietf.org/doc/html/rfc2104)で定義されている業界標準に準拠しています。 AWS KMS [GenerateMac](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) オペレーションは、標準の HMAC タグを生成します。HMAC KMS キーは、[FIPS 140-3 暗号化モジュール検証プログラム](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4884) (中国 (北京) および中国 (寧夏) リージョンを除く) で認定された AWS KMS ハードウェアセキュリティモジュールで生成され、暗号化 AWS KMS されていないままにされることはありません。HMAC KMS キーを使用するには、 AWS KMSを呼び出す必要があります。

HMAC を使用して、JSON Web トークン (JWT)、トークン化されたクレジットカード情報、または送信されたパスワードなどのメッセージの信頼性を判断することができます。決定論的なキーを必要とするアプリケーションでは特に、セキュアなキー導出関数 (KDF) としても使用することもできます。

HMAC KMS キーは、アプリケーションソフトウェアの HMACs よりも利点があります。キーマテリアルは、キーに設定したアクセスコントロールに従って AWS KMS、完全に内部で生成および使用されるためです。

**ヒント**  
ベストプラクティスでは、HMAC を含めたどの署名メカニズムについても、その有効時間を制限することが推奨されています。そうすることで、アクターが有効性を何度も確立したり、メッセージが置き換えらえた後も長期間有効性を確立したりする攻撃が阻止されます。HMAC タグにタイムスタンプは含まれませんが、トークンまたはメッセージにタイムスタンプを含めて、HMAC を更新するタイミングを検知できるようにすることが可能です。

**サポートされている暗号化オペレーション**  
HMAC KMS キーは、[https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateMac.html) および [https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_VerifyMac.html) 暗号化オペレーションのみをサポートします。HMAC KMS キーを使用してデータの暗号化やメッセージの署名を行ったり、HMAC オペレーションで他のタイプの KMS キーを使用したりすることはできません。`GenerateMac` オペレーションを使用するときは、ユーザーが最大 4,096 バイトのメッセージ、HMAC KMS キー、および HMAC キー仕様との互換性がある MAC アルゴリズムを指定して、`GenerateMac` が HMAC タグを計算します。HMAC タグを検証するには、HMAC タグ、同一のメッセージ、HMAC KMS キー、および 元の HMAC タグを計算するために `GenerateMac` が使用した MAC アルゴリズムを提供する必要があります。`VerifyMac` オペレーションは HMAC タグを計算し、それが提供された HMAC タグと同一であることを検証します。入力と計算された HMAC タグが同一ではない場合は、検証が失敗します。  
HMAC KMS キーは[自動キーローテーション](rotate-keys.md)をサポートしていないため、[カスタムキーストア](key-store-overview.md#custom-key-store-overview)で HMAC KMS キーを作成することはできません。  
 AWS サービス内のデータを暗号化するための KMS キーを作成する場合は、対称暗号化キーを使用します。HMAC KMS キーを使用することはできません。

** リージョン**  
HMAC KMS キーは、 がサポート AWS リージョン するすべての で AWS KMS サポートされています。

**詳細はこちら**
+ HMAC KMS キーを作成するには、「[HMAC KMS キーを作成する](hmac-create-key.md)」を参照してください。
+ マルチリージョンの HMAC KMS キーを作成するには、「[のマルチリージョンキー AWS KMS](multi-region-keys-overview.md)」を参照してください。
+  AWS KMS コンソールが HMAC KMS キーに設定するデフォルトのキーポリシーの違いを確認するには、「」を参照してください[暗号化オペレーションで KMS キーを使用することをキーユーザーに許可する](key-policy-default.md#key-policy-users-crypto)。
+ HMAC KMS キーの識別と表示については、「[HMAC KMS キーの特定](identify-key-types.md#hmac-view)」を参照してください。
+ JSON Web トークンを作成するための HMAC の使用について学ぶには、AWS セキュリティブログの「[How to protect HMACs inside AWS KMS](https://aws.amazon.com/blogs/security/how-to-protect-hmacs-inside-aws-kms/)」を参照してください。
+ ポッドキャストを聴く: [Introducing HMACs for AWS Key Management Service](https://aws.amazon.com/podcasts/introducing-hmacs-apis-in-aws-key-management-service) (*公式 AWS ポッドキャスト*)。