このトピックでは、Cloud External Key Manager(Cloud EnKM)を使用して、Google Cloud の外部で管理されている鍵を使用して保存データを暗号化する方法について説明します。
始める前に
以下の手順を完了すると、Cloud EKM 鍵を使用してデータを保護できるようになります。
新しいプロジェクトの作成
Cloud EKM をテストする場合は、新しいプロジェクトを設定することをおすすめします。
Google Cloud Console で、[リソースの管理] ページに移動します。
新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトを選択します。
-
Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する。
詳細については、Cloud EKM 料金をご覧ください。
Cloud KMS を有効にする
プロジェクトの Cloud Key Management Service API を有効にします。
プロジェクトの Cloud EKM サービス アカウントをメモしておきます。次の例では、project-number を Google Cloud プロジェクトのプロジェクト番号に置き換えます。この情報は、Google Cloud Console を使用して Cloud EKM 鍵を作成するたびに表示されます。
service-project-number@gcp-sa-ekms.iam.gserviceaccount.com
外部鍵管理パートナー システムを準備する
外部鍵管理パートナー システムで、外部鍵を使用するためのアクセス権を Google Cloud サービス アカウントに付与します。 サービス アカウントをメールアドレスとして扱います。パートナーはこのトピックとは異なる用語を使用できます。
外部鍵を作成する
これらの手順は、外部鍵管理パートナー システムで行います。正確な手順は、外部鍵管理パートナーによって異なります。サポートされている Cloud EKM パートナーの一覧をご覧ください。
必要に応じて、この リリースに参加するための外部鍵管理パートナーのアクセス権限を要請してください。
外部鍵管理パートナーシステムで鍵を作成するか、既存の鍵を選択します。
Cloud EKM 鍵に使用する Google Cloud リージョンに近いリージョンに鍵を作成します。これにより、Google Cloud プロジェクトと外部鍵管理パートナーの間のネットワーク レイテンシが短縮されます。そうしないと、失敗オペレーションの数が増加する場合があります。詳細については、Cloud EKM とリージョンをご覧ください。
外部鍵の URI をメモします。この情報は、Cloud EKM 鍵を作成するために必要です。
Cloud EKM 鍵を作成します。
鍵を作成するときは、鍵を使用するロケーションに存在する鍵リングに追加します。Cloud EKM 鍵の場合、ロケーションは外部鍵のロケーションの近くにもある必要があります。
このトピックでは、鍵リングを作成する方法を説明しますが、鍵を適切なロケーションの既存の鍵リングに作成することもできます。
gcloud
外部の鍵管理パートナーが推奨するリージョンのいずれかに鍵リングを作成します。
gcloud kms keyrings \ create key-ring-name \ --location location
鍵リングに鍵を作成します。 保護レベルを
external
に設定し、目的をencryption
に設定します。--skip-initial-version-creation
を追加して、最初の鍵バージョンが作成されないようにします。default algorithm
をexternal-symmetric-encryption
に設定します。gcloud kms keys \ create key-name \ --keyring key-ring-name \ --location location \ --purpose encryption \ --protection-level external \ --skip-initial-version-creation \ --default-algorithm external-symmetric-encryption
作成した鍵の鍵バージョンを作成します。
--external-key-uri
フラグに外部鍵の URI を設定します。このバージョンをメインの鍵バージョンにするには、--primary
フラグを指定します。前の手順と同じキー名、キーリング、ロケーションを使用します。gcloud kms keys versions \ create \ --key key-name \ --keyring key-ring-name \ --location location \ --external-key-uri external-key-uri \ --primary
コンソール
キーリングの作成
Cloud Console で [暗号鍵] ページに移動します。
[キーリングを作成] をクリックします。
[キーリング名] フィールドに、キーリングの名前を入力します。
ロケーションのプルダウンから、外部鍵管理パートナーが推奨するリージョンのいずれかを選択します。
[作成] をクリックします。キーリングが作成され、鍵作成ダイアログが表示されます。
Cloud EKM 鍵を作成します。
鍵の種類には [外部で管理する鍵] を選択します。目的は自動的に対称暗号化 / 復号化に設定され、鍵のタイプとアルゴリズム フィールドが外部対称鍵に設定されます。これらの値は変更できません。
キーの名前を入力してください
外部の鍵の URI を入力します。
必要に応じて、鍵のラベルを追加します。詳しくは、鍵のラベル付けをご覧ください。
[作成] をクリック
鍵バージョンが自動的に作成され、メインのバージョンになります。
新しい鍵の鍵のリソース ID を取得し、その鍵を使用して、次のシナリオでデータを保護することができます。
- BigQuery データの保護
- Compute Engine リソースの保護
- VM ディスク上の GKE データの保護
- GKE アプリケーション レイヤでの Secret の保護
- データベースに書き込まれた Cloud SQL データの保護
- Cloud KMS で直接対称鍵によるデータの暗号化と復号を行う
外部鍵をローテーションする
外部鍵の URI を変更する必要がある場合は、Cloud EKM 鍵をローテーションできます。鍵をローテーションすると、Cloud EKM 鍵に新しい鍵バージョンが追加されます。
Cloud EKM 鍵をローテーションした後でも、以前のバージョンの外部鍵が外部鍵管理パートナーのシステムの外部鍵 URI で引き続き利用可能である限り、以前のバージョンの鍵を使用して暗号化されたデータを復号化できます。
外部鍵管理パートナー システムの鍵マテリアルは変更されず、URI が変更された場合は、鍵をローテーションせずに鍵の外部 URI を更新できます。
gcloud
鍵をローテーションするには、更新された外部鍵の URI を含む新しい鍵バージョンを作成し、このバージョンをメインの鍵バージョンにします。鍵の作成時に使用したのと同じ名前、キーリング、ロケーションを使用します。
gcloud kms keys versions \ create \ --key key-name \ --keyring key-ring-name \ --location location \ --external-key-uri new-external-key-uri \ --primary
Console
Cloud Console で [暗号鍵] ページに移動します。
[暗号鍵] ページに移動キーリングを選択し、鍵を選択します。
[ローテーション] を選択します。
新しい鍵 URI を入力し、[鍵のローテーション] を選択します。
新しい鍵バージョンがメインのバージョンになります。
鍵バージョンの URI を更新する
新しい鍵 URI が元の鍵 URI とまったく同じ鍵マテリアルである限り、Cloud EKM 鍵をローテーションせずに、Cloud EKM 鍵バージョンの鍵 URI を更新できます。URI に同じ鍵マテリアルが含まれていない場合、鍵 URI の更新は失敗します。 メインのバージョンではない鍵バージョンの鍵 URI を更新することもできます。
外部鍵管理パートナー システムで鍵マテリアルがローテーションされている場合は、代わりに鍵をローテーションする必要があります。
gcloud
鍵バージョンの URI を更新するには、gcloud beta kms versions update
コマンドを使用して更新する鍵バージョンを指定し、--external-key-uri
フラグを新しい URI に設定します。
gcloud kms keys versions update key-version \ --key key \ --keyring keyring \ --location location \ --external-key-uri uri
たとえば、次のコマンドは、鍵のバージョン 2 の URI を example-key
から https://example-key.example.com/v0/example_key
に更新します。
gcloud kms keys versions update 2 \ --key example-key> \ --keyring example-keyring \ --location us-west1 \ --external-key-uri https://example-key.example.com/v0/example_key
Console
Cloud Console で [暗号鍵] ページに移動します。
[暗号鍵] ページに移動キーリングを選択し、鍵とバージョンを選択します。
その他アイコン more_vert、[鍵の URI を表示] の順にクリックします。
[鍵の URI を更新] をクリックします。
新しい鍵の URI を入力し、[保存] をクリックします。
外部鍵の無効化または破棄
Cloud EKM 鍵と外部鍵の関連付けを一時的に無効にするには、Cloud EKM 鍵または鍵バージョンを無効にします。鍵全体を無効にすることをおすすめします。鍵の無効化は 3 時間以内に有効になります。
鍵を無効にした場合、鍵へのアクセス権を取り消す必要があります。IAM オペレーションは数秒間一定です。また、外部鍵管理パートナー システムで Google Cloud サービス アカウントのアクセス権を取り消すことを検討してください。
Cloud EKM 鍵と外部鍵の関連付けを完全に削除するには、Cloud EKM 鍵バージョンの破棄をスケジュールします。24 時間が経過すると、鍵は破棄されます。鍵は永続的に破棄されます。鍵バージョンが破棄された後は、Cloud EKM 鍵バージョンで暗号化されたデータの暗号化やデータの復号はできなくなります。同じ外部鍵 URI を使用している場合でも、破棄した Cloud EKM 鍵バージョンを再作成することはできません。
エラーの解釈
Cloud EKM 鍵の作成時または使用時にエラーが発生した場合は、エラーがログに記録されます。これらのエラーの解釈と修正方法についての詳細は、Cloud EKM エラー リファレンスをご覧ください。
サポートの利用
Cloud EKM で問題が発生した場合は、サポートにお問い合わせください。