AWS キーマネジメントサービス(AWS KMS)でのキーマテリアルのインポート - AWS Key Management Service

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

AWS キーマネジメントサービス(AWS KMS)でのキーマテリアルのインポート

提供するキーマテリアルを使用して、 顧客マスターキー (CMK) を作成できます。

CMK は、マスターキーの論理表現です。以下を含みます。キーマテリアルデータの暗号化および復号に使用されます。キー識別子およびその他のメタデータです。 CMK を作成すると, 、デフォルトでは、AWS KMS はその CMK のキーマテリアルを生成します。ただし、キーマテリアルを使用せずに CMK を作成し、独自のキーマテリアルをその CMK にインポートできます。この機能は、「自分のキーを使用」(BYOK) とも呼ばれます。

注記

AWS KMS は、AWS KMS 以外の AWS KMS 暗号文の復号化をサポートしていません。たとえ暗号文がキーマテリアルをインポートした CMK で暗号化されていたとしても、AWS KMS は、このタスクに必要な暗号テキスト形式を公開しません。形式は予告なく変更される可能性があります。

インポートされたキーマテリアルは、AWS KMS キーストアのシンメトリック CMK に対してのみサポートされます。サポートされていません非対称 CMKまたは CMKカスタムキーストア

インポートしたキーマテリアルを使用する場合、AWS KMS がそのコピーを使用できるようするとともに、そのキーマテリアルに対する責任があります。そうする場合の理由として次のものが考えられます (複数が組み合わさる場合もあります)。

  • 要件を満たすエントロピーのソースを使用してキーマテリアルを生成したことを証明するため。

  • AWS サービスを使用して、独自のインフラストラクチャからキーマテリアルを使用するため、および AWS KMS を使用して AWS 内でのキーマテリアルのライフサイクルを管理するため。

  • AWS でキーマテリアルの有効期限を設定し、 手動で削除しますが, 、将来的に再度使用できるようにするため。これに対して、キーの削除のスケジュールは、7 日から 30 日の待機時間が必要となり、その後、削除された CMK は復元できません。

  • キーマテリアルのオリジナルコピーを所有し、キーマテリアルの全ライフサイクルでの耐久性を高めるためおよび災害対策としてオリジナルコピーを AWS の外部に保持するため。

インポートされたキーマテリアルを使用した CMK と AWS KMS によって生成されたキーマテリアルを使用した CMK の重要な相違点については、「」を参照してください インポートしたキーマテリアルについて

インポートするキーマテリアルは 256 ビット対称暗号化キーである必要があります。

インポートしたキーマテリアルについて

キーマテリアルを AWS KMS にインポートする前に、インポートされたキーマテリアルの次の特性を理解しておく必要があります。

キーのマテリアルを生成する

セキュリティ要件を満たすランダム性のソースを使用して、256 ビットのキー素材を生成する責任があります。

キー素材を変更できません

CMK にキーマテリアルをインポートする場合、CMK は、キーマテリアルに永続的に関連付けられます。同じキーマテリアルを再インポートすることができますが、別のキーマテリアルをその CMK にインポートすることはできません。また、インポートされたキーマテリアルを使用して、CMK に対して自動キーローテーションを有効にすることはできません。ただし、インポートされたキーマテリアルを使用して、手動で CMK をローテーションすることはできます。

他の CMK で復号化できない

KMS CMK でデータを暗号化すると、暗号化テキストを他の CMK を使用して復号化することはできません。これは、同じキーマテリアルを異なる CMK にインポートする場合でも同じです。

携帯性またはエスクロー機能なし

AWS KMS によって生成される暗号テキストは移植できません。AWS KMS は、AWS KMS 以外の AWS KMS 暗号文の復号化をサポートしていません。たとえ暗号文がキーマテリアルをインポートした CMK で暗号化されていたとしても、AWS KMS は、このタスクに必要な暗号テキスト形式を公開しません。形式は予告なく変更される可能性があります。

また、AWS ツールを使用できません。AWS 暗号化 SDKまたはAmazon S3 のクライアント側の暗号化を使用して AWS KMS 暗号文を復号化します。

その結果、キーマテリアルに条件付きでアクセスできる認証された第三者が AWS KMS 以外の特定の暗号文を復号化できるキーエスクローの配置をサポートするために、インポートされたキーマテリアルでキーを使用することはできません。キーエスクローをサポートするには、 AWS Encryption SDK を使用して、AWS KMS とは独立したキーでメッセージを暗号化します。

可用性と耐久性に責任があります

お客様は、キーマテリアルの全体的な可用性と耐久性に対して責任があります。AWS KMS は、インポートされたキーマテリアルの可用性を高めるように設計されています。ただし、このサービスでは、インポートされたキーマテリアルの耐久性は、ユーザーに代わって生成されたキーマテリアルと同じレベルでは維持されません。この差は、次の場合に有意義です。

  • インポートしたキーマテリアルの有効期限を設定すると、AWS KMS は有効期限が切れた後にキーマテリアルを削除します。AWS KMS は CMK またはそのメタデータを削除しません。AWS KMS によって生成されたキーマテリアルの有効期限を設定することはできません。

  • インポートされたキーマテリアルを手動で削除, すると、AWS KMS はキーマテリアルを削除しますが、CMK またはそのメタデータは削除されません。これとは対照的に、 キーの削除をスケジュール するには 7 ~ 30 日間の待機期間が必要です。その後、AWS KMS はキーマテリアルと CMK のメタデータをすべて削除します。

  • 万一、サービスに影響する特定のリージョン全体の障害(電力の損失など)が発生した場合、AWS KMS はインポートしたキーマテリアルを自動的に復元できません。ただし、AWS KMS は CMK とそのメタデータを復元できます。

