翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
キー仕様のリファレンス
非対称 KMS キーまたは HMAC KMS キーを作成するときは、そのキーの仕様を選択します。キー仕様は、すべての AWS KMS key のプロパティであり、KMS キーの暗号化設定を表します。KMS キーの作成時に選択したキー仕様を変更することはできません。間違ったキー仕様を選択した場合は、KMS キーを削除し、新しいキー仕様を作成します。
注記
KMS キーのキー仕様は、「カスタマーマスターキー仕様」として知られていました。CreateKey オペレーションの CustomerMasterKeySpec
パラメータは非推奨です。代わりに、KeySpec
パラメータを使用します。CreateKey
および DescribeKey オペレーションのレスポンスには、同じ値を持つ KeySpec
および CustomerMasterKeySpec
メンバーが含まれます。
キーの仕様によって、KMS キーのタイプ (対称か非対称)、KMS キーのキーマテリアルのタイプ、および AWS KMS が KMS キーに対してサポートする暗号化アルゴリズム、署名アルゴリズム、またはメッセージ認証コード (MAC) アルゴリズムが決まります。選択するキー仕様は、通常、ユースケースと規制要件によって決まります。ただし、キー仕様の異なる KMS キーの暗号化オペレーションは料金が異なるため、クォータも異なる場合があります。料金の詳細については、「AWS Key Management Service の料金
KMS キーの作成時に、プリンシパルが使用できるキー仕様を制限するには、kms:KeySpec 条件キーを使用します。kms:KeySpec
条件キーを使用して、特定のキー仕様を持つ KMS キーのみで AWS KMS オペレーションを呼び出すことをプリンシパルに許可することもできます。例えば、RSA_4096
キー仕様を持つ KMS キーの削除をスケジュールする許可を拒否できます。
AWS KMS は、KMS キーの次のキー仕様をサポートします。
- 対称暗号化キーの仕様 (デフォルト)
-
-
SYMMETRIC_DEFAULT
-
- RSA キー仕様(暗号化と復号、または署名と検証)
-
-
RSA_2048
-
RSA_3072
-
RSA_4096
-
- 楕円曲線のキー仕様
- SM2 キー仕様 (暗号化と復号、または署名と検証、または共有シークレットの取得のいずれか)
-
-
SM2 (中国リージョンのみ)
-
- HMAC キーの仕様
-
-
HMAC_224
-
HMAC_256
-
HMAC_384
-
HMAC_512
-
SYMMETRIC_DEFAULT キー仕様
デフォルトのキー仕様である SYMMETRIC_DEFAULT は、対称暗号化 KMS キーのキー仕様です。AWS KMS コンソールでキーのタイプに [Symmetric] (対称)、キーの用途に [Encrypt and decrypt] (暗号化および復号) を選択すると、SYMMETRIC_DEFAULT
キー仕様が選択されます。CreateKey オペレーションで、 KeySpec
値を指定しない場合、SYMMETRIC_DEFAULT が選択されます。別のキー仕様を使用する理由がない場合は、SYMMETRIC_DEFAULT を選択することをお勧めします。
SYMMETRIC_DEFAULT は AES-256-GCM を表します。AES-256-GCM は Galois Counter Mode
AES-256-GCM で暗号化されたデータは、現在も将来も保護されています。暗号作成者は、このアルゴリズムには量子耐性があると考えています。理論上の将来、256 ビット AES-GCM キーで作成された暗号文に対する大規模な量子コンピューティング攻撃は、キーの効果的なセキュリティを 128 ビットに低下させます
中国リージョンでは唯一の例外で、SYMMETRIC_DEFAULT は SM4 暗号化を使用する 128 ビットの対称キーを表します。128 ビット SM4 キーは、中国リージョンでのみ作成できます。中国リージョンでは、256 ビット AES-GCM KMS キーを作成することはできません。
AWS KMS で対称暗号化 KMS キーを使用して、データの暗号化、復号、再暗号化、および生成されたデータキーとデータキーペアの保護を行うことができます。AWS KMS と統合された AWS のサービスは、対称暗号化 KMS キーを使用して保管中のデータを暗号化します。対称暗号化 KMS キーに独自のキーマテリアルをインポートし、カスタムキーストアで対称暗号化 KMS キーを作成することができます。対称および非対称 KMS キーで実行できるオペレーションを比較した表については、「対称および非対称 KMS キーの比較」を参照してください。
AWS KMS で対称暗号化 KMS キーを使用して、データの暗号化、復号、再暗号化、およびデータキーとデータキーペアの生成を行うことができます。マルチリージョンの対称暗号化 KMS キーの作成、対称暗号化 KMS キーへの独自のキーマテリアルのインポート、およびカスタムキーストアでの対称暗号化 KMS キーの作成が可能です。異なるタイプの KMS キーで実行できるオペレーションを比較した表については、「キータイプリファレンス」を参照してください。
RSA キー仕様
RSA キー仕様を使用する際、AWS KMS は RSA キーペアを持つ非対称 KMS キーを作成します。プライベートキーが暗号化されないまま AWS KMS から出ていくことはありません。AWS KMS 内でパブリックキーを使用することも、AWS KMS の外部で使用するためにパブリックキーをダウンロードすることもできます。
警告
AWS KMS の外部でデータを暗号化する場合は、暗号文を復号できることを確認してください。AWS KMS から削除された KMS キーのパブリックキー、署名と検証用に設定された KMS キーのパブリックキー、または KMS キーでサポートされていない暗号化アルゴリズムを使用する場合、データは回復できません。
AWS KMS では、非対称 KMS キーを RSA キーペアとともに暗号化と復号、または署名と検証に使用できますが、両方には使用できません。このプロパティは、キーの使用方法と呼ばれ、キー仕様とは別に決定されますが、キー仕様を選択する前に決定する必要があります。
AWS KMS は、暗号化と復号、署名と検証について、次の RSA キー仕様をサポートしています。
-
RSA_2048
-
RSA_3072
-
RSA_4096
RSA キー仕様は、RSA キーの長さ(ビット単位)によって異なります。選択する RSA キー仕様は、セキュリティ標準またはタスクの要件によって決定される場合があります。一般的に、タスクに実用的で手頃な価格の、最大のキーを使用します。RSA キー仕様の異なる KMS キーの暗号化オペレーションは、料金が異なります。AWS KMS の価格設定については、「AWS Key Management Service の料金
暗号化および復号の RSA キー仕様
RSA 非対称 KMS キーを暗号化および復号に使用する場合、パブリックキーで暗号化し、プライベートキーで復号します。RSA KMS キーの AWS KMS で Encrypt
オペレーションを呼び出す場合、AWS KMS は RSA キーペアのパブリックキーと、指定された暗号化アルゴリズムを使用してデータを暗号化します。暗号テキストを復号するには、Decrypt
オペレーションを呼び出し、同じ KMS キーと暗号化アルゴリズムを指定します。AWS KMS は次に、RSA キーペアのプライベートキーを使用してデータを復号します。
パブリックキーをダウンロードして、AWS KMS の外部のデータを暗号化するために使用することもできます。必ず、AWS KMS が RSA KMS キーでサポートする暗号化アルゴリズムを使用してください。暗号テキストを復号するには、同じ KMS キーと暗号化アルゴリズムを使用して Decrypt
関数を呼び出します。
AWS KMS は、RSA キー仕様を持つ KMS キーの 2 つの暗号化アルゴリズムをサポートします。PKCS #1 v2.2
暗号化アルゴリズム | アルゴリズムの説明 |
---|---|
RSAES_OAEP_SHA_1 | PKCS #1 v2.2、セクション 7.1。ハッシュと MGF1 マスク生成機能の両方に空のラベルとともに SHA-1 を使用した OAEP パディングによるRSA暗号化。 |
RSAES_OAEP_SHA_256 | PKCS #1、セクション 7.1. ハッシュと MGF1 マスク生成機能の両方に空のラベルとともに SHA-256 を使用した OAEP パディングによるRSA暗号化。 |
特定の暗号化アルゴリズムを使用するように KMS キーを設定することはできません。ただし、kms:EncryptionAlgorithm ポリシー条件を使用して、プリンシパルが KMS キーで使用できる暗号化アルゴリズムを指定できます。
KMS キーの暗号化アルゴリズムを取得するには、AWS KMS コンソールの KMS キーの暗号化設定を表示するか、DescribeKey オペレーションを使用します。パブリックキーをダウンロードする際に、AWS KMS が AWS KMS コンソール内で、あるいは GetPublicKey オペレーションを使用して、キー仕様と暗号化アルゴリズムも提供します。
各リクエストで暗号化できるプレーンテキストデータの長さに基づいて、RSA キー仕様を選択できます。次の表に、Encrypt オペレーションに対する 1 回の呼び出しで暗号化できるプレーンテキストの最大サイズをバイト単位で示します。値は、キー仕様と暗号化アルゴリズムによって異なります。比較すると、対称暗号化 KMS キーは一度に最大 4,096 バイトを暗号化するために使用できます。
これらのアルゴリズムのプレーンテキストの最大長(バイト単位)を計算するには、次の式を使用します。(key_size_in_bits
/ 8) - (2 * hash_length_in_bits
/8) - 2。例えば、RSA_2048 と SHA-256 の場合、バイト単位のプレーンテキストの最大サイズは、(2048/8) - (2 * 256/8) -2 = 190 です。
暗号化アルゴリズム | ||
---|---|---|
キー仕様 | RSAES_OAEP_SHA_1 | RSAES_OAEP_SHA_256 |
RSA_2048 | 214 | 190 |
RSA_3072 | 342 | 318 |
RSA_4096 | 470 | 446 |
署名および検証用の RSA キー仕様
署名と検証に RSA 非対称 KMS キーを使用する場合、プライベートキーを持つメッセージの署名を生成し、パブリックキーで署名を検証します。
非対称 KMS キーの AWS KMS で Sign
オペレーションを呼び出すと、AWS KMS は RSA キーペアのプライベートキー、メッセージ、指定した署名アルゴリズムを使用して、署名を生成します。署名を検証するには、Verify オペレーションを呼び出します。署名に加えて、同じ KMS キー、メッセージ、署名アルゴリズムを指定します。AWS KMS は、RSA キーペアのパブリックキーを使用して、署名を検証します。また、パブリックキーをダウンロードして、AWS KMS の外部で署名を検証するために使用することもできます。
AWS KMS は、RSA キー仕様のすべての KMS キーに対して、次の署名アルゴリズムをサポートします。Sign オペレーションと Verify オペレーションを呼び出すときは、署名アルゴリズムを指定する必要があります。リクエストごとに異なるアルゴリズムを選択できます。RSA キーペアで署名する場合は、RSASSA-PSS アルゴリズムが推奨されます。既存のアプリケーションとの互換性を保つため、RSASSA-PKCS1-v1_5 アルゴリズムが採用されています。
署名アルゴリズム | アルゴリズムの説明 |
---|---|
RSASSA_PSS_SHA_256 | PKCS #1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-256 とともに 256 ビットソルトを使用する PSS パディング付きの RSA 署名 |
RSASSA_PSS_SHA_384 | PKCS #1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-384 とともに 384 ビットソルトを使用する PSS パディング付きの RSA 署名 |
RSASSA_PSS_SHA_512 | PKCS #1 v2.2、セクション 8.1、メッセージダイジェストと MGF1 マスク生成機能の両方に SHA-512 とともに 512 ビットソルトを使用する PSS パディング付きの RSA 署名 |
RSASSA_PKCS1_V1_5_SHA_256 | PKCS #1 v2.2、セクション 8.2、PKCS #1v1.5 パディングおよび SHA-256 を使用した RSA 署名 |
RSASSA_PKCS1_V1_5_SHA_384 | PKCS #1 v2.2、セクション 8.2、PKCS #1v1.5 パディングおよび SHA-384 を使用した RSA 署名 |
RSASSA_PKCS1_V1_5_SHA_512 | PKCS #1 v2.2、セクション 8.2、PKCS #1v1.5 パディングおよび SHA-512 を使用した RSA 署名 |
特定の署名アルゴリズムを使用するように KMS キーを設定することはできません。ただし、km: SigningAlgorithm ポリシー条件を使用して、プリンシパルが KMS キーで使用できる署名アルゴリズムを指定できます。
KMS キーの署名アルゴリズムを取得するには、AWS KMS コンソールの KMS キーの暗号化設定を表示するか、DescribeKey オペレーションを使用します。パブリックキーをダウンロードする際に、AWS KMS が AWS KMS コンソール内で、あるいは GetPublicKey オペレーションを使用して、キー仕様と署名アルゴリズムも提供します。
楕円曲線のキー仕様
楕円曲線 (ECC) キー仕様を使用すると、AWS KMS は署名と検証、もしくは共有シークレットの取得のいずれか (署名・検証と共有シークレットの取得の両方には使用できません) のために ECC キーペアを持つ非対称 KMS キーを作成します。署名を生成もしくは共有シークレットを取得するプライベートキーでは、AWS KMS が暗号化されないままになることはありません。パブリックキーを使用して AWS KMS 内の署名を検証したり、AWS KMS の外部で使用するためにパブリックキーをダウンロードしたりできます。
AWS KMS は、非対称 KMS キーの、次の ECC キー仕様をサポートします。
-
非対称 NIST 推奨楕円曲線キーペア (署名と検証、または共有シークレットの取得のいずれか)
-
ECC_NIST_P256 (secp256r1)
-
ECC_NIST_P384 (secp384r1)
-
ECC_NIST_P521 (secp521r1)
-
-
その他の非対称楕円曲線キーペア (署名と検証)
-
ECC_SECG_P256K1 (secp256k1
)。一般に暗号通貨に用いられる。
-
選択する ECC キー仕様は、セキュリティ標準またはタスクの要件によって決定される場合があります。一般的に、タスクに実用的で手頃な価格の、最も多くのポイントがある曲線を使用します。
非対称 KMS キーを作成して共有シークレット を取得する場合は、NIST が推奨する楕円曲線キー仕様のいずれかを使用します。共有シークレットの取得向けにサポートされている唯一のキーアグリーメントアルゴリズムは、楕円曲線暗号化共同係数 Diffie-Hellman Primitive
暗号通貨で使用する非対称 KMS キーを作成する場合は、ECC_SECG_P256K1 キー仕様を使用します。このキー仕様を他の目的に使用することもできますが、Bitcoin やその他の暗号化通貨には必要です。
ECC キー仕様が異なる KMS キー仕様は料金が異なるため、リクエストクォータも異なる場合があります。AWS KMS の料金については、AWS Key Management Service の料金
次の表に、ECC キー仕様ごとに AWS KMS がサポートする署名アルゴリズムを示します。特定の署名アルゴリズムを使用するように KMS キーを設定することはできません。ただし、km: SigningAlgorithm ポリシー条件を使用して、プリンシパルが KMS キーで使用できる署名アルゴリズムを指定できます。
キー仕様 | 署名アルゴリズム | アルゴリズムの説明 |
---|---|---|
ECC_NIST_P256 | ECDSA_SHA_256 | メッセージダイジェストのためにキーおよび SHA-256 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 |
ECC_NIST_P384 | ECDSA_SHA_384 | メッセージダイジェストのためにキーおよび SHA-384 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 |
ECC_NIST_P521 | ECDSA_SHA_512 | メッセージダイジェストのためにキーおよび SHA-512 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 |
ECC_SECG_P256K1 | ECDSA_SHA_256 | メッセージダイジェストのためにキーおよび SHA-256 で指定された曲線を使用する、NIST FIPS 186-4、セクション 6.4、ECDSA 署名。 |
SM2 キー仕様 (中国リージョンのみ)
SM2 キー仕様は、中国国家商業暗号局 (OSCCA)
各 KMS キーに指定できるキー用途は 1 つだけです。SM2 KMS キー は、署名と検証、暗号化と複合、または共有シークレットの取得のいずれかに使用できます。KMS キーの作成時にキーの用途を指定する必要があります。キーの作成後に変更することはできません。
非対称 KMS キーを作成して共有シークレットを取得する場合は、SM2 キー仕様を使用します。共有シークレットの取得向けにサポートされている唯一のキーアグリーメントアルゴリズムは、楕円曲線暗号化共同係数 Diffie-Hellman Primitive
AWS KMS は、以下の SM2 暗号化および署名アルゴリズムをサポートしています。
-
- SM2PKE 暗号化アルゴリズム
-
SM2PKE は、GM/T 0003.4-2012 で OSCCA によって定義された楕円曲線ベースの暗号化アルゴリズムです。
-
- SM2DSA 署名アルゴリズム
-
SM2DSA は、GM/T 0003.2-2012 で OSCCA によって定義された楕円曲線ベースの暗号化アルゴリズムです。SM2DSA には、SM3 ハッシュアルゴリズムでハッシュ化され、AWS KMS に渡されたメッセージまたはメッセージダイジェストと組み合わされた識別 ID が必要です。この連結された値は、AWS KMS によりハッシュ化されて署名されます。
HMAC KMS キーの主な仕様
AWS KMS は、さまざまな長さの対称 HMAC キーをサポートします。選択するキー仕様は、セキュリティ、規制、またはビジネス要件に応じて異なります。キーの長さによって、GenerateMac および VerifyMac オペレーションで使用される MAC アルゴリズムが決まります。一般に、キーが長いほど安全性が高くなります。ユースケースにとって実用的な最も長いキーを使用してください。
HMAC キーの仕様 | MAC アルゴリズム |
---|---|
HMAC_224 | HMAC_SHA_224 |
HMAC_256 | HMAC_SHA_256 |
HMAC_384 | HMAC_SHA_384 |
HMAC_512 | HMAC_SHA_512 |