インポートされたキーマテリアルを持つ KMS キーの作成
キーマテリアルをインポートすると、生成した暗号キーで AWS リソースを保護できます。次に、AWS KMS にキーマテリアルをインポートする手順の概要を説明します。この手順の各ステップの詳細については、該当するトピックを参照してください。
-
キーマテリアルなしで KMS キーを作成 – オリジンは
EXTERNALである必要があります。EXTERNALのキーオリジンは、キーがインポートされたキーマテリアル用に設計されていることを示しており、AWS KMS は KMS キーのキーマテリアルを生成することができません。後のステップで、この KMS キーに独自のキーマテリアルをインポートします。インポートするキーマテリアルには、関連付けられた AWS KMS キーのキー仕様との互換性が必要です。互換性の詳細については、「インポートされたキーマテリアルの要件」を参照してください。
-
ラッピングパブリックキーとインポートトークンをダウンロード – ステップ 1 を完了した後、ラッピングパブリックキーとインポートトークンをダウンロードします。これらの項目は、AWS KMS にインポートしている間、キーマテリアルを保護します。
このステップでは、RSA ラッピングキーのタイプ (「キー仕様」) と、AWS KMS への転送中のデータの暗号化に使用するラッピングアルゴリズムを選択します。同じキーマテリアルをインポートまたは再インポートするたびに、異なるラッピングキー仕様とラッピングキーアルゴリズムを選択できます。
-
キーマテリアルを暗号化 – ステップ 2 でダウンロードしたラッピングパブリックキーを使用して、独自のシステムで作成したキーマテリアルを暗号化します。
-
キーマテリアルのインポート — 手順 3 で作成した暗号化されたキーマテリアルと、手順 2 でダウンロードしたインポートトークンをアップロードします。
この段階で、オプションの有効期限を設定できます。インポートしたキーマテリアルの有効期限が切れると AWS KMS がこれを削除し、KMS キーは使用できなくなります。この KMS キーを再度使えるようにするには、同じキーマテリアルを再インポートする必要があります。
インポートオペレーションが正常に完了すると、KMS キーのキーステータスは
PendingImportからEnabledに変化します。これで、KMS キーを暗号化オペレーションで使用できます。
AWS KMS は、KMS キーの作成、ラッピングパブリックキーとインポートトークンのダウンロード、キーマテリアルのインポートをする際に、AWS CloudTrail ログにエントリを記録します。AWS KMS は、インポートされたキーマテリアルを削除する際や AWS KMS が有効期限切れのキーマテリアルを削除する際にもエントリを記録します。
キーマテリアルをインポートするためのアクセス許可
インポートされたキーマテリアルを使用して KMS キーを作成および管理するには、このプロセスのオペレーションに対するアクセス許可が必要です。KMS キーの作成時、キーポリシーに kms:GetParametersForImport、kms:ImportKeyMaterial、kms: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 非対称プライベートキー
-
楕円曲線非対称プライベートキー
-
キー仕様:
-
ECC_NIST_P256 (secp256r1)
-
ECC_NIST_P384 (secp384r1)
-
ECC_NIST_P521 (secp521r1)
-
ECC_SECG_P256K1 (secp256k1)
-
-
要件:
-
-
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 エンコードされている必要があります。
-
-