インポートされたキーマテリアルを持つ KMS キーの作成 - AWS Key Management Service

インポートされたキーマテリアルを持つ KMS キーの作成

キーマテリアルをインポートすると、生成した暗号キーで AWS リソースを保護できます。次に、AWS KMS にキーマテリアルをインポートする手順の概要を説明します。この手順の各ステップの詳細については、該当するトピックを参照してください。

  1. キーマテリアルなしで KMS キーを作成 – オリジンは EXTERNAL である必要があります。EXTERNAL のキーオリジンは、キーがインポートされたキーマテリアル用に設計されていることを示しており、AWS KMS は KMS キーのキーマテリアルを生成することができません。後のステップで、この KMS キーに独自のキーマテリアルをインポートします。

    インポートするキーマテリアルには、関連付けられた AWS KMS キーのキー仕様との互換性が必要です。互換性の詳細については、「インポートされたキーマテリアルの要件」を参照してください。

  2. ラッピングパブリックキーとインポートトークンをダウンロード – ステップ 1 を完了した後、ラッピングパブリックキーとインポートトークンをダウンロードします。これらの項目は、AWS KMS にインポートしている間、キーマテリアルを保護します。

    このステップでは、RSA ラッピングキーのタイプ (「キー仕様」) と、AWS KMS への転送中のデータの暗号化に使用するラッピングアルゴリズムを選択します。同じキーマテリアルをインポートまたは再インポートするたびに、異なるラッピングキー仕様とラッピングキーアルゴリズムを選択できます。

  3. キーマテリアルを暗号化 – ステップ 2 でダウンロードしたラッピングパブリックキーを使用して、独自のシステムで作成したキーマテリアルを暗号化します。

  4. キーマテリアルのインポート — 手順 3 で作成した暗号化されたキーマテリアルと、手順 2 でダウンロードしたインポートトークンをアップロードします。

    この段階で、オプションの有効期限を設定できます。インポートしたキーマテリアルの有効期限が切れると AWS KMS がこれを削除し、KMS キーは使用できなくなります。この KMS キーを再度使えるようにするには、同じキーマテリアルを再インポートする必要があります。

    インポートオペレーションが正常に完了すると、KMS キーのキーステータスは PendingImport から Enabled に変化します。これで、KMS キーを暗号化オペレーションで使用できます。

AWS KMS は、KMS キーの作成ラッピングパブリックキーとインポートトークンのダウンロードキーマテリアルのインポートをする際に、AWS CloudTrail ログにエントリを記録します。AWS KMS は、インポートされたキーマテリアルを削除する際や AWS KMS が有効期限切れのキーマテリアルを削除する際にもエントリを記録します。

キーマテリアルをインポートするためのアクセス許可

インポートされたキーマテリアルを使用して KMS キーを作成および管理するには、このプロセスのオペレーションに対するアクセス許可が必要です。KMS キーの作成時、キーポリシーに kms:GetParametersForImportkms:ImportKeyMaterialkms:DeleteImportedKeyMaterial のアクセス許可を付与できます。AWS KMS コンソールで、外部キーマテリアルオリジンを使用してキーを作成すると、これらの許可がキー管理者用に自動的に追加されます。

インポートされたキーマテリアルを持つ KMS キーを作成するには、プリンシパルに次の許可が必要です。

  • kms:CreateKey (IAM ポリシー)

    • インポートされたキーマテリアルを持つ KMS キーに対するこの許可を制限するには、EXTERNAL の値を持つ kms:KeyOrigin ポリシー条件を使用します。

      { "Sid": "CreateKMSKeysWithoutKeyMaterial", "Effect": "Allow", "Resource": "*", "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • KMS:GetParametersForImport (キーポリシーまたは IAM ポリシー)

    • 特定のラッピングアルゴリズムとラッピングキー仕様を使用する要求にこのアクセス許可を制限するには、KMS: WrappingAlgorithm および KMS: WrappingKeySpec ポリシー条件を使用します。

  • KMS:ImportKeyMaterial (キーポリシーまたは IAM ポリシー)

    • 有効期限が切れるキーマテリアルを許可または禁止し、有効期限を制御するには、KMS:ExpirationModel および KMS:Validto ポリシー条件を使用します。

インポートされたキーマテリアルを再インポートするには、プリンシパルに KMS:getParametersforImport および KMS:ImportKeyMaterial アクセス許可が必要です。

インポートされたキーマテリアルを削除するには、プリンシパルに KMS:DeleteImportedKeyMaterial アクセス許可が必要です。

例えば、キーマテリアルがインポートされた KMS キーのすべての側面を管理する KMSAdminRole 許可をサンプルに付与するには、KMS キーのキーポリシーに次のようなキーポリシーステートメントを含めてください。

{ "Sid": "Manage KMS keys with imported key material", "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": [ "kms:GetParametersForImport", "kms:ImportKeyMaterial", "kms:DeleteImportedKeyMaterial" ] }

インポートされたキーマテリアルの要件

インポートするキーマテリアルには、関連付けられた KMS キーのキー仕様との互換性が必要です。非対称キーペアの場合は、そのペアのプライベートキーのみをインポートします。AWS KMS はプライベートキーからパブリックキーを取得します。

AWS KMS は、キーマテリアルがインポートされた KMS キーについて、次のキー仕様をサポートしています。

  • 対称暗号化キー

    • キー仕様:

      • SYMMETRIC_DEFAULT。

    • 要件:

      • 256 ビット (32 バイト) のバイナリデータ。

      • 中国リージョンでは、128 ビット (16 バイト) のバイナリデータである必要があります。

  • HMAC キー

    • キー仕様:

      • HMAC_224

      • HMAC_256

      • HMAC_384

      • HMAC_512

    • 要件:

      • HMAC キーマテリアルは RFC 2104 に準拠している必要があります。

      • キーの長さは、少なくともキー仕様で指定された長さと同じである必要があります。最大キー長は 1024 ビットです。

      • キーマテリアルが 1024 ビットを超える場合は、キーマテリアルをハッシュし、ハッシュ出力をインポートできます。ハッシュアルゴリズムは、作成する HMAC KMS キーのキー仕様と一致する必要があります。

    • 例:

      • 2048 ビットのキーマテリアルを HMAC_256 キーにインポートするには、まず 2048 ビットのキーマテリアルの SHA-256 ハッシュを計算し、得られた 256 ビットのハッシュ出力を KMS キーにインポートします。

    • 有効なキーの長さ:

      • HMAC_224: 224~1024 ビット

      • HMAC_256: 256~1024 ビット

      • HMAC_384: 384~1024 ビット

      • HMAC_512: 512~1024 ビット

  • RSA 非対称プライベートキー

    • キー仕様:

      • RSA_2048

      • RSA_3072

      • RSA_4096

    • 要件:

      • インポートする RSA 非対称プライベートキーは、RFC 3447 に準拠したキーペアの一部である必要があります。

      • モジュラス: 2048 ビット、3072 ビット、または 4096 ビット

      • 素数の数: 2 (マルチプライム RSA キーはサポートされていません)

      • 非対称キーマテリアルは、RFC 5208 に準拠したパブリックキー暗号標準 (PKCS) #8 形式で BER エンコードまたは DER エンコードされている必要があります。

  • 楕円曲線非対称プライベートキー

    • キー仕様:

      • ECC_NIST_P256 (secp256r1)

      • ECC_NIST_P384 (secp384r1)

      • ECC_NIST_P521 (secp521r1)

      • ECC_SECG_P256K1 (secp256k1)

    • 要件:

      • インポートする ECC 非対称プライベートキーは、RFC 5915 に準拠したキーペアの一部である必要があります。

      • 曲線: NIST P-256、NIST P-384、NIST P-521、または Secp256k1。

      • パラメータ: 名前付き曲線のみ (パラメータが明示された ECC キーは拒否されます)。

      • パブリックポイント座標: 圧縮、非圧縮、または射影。

      • 非対称キーマテリアルは、RFC 5208 に準拠したパブリックキー暗号標準 (PKCS) #8 形式で BER エンコードまたは DER エンコードされている必要があります。

  • ML-DSA キー

    • キー仕様:

      • ML_DSA_44

      • ML_DSA_65

      • ML_DSA_87

    重要

    ML-DSA キーのインポートはサポートされていません。

  • SM2 非対称プライベートキー (中国リージョンのみ)

    • 要件:

      • インポートする SM2 非対称プライベートキーは、GM/T 0003 に準拠したキーペアの一部である必要があります。

      • 曲線: SM2。

      • パラメータ: 名前付き曲線のみ (パラメータが明示された SM2 キーは拒否されます)。

      • パブリックポイント座標: 圧縮、非圧縮、または射影。

      • 非対称キーマテリアルは、RFC 5208 に準拠したパブリックキー暗号標準 (PKCS) #8 形式で BER エンコードまたは DER エンコードされている必要があります。