AWS Key Management Service (AWS KMS) にキーマテリアルをインポートする - AWS Key Management Service

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

AWS Key Management Service (AWS KMS) にキーマテリアルをインポートする

キーマテリアルを指定した カスタマーマスターキー (CMK) を作成できます。

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

注記

AWS KMSAWS KMSは、AWS KMSインポートされたキーマテリアルを使用して暗号化テキストが で暗号化されていても、 外部の暗号化テキストの復号をサポートしません。 CMKは、このタスクで必要な暗号化テキスト形式を発行せず、予告なしに形式が変わる可能性があります。AWS KMS

インポートされたキーマテリアルは、AWS KMS キーストアにある対称 CMKs でのみサポートされます。非対称 CMKs またはカスタムキーストアの CMKs ではサポートされません。

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

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

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

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

  • キーマテリアルのオリジナルコピーを所有し、それを AWS 外に保存して、キーマテリアルのライフサイクル期間に耐久性を高め障害の復旧を行うには

インポートされたキーマテリアルを含む CMKs と、AWS KMS で生成されるキーマテリアルを含むものの重要な違いについては、「インポートしたキーマテリアルについて」を参照してください。

インポートするキーマテリアルは 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

また、 AWSAWS 暗号化 SDKや クライアント側の暗号化などAmazon S3、いかなるツールを使用してもAWS KMS暗号化テキストを復号することはできません。

その結果、インポートされたキーマテリアルを含むキーを使用して、キーマテリアルへの条件付きアクセス権を持つ許可されたサードパーティーが AWS KMS の外部で特定の暗号化テキストを復号できるキーエスクローの配置をサポートすることはできません。キーエスクローをサポートするには、AWS 暗号化 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 に再インポートできます。

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

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

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

  • kms:CreateKey (IAM ポリシー)

    • インポートされたキーマテリアルでこの許可を CMKs に制限するには、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:GetParametersForImport (キーポリシーまたは IAM ポリシー)

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

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

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

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

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

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

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

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

  2. パブリックキーおよびインポートトークンをダウンロード – ステップ 1 を完了した後、パブリックキーとインポートトークンをダウンロードします。これらの項目は、AWS KMS へのキーマテリアルのインポートを保護します。

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

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

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

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

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

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

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

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

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

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

インポートされたキーマテリアルCMKsを使用して表示する方法

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

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

インポートされたキーマテリアルCMKsを使用して識別するには (コンソール)

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

  2. 左のナビゲーションペインで、暗号化キーを選択します。

  3. フィルタ で、AWS の該当するリージョンを選択します。

  4. 次のいずれかの方法を使用して、CMKs の Origin プロパティを表示します。

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

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

  5. キーマテリアルに関する詳細情報を表示するには、[ キーマテリアル ] タブを選択します。このタブは、インポートされたキーマテリアルを使用して、 の詳細ページのみに表示されます。CMKs

インポートされたキーマテリアルCMKsを使用して識別するには (AWS KMS API)

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

$ 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" ] } }