このようなイベント後にキーマテリアルを復元するには、制御するシステムにキーマテリアルのコピーを保存する必要があります。次に、CMK に再インポートできます。

キーマテリアルをインポートするための権限

インポートされたキーマテリアルを使用して CMK を作成および管理するには、このプロセスの操作に対するパーミッションが必要です。CMK を作成するときに kms:GetParametersForImport, kms:ImportKeyMaterial, 、キーポリシーに、、およびの kms:DeleteImportedKeyMaterial アクセス権限を提供できます。この kms:ImportKeyMaterial 権限は、キー管理者のデフォルトの権限には含まれないため、手動で追加する必要があります。

インポートされたキーマテリアルを使用して CMK を作成するには、プリンシパルに次の権限が必要です。

  • KMS: 作成キー (IAM ポリシー)

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

      { "Version": "2012-10-17", "Statement": { "Sid": "IAM policy to create CMKs with no key material" "Effect": "Allow", "Resource": "*", "Principal": { "AWS": "arn:aws:iam::111122223333:role/KMSAdminRole" }, "Action": "kms:CreateKey", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } } }
  • KMS: インポートのパラメータを取得 (キーポリシーまたは IAM ポリシー)

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

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

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

インポートされたキーマテリアルを再インポートするには、プリンシパルに KMS: getParametersforImport および KMS: ImportKeyMater ial 権限が必要です。

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

キーマテリアルのインポート方法

以下の概要では、キーマテリアルを AWS KMS にインポートする方法について説明します。この手順の各ステップの詳細については、該当するトピックを参照してください。

  1. キーマテリアルの@@ない対称 CMK を作成する — キーマテリアルの インポートを開始するには、まず、 オリジン がである対称 CMK を作成します EXTERNAL。これは、キーマテリアルが AWS KMS の外部で生成されたことを示し、AWS KMS が CMK のキーマテリアルを生成できないようにします。後の手順で、この CMK に独自のキーマテリアルをインポートします。

  2. 公開鍵とインポートトークンのダウンロード — 手順 1 を完了した後、公開鍵とインポートトークンをダウンロードします。これらの項目は、AWS KMS へのキーマテリアルのインポートを保護します。

  3. キーマテリアルの暗号化 — 手順 2 でダウンロードした公開キーを使用して、独自のシステムで作成したキーマテリアルを暗号化します。

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

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

キーマテリアルの再インポート方法

インポートされたキーマテリアルを使用して CMK を管理する場合、キーマテリアルの有効期限が切れているか、またはキーマテリアルが誤って削除または失われたために、キーマテリアルを再インポートする必要があります。

もともと CMK にインポートされたのと同じキーマテリアルを再インポートする必要があります。別のキーマテリアルを CMK にインポートすることはできません。また、AWS KMS は、キーマテリアルなしで作成された CMK のキーマテリアルを作成できません。

キーマテリアルを再インポートするには、次のような例外を除いて、最初にキーマテリアルのインポートに使用したのと同じ手順を使用します。

  • 新しい CMK を作成する代わりに、既存の CMK を使用します。インポートの手順のステップ 1 はスキップできます。

  • CMK キーマテリアルが含まれている場合、キーマテリアルを再インポートする前に、既存のキーマテリアルを削除する必要があります。

CMK にキーマテリアルをインポートするたびに、CMK の新しいラップキーおよびインポートトークンをダウンロードして使用する必要があります。このラップの手順は、キーマテリアルの内容には影響しません。異なるラップキー (および異なるインポートトークン) を使用して同じキーマテリアルをインポートすることができます。

インポートされたキー素材を使用したCMKの表示方法

キーマテリアルなしで CMK を作成する場合、CMK の Origin プロパティの値は EXTERNAL で、変更することはできません。インポートされたキーマテリアルを使用するように設計されたキーを、AWS KMS が提供するキーマテリアルを使用するキーに変換することはできません。

インポートされたキーマテリアルを必要とする CMK は、AWS KMS コンソールまたは AWS KMS API を使用して識別できます。コンソールまたは API を使用して、キーマテリアルのプロパティを表示することもできます。たとえば、有効期限が切れるかどうか、期限が切れるかどうかなど。

インポートされたキーマテリアルで CMK を識別するには (コンソール)

  1. AWS KMS コンソール (https://console.aws.amazon.com/kms) を開きます。

  2. AWS リージョンを変更するには、ページの右上隅にある [リージョンセレクター] を使用します。

  3. 次のいずれかのテクニックを使用して、CMK の Origin プロパティを表示します。

    • CMK テーブルに Origin 列を追加するには、右上隅の、[Settings (設定)] アイコンを選択します。[Origin]、[Confirm (確認)] の順に選択します。Origin 列によって、EXTERNAL オリジンプロパティ値のある CMK を簡単に特定できます。

    • 特定の CMK の Origin プロパティの値を検索するには、CMK のキー ID またはエイリアスを選択します。次に、[ 暗号構成 ] タブを選択します。これらのタブは、[ 一般設定 ] セクションの下にあります。

  4. キーマテリアルに関する詳細情報を表示するには、[ キーマテリアル ] タブを選択します。このタブは、キー素材がインポートされた CMK についてのみ詳細ページに表示されます。

インポートされたキーマテリアルで CMK を識別するには(AWS KMS API)

DescribeKey 操作を使用します。レスポンスには、次の例に示すように、CMK の Origin プロパティ、有効期限モデル、有効期限が含まれます。

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "ExpirationModel": "KEY_MATERIAL_EXPIRES" "ValidTo": 1568894400.0, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333", "CreationDate": 1568289600.0, "Enabled": false, "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "KeyManager": "CUSTOMER", "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }