顧客管理の暗号鍵(CMEK)を使用する
デフォルトでは、Colab Enterprise はお客様のコンテンツを保存時に暗号化します。Colab Enterprise では、ユーザーが追加で操作を行わなくても暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Colab Enterprise などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。Cloud KMS を使用すると、監査ログを表示し、鍵のライフサイクルを管理することもできます。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵の制御と管理を行います。
CMEK を使用してリソースを設定した後は、Colab Enterprise リソースへのアクセスは Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
このガイドでは、Colab Enterprise で CMEK を使用する方法について説明します。
Gemini Enterprise Agent Platform で CMEK を使用する方法については、Agent Platform の CMEK ページをご覧ください。
Colab Enterprise の CMEK
CMEK を使用して、Colab Enterprise ランタイム、ノートブック ファイル(ノートブック)、データ サイエンス エージェントのデータを暗号化できます。
ランタイム
Colab Enterprise ノートブックでコードを実行すると、ランタイムによって Colab Enterprise が管理する 1 つ以上の仮想マシン(VM)インスタンスでコードが実行されます。Colab Enterprise ランタイムで CMEK を有効にすると、Google が管理する鍵ではなく、指定した鍵がこれらの VM のデータの暗号化に使用されます。CMEK 鍵により、次の種類のデータが暗号化されます。
- VM 上のコードのコピー。
- コードによって読み込まれるデータ。
- コードによってローカル ディスクに保存されるすべての一時データ。
CMEK 暗号化に影響を与えることなく、ランタイムの開始、停止、アップグレードを行うことができます。
一般に、CMEK 鍵は、ランタイムの名前やノートブックの名前とリージョンなど、オペレーションに関連するメタデータを暗号化しません。このメタデータは常に、Google のデフォルトの暗号化メカニズムを使用して暗号化されます。
ノートブック
Colab Enterprise ノートブックは Dataform リポジトリに保存されます。ノートブックを作成すると、Colab Enterprise はノートブックが保存される非表示の Dataform リポジトリを自動的に作成します。リポジトリは非表示になっているため、他の Dataform リポジトリのように暗号化設定を変更することはできません。
ノートブックで CMEK を使用するには、ノートブックを含む Google Cloud プロジェクトのデフォルトの Dataform CMEK 鍵を設定する必要があります。デフォルトの Dataform CMEK 鍵を設定すると、Dataform は、ノートブックの保存用に作成された非表示リポジトリを含めて、 Google Cloud プロジェクトで作成された新しいすべてのリポジトリにデフォルトで鍵を適用します。
デフォルトの Dataform CMEK 鍵は、既存のリポジトリには適用されません。そのため、プロジェクトにノートブックがすでに存在している場合、デフォルトの Dataform CMEK 鍵で暗号化されません。プロジェクトのデフォルトの Dataform CMEK 鍵を設定する前に作成されたノートブックで CMEK を使用するには、ノートブック ファイルを新しい Colab Enterprise ノートブックとして保存します。
デフォルトの Dataform CMEK 鍵の詳細については、Dataform のデフォルトの CMEK 鍵を使用するをご覧ください。
ノートブックで CMEK を使用するには、デフォルトの Dataform CMEK 鍵を設定するをご覧ください。
データ サイエンス エージェント
Data Science エージェントは、デフォルトのランタイム テンプレートで構成された Cloud KMS 鍵を自動的に使用して、会話履歴などのセッションの保存データを暗号化します。Data Science Agent 用に CMEK を別途構成する必要はありません。
データ サイエンス エージェントの主な変更点と削除
デフォルトのランタイム テンプレートの CMEK 鍵を変更または削除した場合(または CMEK 構成済みのデフォルトのランタイム テンプレートを削除した場合)、新しいセッションを開始すると、暗号化設定がデータ サイエンス エージェントに適用されます。データ サイエンス エージェントのデータとセッションへの影響は、変更の種類によって異なります。
- 鍵の変更: 以前のセッションのデータは削除され、新しいセッションは更新された鍵で暗号化されます。
- 鍵を削除する: 以前のセッションのデータが削除され、以降のセッションでは Google のデフォルトの暗号化が使用されます(組織のポリシーで制限されている場合を除く)。
- 鍵が使用できない: Cloud KMS 鍵が無効化、削除された場合、または権限が取り消された場合、鍵へのアクセスが復元されるまで、データ サイエンス エージェント はリクエストを処理できません。
- 組織のポリシー: 組織で
aiplatform.googleapis.comにconstraints/gcp.restrictNonCmekServices制約が適用されている場合は、データ サイエンス エージェント を使用する前に、デフォルトのランタイム テンプレートで Cloud KMS 鍵を構成する必要があります。
サポートされているキー
Colab Enterprise は、次のタイプの CMEK 鍵をサポートしています。
鍵の可用性は、鍵の種類とリージョンによって異なります。CMEK 鍵の地理的な可用性の詳細については、Cloud KMS のロケーションをご覧ください。
制限事項
Colab Enterprise は、次の制限付きで CMEK をサポートしています。
- 暗号鍵の割り当て: Agent Platform のデフォルトの割り当ては、プロジェクトとリージョンごとに 1 つの暗号鍵です。プロジェクトのリージョンに複数の鍵を登録する必要がある場合は、Google アカウント チームに連絡して、CMEK 構成の割り当ての増加をリクエストしてください。その際、複数の鍵が必要な理由を説明してください。
- データ サイエンス エージェントの構成: データ サイエンス エージェントには、個別の CMEK 構成はありません。プロジェクトとリージョンのデフォルト ランタイム テンプレートから CMEK 設定のみを継承します。カスタムのデフォルト以外のランタイム テンプレートは、データ サイエンス エージェントには適用されません。
- データ サイエンス エージェント セッションの更新: デフォルトのランタイム テンプレートの CMEK 構成の変更(鍵の更新や削除など)は、データ サイエンス エージェント で新しいセッションが開始されたときに有効になります。以前のセッションのデータは削除され、更新された暗号化設定は次のセッションの開始時に適用されます。
Cloud KMS の割り当てと Colab Enterprise
Colab Enterprise で CMEK を使用すると、プロジェクトで Cloud KMS 暗号リクエストの割り当てが消費されることがあります。 CMEK 鍵を使用する暗号化と復号のオペレーションは、ハードウェア(Cloud HSM)鍵または外部(Cloud EKM)鍵を使用する場合にのみ、Cloud KMS の割り当てに影響します。 詳細については、Cloud KMS の割り当てをご覧ください。
ランタイムの CMEK を構成する
以降のセクションでは、Cloud Key Management Service でキーリングと鍵を作成する方法、鍵に対する Colab Enterprise の暗号化と復号の権限を付与する方法、CMEK を使用するように構成されたランタイム テンプレートを作成する方法について説明します。Colab Enterprise がこのランタイム テンプレートから生成するランタイムは、CMEK 暗号化を使用します。
始める前に
このガイドでは、Colab Enterprise ランタイム用の CMEK を構成するため、2 つの独立した Google Cloud プロジェクトを使用することを前提としています。
- 暗号鍵を管理するためのプロジェクト(「Cloud KMS プロジェクト」)。
- Colab Enterprise リソースにアクセスし、必要な他の Google Cloud プロダクトとやり取りを行うためのプロジェクト(「ノートブック プロジェクト」)。
このおすすめの設定は、職掌分散をサポートしています。
また、このガイド全体で 1 つの Google Cloud プロジェクトだけを使用することもできます。これを行うには、以降に掲載する Cloud KMS プロジェクトを参照するタスクと、Notebook プロジェクトを参照するプロジェクトのすべてに同じプロジェクトを使用します。
Cloud KMS プロジェクトを設定する
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud KMS API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud KMS API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Notebook プロジェクトを設定する
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Gemini Enterprise Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Gemini Enterprise Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Google Cloud CLI を設定する
このガイドの一部の手順では gcloud CLI は必須となり、それ以外の手順ではオプションの手段になります。Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。
gcloud init外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
キーリングと鍵を作成する
対称鍵の作成に関する Cloud KMS ガイドに従って、キーリングと鍵を作成します。キーリングを作成する際、Colab Enterprise オペレーションをサポートするリージョンをキーリングのロケーションとして指定します。Colab Enterprise では、ランタイム(またはデータ サイエンス エージェント)と鍵が同じリージョンを使用する場合にのみ CMEK がサポートされます。デュアル リージョン、マルチ リージョン、グローバル ロケーションをキーリングに指定することはできません。
キーリングと鍵は Cloud KMS プロジェクトで作成します。
Colab Enterprise の権限を付与する
リソースに CMEK を使用するには、鍵を使用してデータの暗号化と復号を行う権限を Colab Enterprise に付与する必要があります。Colab Enterprise は、Google が管理するサービス エージェントでリソースを使用してオペレーションを実行します。このサービス アカウントは、service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com という形式のメールアドレスで識別されます。
Notebook プロジェクトに適切なサービス アカウントを見つけるには、Google Cloud コンソールの [IAM] ページに移動し、NOTEBOOK_PROJECT_NUMBER 変数を Notebook プロジェクトのプロジェクト番号に置き換えて、このメールアドレス形式と一致するメンバーを見つけます。このサービス アカウントは、Vertex AI Service Agent という名前でもあります。
このサービス アカウントのメールアドレスをメモし、以降の、CMEK 鍵を使用したデータの暗号化と復号の権限を付与する手順で使用します。権限を付与するには、 Google Cloud コンソールまたは Google Cloud CLI を使用します。
Google Cloud コンソール
Google Cloud コンソールで、[セキュリティ] をクリックして [鍵管理] を選択します。[暗号鍵] ページが表示されたら、Cloud KMS プロジェクトを選択します。
このガイドの前のセクションで作成したキーリングの名前をクリックして、[キーリングの詳細] ページに移動します。
このガイドの前のセクションで作成した鍵のチェックボックスをオンにします。鍵の名前が付いた情報パネルがまだ開いていない場合は、[情報パネルを表示] をクリックします。
情報パネルで、[メンバーを追加] をクリックして、[「KEY_NAME」にメンバーを追加します] ダイアログを開きます。このダイアログで、次の操作を行います。
[新しいメンバー] ボックスに、前のセクションでメモしたサービス アカウントのメールアドレス(
service-NOTEBOOK_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com)を入力します。[ロールを選択] プルダウン リストで [Cloud KMS] をクリックし、続いて [Cloud KMS 暗号鍵の暗号化/復号] ロールを選択します。
[保存] をクリックします。
gcloud
次のコマンドを実行します。
gcloud kms keys add-iam-policy-binding KEY_NAME \ --keyring=KEY_RING_NAME \ --location=REGION \ --project=KMS_PROJECT_ID \ --member=serviceAccount:service-NOTEBOOK_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
このコマンドで、プレースホルダは次のように置き換えます。
- KEY_NAME: このガイドの前のセクションで作成したキーの名前。
- KEY_RING_NAME: このガイドの前のセクションで作成したキーリング。
- REGION: キーリングを作成したリージョン。
- KMS_PROJECT_ID: Cloud KMS プロジェクトの ID。
- NOTEBOOK_PROJECT_NUMBER: 前のセクションでサービス アカウントのメールアドレスの一部としてメモした Notebook プロジェクトのプロジェクト番号。
KMS 鍵を使用してランタイム テンプレートを構成する
新しい CMEK でサポートされているリソースを作成する場合、作成パラメータの 1 つとして鍵を指定できます。Colab Enterprise ランタイムを作成するには、CMEK 鍵をパラメータとして指定してランタイム テンプレートを作成します。Colab Enterprise がこのランタイム テンプレートから生成するランタイムは、CMEK 暗号化を使用します。
Google Cloud コンソールを使用してランタイム テンプレートを作成するには、[ランタイム テンプレートの新規作成] ダイアログで鍵を指定します。手順は次のとおりです。
-
Google Cloud コンソールで、Colab Enterprise の [ランタイム テンプレート] ページに移動します。
-
[ 新しいテンプレート] をクリックします。
[ランタイム テンプレートの新規作成] ダイアログが表示されます。
-
[コンピューティングを構成する] セクションの [暗号化] で、[Cloud KMS 鍵] を選択します。
-
[鍵のタイプ] で [Cloud KMS] を選択し、次のフィールドで顧客管理の暗号鍵を選択します。
-
インスタンス作成ダイアログの残りの部分に入力して、[作成] をクリックします。
ランタイム テンプレートが [ランタイム テンプレート] タブのリストに表示されます。
データ サイエンス エージェントの CMEK を構成する
データ サイエンス エージェントで CMEK を有効にするには、プロジェクトとリージョンのデフォルトのランタイム テンプレートで Cloud KMS 鍵を構成します。データ サイエンス エージェントは、デフォルトのランタイム テンプレートからのみ暗号化構成を継承します。カスタムのデフォルト以外のテンプレートからは継承しません。
データ サイエンス エージェントの CMEK を構成するには、リージョンのデフォルトのランタイム テンプレートを作成または編集するときに、KMS 鍵を使用してランタイム テンプレートを構成するの手順に沿って操作します。
次のステップ
- ノートブックで CMEK を使用するには、デフォルトの Dataform CMEK 鍵を設定するをご覧ください。
- データ サイエンス エージェントを使用する方法を学習する。
- Google Cloudの CMEK について詳細を確認する。
- 他の Google Cloudプロダクトで CMEK を使用する方法を確認する。