このトピックでは、暗号鍵を新しい鍵バージョンとして Cloud HSM や Cloud Key Management Service にインポートする方法について説明します。
鍵のインポートの詳細(制限や制約など)については、鍵のインポートをご覧ください。
このトピックの手順(始める前にの手順は含まない)は 5〜10 分で完了できます。手動でキーをラッピングすると、タスクが複雑になります。
始める前に
この機能をテストしてテスト後のクリーンアップを容易にするために新しいプロジェクトを作成し、鍵のインポートに十分な Identity and Access Management(IAM)権限を確実に付与することをおすすめします。
鍵をインポートするには、プロジェクト、ローカル システム、鍵自体の準備が必要です。
プロジェクトの準備
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the required API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
キーリング、鍵、インポート ジョブを作成するには、インポートを実行するユーザーに次の IAM 権限が必要です。ユーザーがプロジェクト オーナーでない場合は、次の 2 つの事前定義ロールをどちらもユーザーに割り当てます。
roles/editor
roles/cloudkms.importer
Cloud KMS で使用できる IAM ロールと権限の詳細については、権限とロールをご覧ください。
ローカル システムの準備
次のオプションから 1 つを選択して、ローカル システムを準備します。ほとんどのユーザーには、自動鍵ラッピングが推奨されます。
- Google Cloud に送信する前に Google Cloud CLI で鍵を自動的にラッピングする場合は、お使いのローカル システムに Pyca 暗号ライブラリをインストールする必要があります。Pyca ライブラリは、Google Cloud に鍵を送信する前に、鍵のラッピングと保護を行うインポート ジョブで使用されます。
- キーを手動でラッピングする場合、鍵の手動ラッピング用に OpenSSL を構成する必要があります。
鍵の準備
鍵のアルゴリズムと長さがサポートされていることを確認します。鍵に使用できるアルゴリズムは、鍵が対称暗号化、非対称暗号化、非対称署名のどちらに使用されるか、鍵がソフトウェア、HSM のどちらに格納されるかによって異なります。鍵のアルゴリズムはインポート リクエストの一部として指定します。
また、鍵のエンコード方法を確認し、必要に応じて調整を行う必要があります。
鍵バージョンの作成後やインポート後に、以下を変更することはできません。
保護レベルは、鍵がソフトウェア、HSM、外部の鍵管理システムのうちどれに保持されるかどうかを示します。鍵マテリアルをこれらのストレージ環境間で移動することはできません。鍵のすべてのバージョンの保護レベルは同じです。
目的は、その鍵のバージョンが、対称暗号化、非対称暗号化、または非対称署名に使用されるかどうかを示します。鍵の目的により、その鍵のバージョンの作成に使用できるアルゴリズムが制限されます。1 つの鍵のすべてのバージョンは、同じ目的を持ちます。
インポートする鍵がないが、鍵のインポート手順を検証する場合は、次のコマンドを使用して、ローカル システムに対称鍵を作成できます。
openssl rand 32 > ${HOME}/test.bin
この鍵はテストでのみ使用してください。この方法で作成した鍵は、本番環境での使用には適していない可能性があります。
鍵を手動でラッピングする必要がある場合は、このトピックの手順を続行する前にラッピングしてください。
ターゲットキーとキーリングを作成する
Cloud KMS 鍵は、0 個以上の鍵バージョンを含むコンテナ オブジェクトです。各鍵バージョンには暗号鍵が含まれています。
鍵を Cloud KMS または Cloud HSM にインポートすると、インポートされた鍵は既存の Cloud KMS または Cloud HSM 鍵の新しい鍵バージョンになります。以降、このトピックではこの鍵をターゲットキーと呼びます。鍵マテリアルをインポートする前に、ターゲットキーが存在している必要があります。
鍵バージョンをインポートしても、その鍵の既存のバージョンには影響しません。ですが、鍵のインポートをテストする場合は、空の鍵を作成することをおすすめします。空の鍵にはバージョンがなく、アクティブではなく、使用できません。
新しく作成された鍵にインポートされたバージョンのみを含めるように指定することもできます。これにより、Cloud KMS で新しいバージョンが誤って生成されないようになります。
鍵は鍵リング上に存在します。このトピックでは、この鍵リングをターゲット キーリングと呼びます。ターゲット キーリングのロケーションによって、鍵マテリアルをインポート後に使用できるロケーションが決まります。一部のロケーションでは Cloud HSM 鍵を作成またはインポートできません。作成した鍵は、別の鍵リングまたはロケーションに移動できません。
Google Cloud CLI または Google Cloud コンソールを使用して、新しいキーリングに空の鍵を作成する手順は次のとおりです。
Console
Google Cloud コンソールで [鍵管理] ページに移動します。
[キーリングを作成] をクリックします。
[キーリング名] フィールドに、キーリングの名前を入力します。
[ロケーション タイプ] で、ロケーション タイプとロケーションを選択します。
[作成] をクリックします。[鍵の作成] ページが開きます。
[鍵名] フィールドに、鍵の名前を入力します。
[保護レベル] で [ソフトウェア] または [HSM] を選択し、[続行] をクリックします。
[鍵マテリアル] で [インポートした鍵] を選択し、[続行] をクリックします。これにより、初期鍵バージョンが作成されなくなります。
鍵の [目的] と [アルゴリズム] を設定し、[続行] をクリックします。
省略可: この鍵にインポートした鍵バージョンのみを含める場合は、[鍵バージョンをインポートのみに制限する] を選択します。これにより、Cloud KMS で誤って新しい鍵バージョンが作成されることが回避されます。
省略可: インポートした鍵の場合、自動ローテーションはデフォルトで無効になっています。自動ローテーションを有効にするには、[鍵のローテーション期間] フィールドから値を選択します。
自動ローテーションを有効にすると、新しい鍵バージョンが Cloud KMS で生成され、インポートした鍵バージョンはローテーション後のデフォルトの鍵バージョンではなくなります。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
ターゲット キーリングを作成します。Cloud HSM 鍵にインポートする場合は、Cloud HSM のサポートがあるロケーションを選択します。
gcloud kms keyrings create KEY_RING \ --location LOCATION
詳しくは、キーリングを作成をご覧ください。
ターゲットキーを作成します。
- 鍵の目的を指定します。
- 初期バージョンが作成されないようにするには、
--skip-initial-version-creation
フラグを使用します。 - 省略可:
--import-only
フラグを使用して、Cloud KMS で新しいバージョンが作成されないようにします。 - 省略可: ローテーション ポリシーは指定しません。自動ローテーションを有効にすると、新しい鍵バージョンが Cloud KMS で生成され、インポートした鍵バージョンはローテーション後のデフォルトの鍵バージョンではなくなります。
--import-only
フラグを指定した場合は、ローテーション ポリシーを指定できません。
gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --skip-initial-version-creation \ --import-only
Cloud KMS 鍵または Cloud HSM 鍵の作成方法の詳細をご覧ください。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
新しいキーリングを作成します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?keyRingId=KEY_RING" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{}"
詳しくは、
KeyRing.create
API ドキュメントをご覧ください。空のインポート専用の鍵を作成します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?cryptoKeyId=KEY_NAME&skipInitialVersionCreation=true&importOnly=true" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID" \ --data "{"purpose":"PURPOSE", "versionTemplate":{"protectionLevel":"PROTECTION_LEVEL","algorithm":"ALGORITHM"}}"
詳しくは、
CryptoKey.create
API ドキュメントをご覧ください。
鍵リングと鍵は存在しますが、この鍵には鍵マテリアルが含まれず、バージョンがなく、アクティブではありません。次に、インポート ジョブを作成します。
インポート ジョブを作成する
インポート ジョブは、インポートした鍵の特性を定義します。これには、鍵のインポート後に変更できないプロパティも含まれます。
保護レベルは、このインポート ジョブによってインポートされた鍵が、ソフトウェア、HSM、または外部の鍵管理システムに置かれるかどうを定義します。鍵をインポートした後、保護レベルを変更することはできません。
インポート メソッドは、ローカル システムからターゲットの Google Cloud プロジェクトへの転送中にインポートされた鍵を保護するラッピング鍵の作成に使用されるアルゴリズムを定義します。3,072 ビットまたは 4,096 ビットの RSA 鍵を選択できます。特別の要件がない限り、3072 ビットのラッピング鍵を使用することをおすすめします。
インポート ジョブを作成するには、gcloud CLI、Google Cloud コンソール、または Cloud Key Management Service API を使用します。
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
ターゲット キーリングの名前をクリックします。
[保護レベル] を [ソフトウェア] または [HSM] に設定します。ターゲットキーに設定したものと同じ保護レベルを使用します。
[インポート ジョブを作成] をクリックします。
[名前] フィールドに、インポート ジョブの名前を入力します。
[インポートの方法] プルダウンで、インポートの方法を 3,072 ビット RSA または 4,096 ビット RSA に設定します。
[作成] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
次のようなコマンドを使用して、インポート ジョブを作成します。
gcloud kms import-jobs create IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level PROTECTION_LEVEL
- ターゲットキーと同じ鍵リングとロケーションを使用します。
- 保護レベルを
software
またはhsm
に設定します。 - インポート メソッドを
rsa-oaep-3072-sha1-aes-256
、rsa-oaep-4096-sha1-aes-256
、rsa-oaep-3072-sha256-aes-256
,、rsa-oaep-4096-sha256-aes-256
、rsa-oaep-3072-sha256
またはrsa-oaep-4096-sha256
に設定します。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
インポート ジョブを作成するには、ImportJobs.create
メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs?import_job_id=IMPORT_JOB_ID" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"import_method": "IMPORT_METHOD", "protection_level": "PROTECTION_LEVEL"}'
以下を置き換えます。
インポート ジョブの状態を確認する
インポート ジョブの初期状態は PENDING_GENERATION
です。状態が ACTIVE
の場合、それを使用して鍵をインポートできます。
インポート ジョブは 3 日後に期限切れになります。インポート ジョブが期限切れになった場合は、新しいジョブを作成する必要があります。
インポート ジョブの状態は、Google Cloud CLI、Google Cloud コンソール、または Cloud Key Management Service API を使用して確認できます。
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
インポート ジョブが含まれる鍵リングの名前をクリックします。
ページの上部にある [インポート ジョブ] タブをクリックします。
状態は、インポート ジョブの名前の横にある [ステータス] に表示されます。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
インポート ジョブがアクティブな場合は、それを使用して鍵をインポートできます。これには数分かかることがあります。このコマンドを使用して、インポート ジョブがアクティブであることを確認します。インポート ジョブを作成したロケーションとキーリングを使用します。
gcloud kms import-jobs describe IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --format="value(state)"
出力は次のようになります。
state: ACTIVE
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
インポート ジョブの状態を確認するには、ImportJobs.get
メソッドを使用します。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/importJobs/IMPORT_JOB_ID" \ --request "GET" \ --header "authorization: Bearer TOKEN"
インポート ジョブがアクティブになるとすぐに、鍵をインポートするリクエストをすることができます。
インポート ジョブの変更を防止する
インポート ジョブによって、鍵のアルゴリズム、インポートした鍵が HSM キーかソフトウェア鍵かなど、インポートされた鍵の多くの特性が決まります。IAM 権限を構成して、ユーザーがインポート ジョブを作成できないようにする一方で、鍵をインポートするインポート ジョブをユーザーが使用できるようにすることが可能です。
importjobs.create
権限は鍵の管理者にのみ付与します。- 特定のインポート ジョブの
importjobs.useToImport
権限を、そのジョブを使用して鍵をインポートするオペレーターに付与します。 - インポート ジョブを作成するときに、インポートする鍵バージョンの保護レベルとアルゴリズムを指定します。
インポート ジョブが期限切れになるまで、importjobs.useToImport
権限を持ち、特定のインポート ジョブの importjobs.create
権限を持たないユーザーは、鍵はインポートできますが、インポート ジョブの特性を変更できません。
キーをインポート
インポート ジョブの状態を確認したら、インポート リクエストを行うことができます。
Google Cloud CLI で鍵を自動的にラップするか、すでに鍵を手動でラップしたかに応じて、異なるフラグを使用してインポート リクエストを作成します。
鍵を手動でラップしたか、自動でラップしたかに関係なく、インポートする実際の鍵の長さに一致するサポートされているアルゴリズムにアルゴリズムを設定し、鍵の目的を指定する必要があります。
目的が
ENCRYPT_DECRYPT
の鍵はgoogle-symmetric-encryption
アルゴリズムを使用し、長さは 32 です。目的が
ASYMMETRIC_DECRYPT
またはASYMMETRIC_SIGN
の鍵では、さまざまなアルゴリズムと長さがサポートされます。鍵の作成後に鍵の目的を変更することはできませんが、後続の鍵バージョンは、最初の鍵バージョンとは異なる長さで作成できます。
鍵の自動ラッピングとインポート
自動ラッピングを使用する場合は、Google Cloud CLI を使用する必要があります。次のようなコマンドを使用します。--target-key-file
を、ラッピングしてインポートするラッピングされていない鍵のロケーションに設定します。--wrapped-key-file
は設定しないでください。
公開鍵がすでにダウンロードされているロケーションに --public-key-file
フラグを設定することもできます。多数の鍵をインポートする場合、このフラグによってインポートするごとに公開鍵がダウンロードされるのを防ぎます。たとえば、鍵をインポートする際に公開鍵を 1 度ダウンロードすると、そのロケーションを提供するスクリプトを作成できます。
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --target-key-file PATH_TO_UNWRAPPED_KEY
鍵は、インポート ジョブに関連付けられたラッピング鍵でラッピングされ、Google Cloud に送信され、ターゲットキーの新しい鍵バージョンとしてインポートされます。
手動でラッピングした鍵のインポート
手動でラッピングした鍵をインポートするには、このセクションの手順を使用します。--wrapped-key-file
を手動でラッピングした鍵のロケーションに設定します。
--target-key-file
を設定しないでください。
公開鍵がすでにダウンロードされているロケーションに --public-key-file
フラグを設定することもできます。多数の鍵をインポートする場合、このフラグによってインポートするごとに公開鍵がダウンロードされるのを防ぎます。たとえば、鍵をインポートする際に公開鍵を 1 度ダウンロードすると、そのロケーションを提供するスクリプトを作成できます。
Console
Google Cloud コンソールで [鍵の管理] ページを開きます。
インポート ジョブが含まれる鍵リングの名前をクリックします。ターゲットキーが鍵リング上の他の鍵とともに表示されます。
ターゲットキーの名前をクリックし、[鍵バージョンをインポート] をクリックします。
[インポート ジョブを選択] プルダウンからインポート ジョブを選択します。
[ラッピングされた鍵をアップロード] セレクタで、すでにラッピングされている鍵を選択します。
非対称鍵をインポートする場合は、[アルゴリズム] プルダウンからアルゴリズムを選択します。[鍵バージョンをインポート] ページは次のようになります。
[インポート] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
次のようなコマンドを使用します。
gcloud kms keys versions import \ --import-job IMPORT_JOB \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEY
詳細については、gcloud kms keys versions import --help
コマンドの出力をご覧ください。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
cryptoKeyVersions.import
メソッドを使用して鍵をインポートします。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME/cryptoKeyVersions:import" \ --request "POST" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --data '{"importJob": "IMPORT_JOB_ID", "algorithm": "ALGORITHM", "wrappedKey": "WRAPPED_KEY"}'
以下を置き換えます。
IMPORT_JOB_ID: 対応するインポート ジョブの完全なリソース名。
ALGORITHM: インポートされるキーの
algorithm
。タイプはCryptoKeyVersionAlgorithm
です。WRAPPED_KEY: 手動でラップされた鍵(Base64 形式)。
鍵のインポート リクエストが開始されます。このステータスはモニタリングできます。
インポートした鍵バージョンの状態を確認する
インポートした鍵バージョンの初期状態は PENDING_IMPORT
です。状態が ENABLED
の場合、鍵は正常にインポートされています。インポートが失敗する場合、状態は IMPORT_FAILED
です。
インポート リクエストの状態は、Google Cloud CLI、Google Cloud コンソール、または Cloud Key Management Service API を使用して確認できます。
Console
Google Cloud コンソールで [鍵の管理] ページを開きます。
インポート ジョブが含まれる鍵リングの名前をクリックします。
ページの上部にある [インポート ジョブ] タブをクリックします。
状態は、インポート ジョブの名前の横にある [ステータス] に表示されます。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
versions list
コマンドを使用して状態を確認します。このトピックの前半で作成したのと同じロケーション、ターゲット キーリング、ターゲットキーを使用します。
gcloud kms keys versions list \ --keyring KEY_RING \ --location LOCATION \ --key KEY_NAME
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
ImportJob.get
メソッドを呼び出して、state
フィールドを確認します。state
が PENDING_GENERATION
の場合、インポート ジョブは作成中です。このフィールドが ACTIVE
になるまで定期的に状態を確認します。
最初の鍵バージョンをインポートすると、鍵のステータスが [アクティブ] に変わります。対称鍵を使用する場合は、インポートした鍵バージョンをメイン バージョンに設定する必要があります。
対称鍵: メイン バージョンを設定する
このステップは、対称鍵をインポートする場合に必要であり、非対称鍵の場合は関係ありません。非対称鍵にはメイン バージョンはありません。メイン バージョンを設定するには、Google Cloud CLI を使用する必要があります。
gcloud kms keys set-primary-version KEY_NAME\ --location=LOCATION\ --keyring=KEY_RING\ --version=KEY_VERSION
以前に破棄した鍵を再インポートする
Cloud Key Management Service では、鍵の再インポートがサポートされています。これにより、元の鍵マテリアルを指定して、以前にインポートした DESTROYED
または IMPORT_FAILED
状態の鍵バージョンを、ENABLED
状態に戻すことができます。最初のインポートの失敗により元の鍵マテリアルがインポートされなかった場合は、鍵マテリアルを指定できます。
制限事項
- 再インポートできるのは、以前にインポートした
CryptoKeyVersions
のみです。 - バージョンがすでに正常にインポートされている場合、再インポートされる鍵マテリアルは元の鍵マテリアルと完全一致する必要があります。
- この機能のリリース前に破棄された
CryptoKeyVersions
は、再インポートできません。バージョンが再インポートに使用できる場合、CryptoKeyVersion
のreimport_eligible
フィールドはtrue
、使用できない場合はfalse
です。
ソフトウェア鍵と Cloud HSM 鍵は再インポートできますが、外部鍵は再インポートできません。
破棄された鍵を再インポートする
インポート ジョブを作成するの手順に沿って、再インポート用の ImportJob
を作成します。保護レベルが元の保護レベルと一致する限り、既存の ImportJob
または新しい ImportJob
を使用できます。
Console
Google Cloud コンソールで、[鍵の管理] ページに移動します。
再インポートする鍵バージョンの鍵が含まれているキーリングの名前をクリックします。
再インポートする鍵バージョンの鍵をクリックします。
再インポートする鍵バージョンの横にある 3 つの点をクリックします。
[鍵バージョンを再インポート] を選択します。
[インポート ジョブを選択] プルダウンからインポート ジョブを選択します。
[ラッピングされた鍵をアップロード] セレクタで、すでにラッピングされている鍵を選択します。 この鍵は、元の鍵マテリアルと一致する必要があります。
[再インポート] をクリックします。
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
元の鍵マテリアルを使用して鍵バージョンを再インポートします。
gcloud kms keys versions import \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --version KEY_VERSION \ --algorithm ALGORITHM \ --import-job IMPORT_JOB \ --target-key-file PATH_TO_KEY \
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
cryptoKeyVersions.import
メソッドのリクエスト本文で、cryptoKeyVersion
フィールドを、インポートするバージョンの鍵バージョン名に設定します。これは暗号鍵の子である必要があります。リクエスト本文で、インポートする鍵のアルゴリズムを
algorithm
フィールドに設定します。この値は、元の鍵バージョンのアルゴリズムと一致する必要があります。algorithm
フィールドの型はCryptoKeyVersionAlgorithm
です。リクエスト本文で、
wrappedKeyMaterial
フィールドを、すでにラッピングした鍵マテリアルに設定します。cryptoKeyVersions.import
メソッドを呼び出します。cryptoKeyVersions.import
レスポンスの型はCryptoKeyVersion
です。鍵が正常にインポートされると、状態はENABLED
となり、Cloud KMS で使用できます。
次のステップ
- インポートした鍵を確認する。インポートした鍵マテリアルが元の鍵と同一であることを確認したら、鍵を使用して署名またはデータ保護を行うことができます。
- 鍵のインポートに失敗した場合のトラブルシューティング