このドキュメントでは、顧客管理の暗号鍵(CMEK)を使用して、Cloud Key Management Service を介してクラウド サービスの保存データを暗号化して制御する方法について説明します。CMEK は、Gemini Code Assist のコード カスタマイズと統合されています。
CMEK を使用しない場合、デフォルトではデータを暗号化する鍵が自動的に管理されます。この動作は、Google のデフォルトの暗号化と呼ばれます。このデフォルトの動作では、暗号鍵を制御できません。
このドキュメントでは、次の操作を行います。
- CMEK を作成する方法について学習する。
- Gemini Code Assist サービス アカウントに権限を付与します。
- CMEK を使用してコード リポジトリ インデックスを作成する。
- CMEK リポジトリへのアクセス権を削除します。
始める前に
-
In the Google Cloud console, activate Cloud Shell.
シェル環境で
gcloud components update
コマンドを実行して、gcloud CLI のインストールされているすべてのコンポーネントが最新バージョンに更新されていることを確認します。この手順では、gcloud CLI をインストールして初期化するか、Cloud Shell を使用します。gcloud components update
CMEK を作成し、権限を付与する
CMEK を作成して、Gemini Code Assist サービス アカウントに鍵に対する権限を付与するには、次の操作を行います。
鍵を管理する Google Cloud プロジェクトで、次の操作を行います。
次のいずれかのオプションを使用してキーリングと鍵を作成します。
- キーリングと鍵を Cloud KMS で直接作成します。
- 外部管理の鍵を使用する。外部鍵を作成してから Cloud EKM 鍵を作成し、その鍵を Cloud KMS で使用できるようにします。
Gemini Code Assist サービス アカウントに CryptoKey Encrypter/Decrypter IAM ロール(
roles/cloudkms.cryptoKeyEncrypterDecrypter
)を付与します。作成した鍵にこの権限を付与します。コンソール
[鍵管理] に移動します。
作成した鍵を選択します。
Gemini Code Assist サービス アカウントへのアクセス権を付与します。
- [プリンシパルを追加] をクリックします。
- Gemini Code Assist サービス アカウントを追加します。サービス アカウントは
service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com
です。ここで、PROJECT_NUMBER は、Gemini Code Assist が有効になっている Google Cloud プロジェクトのプロジェクト番号です。 - [ロールを選択] で、[Cloud KMS] > [Cloud KMS 暗号鍵の暗号化/復号] を選択します。
- [保存] をクリックします。
前の手順を繰り返して、CMEK を使用してコード リポジトリ インデックスを作成するアカウントにアクセス権を付与します。
[鍵管理] ページに戻り、鍵をもう一度選択します。
[情報パネルを表示] を選択します。[ロール/メンバー] 列にロールが表示されます。
gcloud
Gemini Code Assist サービス アカウントへのアクセス権を付与するには、シェル環境で
kms keys add-iam-policy-binding
コマンドを使用します。gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
次のように置き換えます。
- KEY_NAME: キー名。
- PROJECT_ID: 鍵を含むプロジェクトの ID。
- LOCATION: 鍵のロケーション。
- KEYRING_NAME: キーリングの名前。
- PROJECT_NUMBER: Gemini Code Assist が有効になっている Google Cloud プロジェクトのプロジェクト番号。
前の手順を繰り返して、CMEK を使用してコード リポジトリ インデックスを作成するアカウントにアクセス権を付与します。
このコマンドの詳細については、
gcloud kms keys add-iam-policy-binding
ドキュメントをご覧ください。
API を使用して CMEK を使用してコード リポジトリ インデックスを作成し、暗号化に使用する鍵を指定できるようになりました。
CMEK を使用してコード リポジトリ インデックスを作成する
gcloud CLI
で、CMEK による保護が有効なサービスを新しいリポジトリに作成します。
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
次のように置き換えます。
- CODE_REPOSITORY_INDEX_NAME: 作成する新しいコード リポジトリ インデックスの名前。
- LOCATION: 鍵のロケーション。
- KEY_PROJECT_ID: 鍵プロジェクト ID。
- KEYRING_NAME: キーリングの名前。
- KEY_NAME: キー名。
CMEK リポジトリへのアクセス権を削除する
CMEK で暗号化されたリポジトリへのアクセス権を削除する方法はいくつかあります。
- Google Cloud コンソールまたは gcloud CLI を使用して、Gemini Code Assist サービス アカウントから Cloud KMS CryptoKey の暗号化/復号のロールを取り消します。
- CMEK を一時的に無効にします。
- CMEK を完全に破棄します。
鍵を無効にするか破棄する前に、Gemini Code Assist サービス アカウントから権限を取り消すことをおすすめします。権限の変更の整合性は数秒以内に確保されるため、鍵の無効化や破棄の影響を確認できます。