顧客管理の暗号鍵(CMEK)

デフォルトでは、Gemini Enterprise Agent Platform はお客様のコンテンツを保存時に暗号化します。Agent Platform では、ユーザーが追加で操作を行わなくても、暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。

暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Agent Platform などの CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。 Cloud KMS を使用すると、鍵の使用状況を追跡すること、監査ログを表示すること、鍵のライフサイクルを管理することが可能です。 データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵を制御および管理します。

CMEK を使用してリソースを設定した後は、Agent Platform リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。暗号化オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。

このガイドでは、Gemini Enterprise Agent Platform リソースに CMEK を使用するメリットと、CMEK を使用するようにトレーニング ジョブを構成する方法について説明します。

Colab Enterprise で CMEK を使用する方法については、Colab Enterprise の CMEK ページをご覧ください。Gemini Enterprise Agent Platform Workbench インスタンスで CMEK を使用する方法の詳細については、Agent Platform Workbench インスタンスの CMEK ページをご覧ください。

Gemini Enterprise Agent Platform リソースの CMEK

次のセクションでは、ジョブ用に CMEK を構成する前に理解しておく必要がある Gemini Enterprise Agent Platform リソースの CMEK に関する基本情報について説明します。

CMEK のメリット

一般に、CMEK は、データの暗号化に使用する鍵を完全に制御する必要がある場合によく利用されます。CMEK を使用すると、Cloud KMS 内で鍵を管理できます。たとえば、Cloud KMS API を使用して、鍵のローテーションや無効化を行うことが可能です。CMEK の一般的な用途や使用する理由などの詳細については、Cloud KMS のドキュメントをご覧ください。

AutoML またはカスタム トレーニング ジョブを実行すると、Gemini Enterprise Agent Platform によって管理される 1 つ以上の仮想マシン(VM)インスタンスでコードが実行されます。Gemini Enterprise Agent Platform リソースで CMEK を有効にすると、Google が管理する鍵ではなく、指定した鍵を使用して、これらの VM のブートディスクのデータが暗号化されます。CMEK 鍵により、次の種類のデータが暗号化されます。

  • VM 上のコードのコピー。
  • コードによって読み込まれるデータ。
  • コードによってローカル ディスクに保存されるすべての一時データ。
  • AutoML でトレーニングされたモデル。
  • メディア データセットにアップロードされたメディア ファイル(データ)

一般に、CMEK 鍵は、ジョブの名前やリージョン、データセットの表示名など、オペレーションに関連するメタデータを暗号化しません。オペレーションに関連付けられたメタデータは常に、Google のデフォルトの暗号化メカニズムを使用して暗号化されます。

データセットの場合、ユーザーがデータセットにデータをインポートすると、データ項目とアノテーションは CMEK で暗号化されます。データセットの表示名は CMEK で暗号化されません。

モデルの場合、ストレージ システム(ディスクなど)に保存されているモデルは CMEK で暗号化されます。モデル評価の結果はすべて、CMEK で暗号化されます。

エンドポイントの場合、エンドポイントのモデルデプロイで使用されるすべてのモデルファイルは CMEK で暗号化されます。これには、メモリ内データは含まれません。

バッチ予測の場合、バッチ予測ジョブの実行に使用する一時ファイル(モデルファイル、ログ、VM ディスクなど)が CMEK で暗号化されます。バッチ予測結果は、ユーザーが指定した宛先に格納されます。そのため、Agent Platform は宛先の暗号化構成のデフォルト値を尊重します。それ以外の場合、結果は CMEK で暗号化されます。

データラベル付けの場合、入力ファイル(画像、テキスト、表形式)、一時的なディスカッション(質問、フィードバックなど)、出力(ラベル付けの結果)が CMEK で暗号化されます。アノテーション仕様の表示名は、CMEK で暗号化されません。

エージェントの場合、CMEK はエージェントの開発に使用されるすべてのソースファイルを暗号化します。また、エージェントのコンテナ イメージとデプロイされたインスタンスも CMEK で暗号化されます。

外部鍵

Cloud External Key Manager(Cloud EKM)を使用して、管理対象の外部鍵を作成し、 Google Cloud内のデータの暗号化に使用できます。

Cloud EKM 鍵を使用する場合、Google は外部管理鍵の可用性をコントロールできません。外部で管理されている鍵で暗号化されたリソースへのアクセスをリクエストし、その鍵が利用できない場合、Gemini Enterprise Agent Platform はリクエストを拒否します。鍵が使用可能になってからリソースにアクセスできるようになるまでに、最大 10 分の遅延が生じる場合があります。

外部鍵を使用する際のその他の考慮事項については、Cloud External Key Manager をご覧ください。

他の Google Cloud プロダクトで CMEK を使用する

Gemini Enterprise Agent Platform リソース用に CMEK を構成しても、Gemini Enterprise Agent Platform と一緒に使用する他の Google Cloud プロダクト用の CMEK は自動的には構成されません。他のGoogle Cloud プロダクトで CMEK を使用してデータを暗号化するには、別途構成が必要になります。次に例を示します。

  • Cloud Storage: カスタム トレーニングを行うと、Agent Platform は通常 Cloud Storage からデータを読み込みます。Python トレーニング アプリケーションとトレーニング用ビルド済みコンテナを使用すると、Gemini Enterprise Agent Platform によって Cloud Storage バケットからもコードが読み込まれます。また、一部のトレーニング ジョブでは、その出力の一部として、トレーニング済みモデルのアーティファクト(TensorFlow SaveModel ディレクトリなど)が Cloud Storage バケットにエクスポートされます。

    Cloud Storage のデータを CMEK で暗号化するには、顧客管理の暗号鍵の使用に関する Cloud Storage ガイドをご覧ください。暗号鍵を Gemini Enterprise Agent Platform で使用する Cloud Storage バケットのデフォルトの鍵として設定することも、特定のオブジェクトの暗号化に使用することもできます。

    Cloud Storage での CMEK の使用方法の詳細については、こちらをご覧ください。

  • Artifact Registry: トレーニングにカスタム コンテナを使用する場合、Artifact Registry からコンテナ イメージを読み込むように Agent Platform を構成できます。

    コンテナ イメージが CMEK で暗号化されるようにするには、CMEK の Artifact Registry ガイドをご覧ください。

  • Cloud Logging: トレーニング ジョブを実行すると、Gemini Enterprise Agent Platform トレーニングはログを Logging に保存します。CMEK を使用してこれらのログを暗号化するには、Cloud Logging の CMEK を構成するをご覧ください。

現在の CMEK がサポートするリソース

現在 CMEK の対象となっている Gemini Enterprise Agent Platform リソースは次のとおりです。プレビュー機能の CMEK サポートもプレビュー ステータスです。

リソース 暗号化されたマテリアル ドキュメントのリンク
データセット
  • DataItems と Annotations でユーザーがインポートしたすべてのデータ(テキスト コンテンツなど)。
  • ユーザーが作成したコンテンツ(AnnotationSpecs、ColumnSpecs など)
モデル
  • アップロードされたモデルファイル。
  • トレーニング済みモデルの評価結果。
エンドポイント
  • エンドポイントでモデルをデプロイするために使用されるすべてのモデルファイル。これにはメモリ内データは含まれませんが、鍵が無効になっている場合、モデルは自動的にデプロイ解除されます。
CustomJob
  • オペレーションの実行に使用する VM のコードのコピー。
  • コードによって読み込まれるデータ。
  • コードによってローカル ディスクに保存されるすべての一時データ。
HyperparameterTuningJob
  • オペレーションの実行に使用する VM のコードのコピー。
  • コードによって読み込まれるデータ。
  • コードによってローカル ディスクに保存されるすべての一時データ。
TrainingPipeline
  • オペレーションの実行に使用する VM のコードのコピー。
  • コードによって読み込まれるデータ。
  • コードによってローカル ディスクに保存されるすべての一時データ。
  • AutoML でトレーニングされたモデル。
BatchPredictionJob(AutoML 画像 batchPrediction を除く)
  • バッチ予測ジョブを進めるために使用される一時ファイル(モデルファイル、ログ、VM ディスクなど)。
  • BatchPrediction の書き込まれた結果が、ユーザーが指定した宛先に格納されている場合は、デフォルト値の暗号化構成に従います。それ以外の場合は、CMEK で暗号化されます。
ModelDeploymentMonitoringJob
  • モデルのデプロイのモニタリング ジョブを処理するジョブで使用される一時ファイル(トレーニング データセット ファイル、ログ、VM ディスクなど)。
  • モニタリングで異常を検出するために使用されるデータ。
  • キーが無効になっている場合、モデルのデプロイのモニタリング ジョブは一時停止されます。
PipelineJob
  • パイプライン ジョブとそのすべてのサブリソース。
MetadataStore
  • メタデータ ストアのすべてのコンテンツ。
TensorBoard
  • アップロードされた TensorBoard ログのすべてのデータ(スカラー、ヒストグラム、グラフの定義、画像、テキスト)。
Featurestore
  • featurestore と featurestore のすべてのコンテンツ。
Index
  • ベクトル検索インデックスに使用されるすべてのデータファイルは、Cloud Storage、Pub/Sub、内部ストレージに保存されます。Index と IndexEndpoint は同じキーで作成する必要があります。
IndexEndpoint
  • ベクトル検索インデックスに使用されるすべてのデータファイルは、Cloud Storage、Pub/Sub、内部ストレージに保存されます。Index と IndexEndpoint は同じキーで作成する必要があります。
Colab Enterprise ランタイム
  • ランタイムの VM のブートディスクとデータディスク
Colab Enterprise ノートブック
  • ノートブック ファイルとそのコメント
Agent Runtime
  • コード、スクリプト、依存関係ファイルなど、エージェントのソースファイルのコピー
  • エージェントのソースファイルからビルドされたコンテナ イメージ
  • エージェント コンテナ イメージからデプロイされた実行中のインスタンス
Agent Platform サンドボックス
  • 実行中のサンドボックス インスタンスのメモリ チェックポイントの状態とディスク ストレージ
  • カスタム コンテナのオーバーレイと環境構成
  • 保存されたサンドボックス スナップショットとテンプレート
ServingProfile
  • リソースレス(リクエストベース)API によって保存されたデータ(Gemini Live API セッション再開データや Interactions API の保存済みインタラクションなど)。

生成 AI チューニング パイプラインの CMEK サポート

次のモデルのチューニング パイプラインで CMEK サポートが提供されます。

  • BERT
  • T5
  • image-generation (GPU)

制限事項

次の機能には CMEK サポートが提供されません。

  • AutoML 画像モデルのバッチ予測(BatchPredictionJob)
  • TPU のチューニング
  • グローバル エンドポイントを使用するように構成された Agent Platform メモリバンクまたは Agent Platform セッション。Cloud KMS では、暗号鍵が固定された地理的データ所在地境界内に存在する必要があります。グローバル リージョンには物理的な地理的境界がないため、ローカライズされたリージョン リソースまたはマルチリージョン リソースを暗号化することはできません。
  • リソースレス API のサービング プロファイル CMEK は、us と eu のマルチリージョンにある Gemini Live API と Interactions API に限定されます。グローバル リージョンはサポートされていません。

リソースに CMEK を構成する

以降のセクションでは、Cloud Key Management Service でキーリングと鍵を作成する方法、鍵の Agent Platform の暗号化と復号の権限を付与する方法、CMEK を使用するリソースを作成する方法について説明します。

始める前に

このガイドでは、Agent Platform データ用の CMEK を構成するため、2 つの独立した Google Cloud プロジェクトを使用することを前提としています。

  • 暗号鍵を管理するためのプロジェクト(「Cloud KMS プロジェクト」)。
  • Agent Platform のデータまたは Cloud Storage の出力にアクセスし、ユースケースに必要な他の Google Cloudプロダクトとやり取りを行うためのプロジェクト(「AI Platform プロジェクト」)。

このおすすめの設定は、職掌分散をサポートしています。

また、このガイド全体で 1 つの Google Cloud プロジェクトだけを使用することもできます。そのようにするには、以降に出てくる Cloud KMS プロジェクトに関係するタスクと、AI Platform プロジェクトに関係するタスクのすべてに同じプロジェクトを使用します。

Cloud KMS プロジェクトを設定する

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

AI Platform プロジェクトを設定する

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオで Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分も差し上げます。
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

  5. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Agent Platform API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. 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.

    Enable the API

Google Cloud CLI を設定する

このガイドの一部の手順では gcloud CLI は必須となり、それ以外の手順ではオプションの手段になります。

Google Cloud CLI をインストールします。インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

gcloud init

外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

キーリングと鍵を作成する

対称鍵の作成に関する Cloud KMS ガイドに従って、キーリングと鍵を作成します。キーリングを作成するときは、Agent Platform オペレーションをサポートするリージョンをキーリングのロケーションとして指定します。Agent Platform トレーニングは、リソースと鍵が同じリージョンを使用する場合にのみ CMEK をサポートします。デュアル リージョン、マルチ リージョン、グローバル ロケーションをキーリングに指定することはできません。

キーリングと鍵は Cloud KMS プロジェクトで作成します。

Agent Platform の権限を付与する

リソースに CMEK を使用するには、鍵を使用してデータの暗号化と復号を行う権限を Agent Platform に付与する必要があります。Agent Platform は、Google が管理するサービス エージェントを使用して、リソースを使用するオペレーションを実行します。このサービス アカウントは、次の形式のメールアドレスにより識別されます。

service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

AI Platform プロジェクトに適切なサービス アカウントを見つけるには、 Google Cloud コンソールの [IAM] ページに移動します。AI_PLATFORM_PROJECT_NUMBER 変数を置き換えて、AI Platform プロジェクトのプロジェクト番号を使用してこのメールアドレス形式と一致するメンバーを見つます。このサービス アカウントは、Agent Platform Service Agent という名前でもあります。

[IAM] ページに移動

このサービス アカウントのメールアドレスをメモし、以降の、CMEK 鍵を使用したデータの暗号化と復号の権限を付与する手順で使用します。権限を付与するには、 Google Cloud コンソールまたは Google Cloud CLI を使用します。

Google Cloud コンソール

  1. Google Cloud コンソールで、[セキュリティ] をクリックして [鍵管理] を選択します。[暗号鍵] ページが表示されたら、Cloud KMS プロジェクトを選択します。

    [暗号鍵] ページに移動

  2. このガイドの前のセクションで作成したキーリングの名前をクリックして [キーリングの詳細] ページに移動します。

  3. このガイドの前のセクションで作成した鍵のチェックボックスをオンにします。鍵の名前が付いた情報パネルがまだ開いていない場合は、[情報パネルを表示] をクリックします。

  4. 情報パネルで、[メンバーを追加] をクリックして、[「KEY_NAME」にメンバーを追加します] ダイアログを開きます。このダイアログで、次の操作を行います。

    1. [新しいメンバー] ボックスに、前のセクションでメモしたサービス アカウントのメールアドレスを入力します。 service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
    2. [ロールを選択] プルダウン リストで [Cloud KMS] をクリックし、続いて [Cloud KMS 暗号鍵の暗号化 / 復号] ロールを選択します。

    3. [保存] をクリックします。

gcloud

次のコマンドを実行します。

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING_NAME \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

このコマンドで、プレースホルダは次のように置き換えます。

  • KEY_NAME: このガイドの前のセクションで作成したキーの名前。
  • KEY_RING_NAME: このガイドの前のセクションで作成したキーリング。
  • REGION: キーリングを作成したリージョン。
  • KMS_PROJECT_ID: Cloud KMS プロジェクトの ID。
  • AI_PLATFORM_PROJECT_NUMBER: 前のセクションでサービス アカウントのメールアドレスの一部としてメモした AI Platform プロジェクトのプロジェクト番号。

KMS 鍵を使用してリソースを作成する

新しい CMEK でサポートされているリソースを作成する場合、作成パラメータの 1 つとして鍵を指定できます。

コンソール

Google Cloud コンソールの [Agent Platform] セクションで CMEK がサポートする新しいリソースを作成する場合、一般オプション セクションまたは詳細オプション セクションで鍵を選択できます。

リソース セクションの暗号鍵の選択

REST とコマンドライン

サポートされるリソースを作成するときは、リクエストに encryptionSpec オブジェクトを追加し、キーリソースを指すように encryptionSpec.kmsKeyName フィールドを設定します。

たとえば、dataset リソースを作成する場合、リクエストの本文でキーを指定します。

 {
   "displayName": DATASET_NAME,
   "metadataSchemaUri": METADATA_URI,
   "encryptionSpec": {
     "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
   }
 }

Java

サポートされているリソースを作成する場合は、EncryptionSpec で鍵リソースを指すように設定します。詳細については、Java 用 Agent Platform クライアント ライブラリのドキュメントをご覧ください。

Node.js

サポートされているリソースを作成する場合は、encryptionSpec パラメータで鍵リソースを指すように設定します。詳細については、Node.js 用 Agent Platform クライアント ライブラリのドキュメントをご覧ください。

Python

サポートされているリソースを作成する場合は、encryption_spec パラメータで鍵リソースを指すように設定します。詳しくは、Cloud AI Platform 用 Python クライアントのドキュメントをご覧ください。

リソースレス API で CMEK を使用する

Gemini Enterprise Agent Platform API の一部はリソースレス(リクエスト ベース)です。これらは、存続期間の長いトップレベルのリソースを作成せずに推論リクエストを処理します。セッションの継続やステートフルな会話などの機能をサポートするため、これらの API はユーザーデータを一定期間保存できます。たとえば、Gemini Live API はセッション再開データを最大 24 時間保存し、Interactions API はステートフルなインタラクション データを最大 7 日間保存します。データの作成時に鍵を関連付ける永続リソースがないため、サービング プロファイルを使用して、この保存データに CMEK を適用します。

サービング プロファイルは、Cloud KMS 鍵をプロジェクト、ロケーション、API スコープにリンクする Gemini Enterprise Agent Platform リソースです。リクエストのプロジェクト、ロケーション、スコープにサービング プロファイルが存在する場合、Agent Platform はそのスコープの永続データを鍵で自動的に暗号化します。推論リクエストの形式は変更されません。

サービング プロファイルのメリット

  • コンプライアンス要件を満たす: 暗号鍵とデータ ライフサイクルに対する顧客の制御を必要とする監査基準を満たします。
  • データを完全に制御: 鍵へのアクセスをいつでも無効化または取り消して、暗号化されたデータへのアクセスを遮断できます。
  • 透過的で、コードの変更は不要: 既存の推論リクエスト形式は変更されません。サービング プロファイルが存在する間、暗号化が自動的に適用されます。
  • きめ細かい制御: API スコープごとに個別のキーを適用して、キーが不正使用された場合の影響を制限し、最小権限の原則に従います。

透過的暗号化の仕組み

  1. リージョン Agent Platform エンドポイントで、サポートされているリソースレス API にリクエストを送信します。
  2. Agent Platform は、プロジェクト、ロケーション、スコープのサービング プロファイルを解決します。
  3. そのスコープの永続データは、リクエストを変更することなく、キーで自動的に暗号化されます。
  4. そのプロジェクト、ロケーション、スコープにサービング プロファイルが存在しない場合、Agent Platform はデフォルトで Google 管理の暗号化を使用します。

サービング プロファイルの制限

  • サポートされている API: Gemini Live API(スコープ GEMINI_LIVE)と Interactions API(スコープ INTERACTIONS_API)。
  • サポートされているリージョン: us と eu のマルチリージョン。グローバル リージョンは、グローバル リージョンの Cloud KMS とストレージの CMEK の制限によりサポートされていません。
  • 暗号鍵とスコープは、作成後に変更できません。更新できるのは表示名と説明のみです。鍵またはスコープを変更するには、サービング プロファイルを削除し、別の servingProfileId を使用して新しいプロファイルを作成します(CMEK を無効にしてデフォルトの暗号化に戻すをご覧ください)。

始める前に

  1. プロジェクトで Cloud KMS API と Agent Platform API を有効にします。
  2. サポートされているマルチリージョン(us または eu)で Cloud KMS 鍵を作成するか、特定します。グローバル リージョンは使用しないでください。キーリングと鍵の作成をご覧ください。
  3. Gemini Enterprise Agent Platform サービス エージェントに、鍵に対する roles/cloudkms.cryptoKeyEncrypterDecrypter ロールを付与します。Agent Platform の権限を付与するをご覧ください。
  4. サービング プロファイルを管理する IAM 権限(aiplatform.servingProfiles.create、get、list、update、delete)があることを確認します。

以降のセクションの例では、次の値を使用します。

  • LOCATION: マルチリージョン(us または eu)。
  • PROJECT: プロジェクト ID またはプロジェクト番号。
  • API_VERSION: v1 または v1beta1。
  • SERVING_PROFILE_ID: 1 ~ 63 文字(英小文字、数字、ハイフン)。先頭は英字、末尾は英字または数字にする必要があります。この値は、リソース名の最後のコンポーネントになります。
  • scope: サービング プロファイルが適用されるリソースレス API。サポートされている値は GEMINI_LIVE と INTERACTIONS_API です。
  • Cloud KMS 鍵は cmekConfig.encryptionSpec.kmsKeyName で設定され、projects/*/locations/*/keyRings/*/cryptoKeys/* と一致する必要があります。

REST リクエストはリージョン エンドポイント https://aiplatform.LOCATION.rep.googleapis.com に送信され、OAuth 2.0 署名なしトークンで認証されます。

-H "Authorization: Bearer $(gcloud auth print-access-token)"
-H "Content-Type: application/json"

サービング プロファイルを作成する

サービング プロファイルを作成すると、スコープの永続データに対して CMEK 保護が有効になります。displayName、scope(GEMINI_LIVE または INTERACTIONS_API)、cmekConfig.encryptionSpec.kmsKeyName の各フィールドは必須です。

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles?servingProfileId=SERVING_PROFILE_ID" \
  -d '{
    "displayName": "My CMEK serving profile",
    "description": "CMEK for Gemini Live",
    "scope": "GEMINI_LIVE",
    "cmekConfig": {
      "encryptionSpec": {
        "kmsKeyName": "projects/PROJECT/locations/LOCATION/keyRings/RING/cryptoKeys/KEY"
      }
    }
  }'

Create は長時間実行オペレーションを返します。レスポンスに "done": true が含まれるまで、GET https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/OPERATION_NAME でポーリングします。オペレーションが完了するまで待ってから、サービング プロファイルを取得、更新、削除します。

サービング プロファイルを確認する

作成オペレーションが完了したら、get または list を使用してサービング プロファイルを確認します。

# Get one serving profile.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID"

# List serving profiles in a location.
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles?pageSize=50"

サービング プロファイルのメタデータを更新する

更新できるのは displayName フィールドと description フィールドのみです。キーとスコープは変更できません。updateMask パラメータは省略可能です。省略すると、入力されたすべての変更可能なフィールドが更新されます。この呼び出しは、更新されたサービング プロファイルを返します。

curl -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID?updateMask=displayName,description" \
  -d '{"displayName": "Renamed profile", "description": "Updated description"}'

CMEK を無効にしてデフォルトの暗号化に戻す

サービング プロファイルを削除します。スコープの新しいデータは、Google 管理の暗号化で暗号化されます。鍵ですでに暗号化されているデータは、API の保持ポリシーに従って、TTL に達するかワイプされるまで保護されます。

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://aiplatform.LOCATION.rep.googleapis.com/API_VERSION/projects/PROJECT/locations/LOCATION/servingProfiles/SERVING_PROFILE_ID"

サービング プロファイルを削除すると、元のキーとスコープを復元できるように、その servingProfileId が 30 日間予約されます。この期間中に、別の鍵またはスコープを使用してサービング プロファイルを作成するには、別の servingProfileId を使用します。

削除したサービング プロファイルを復元する

サービング プロファイルを削除してから 30 日以内であれば、復元できます。元の Cloud KMS 鍵がまだ有効であり、Gemini Enterprise Agent Platform サービス エージェントがまだアクセスできることを確認します。次に、同じ servingProfileId、scope、キーを使用してサービング プロファイルを作成します。Agent Platform は、プロファイルが削除される前に暗号化されたデータを含め、キーを使用してスコープの永続データの保護を再開します。

キーの取り消し

Cloud KMS 鍵を無効にするか、Gemini Enterprise Agent Platform サービス エージェントのアクセス権を削除すると、次のようになります。

  • Agent Platform は、スコープの永続データを暗号化または復号できなくなります。
  • 保護されたデータへのアクセスを必要とするリクエストは、鍵が使用できないことを示す FAILED_PRECONDITION エラーで失敗します。

アクセスを再開するには、鍵を再度有効にするか、IAM 権限付与を復元します。

サービング プロファイルの料金

プロファイルのサービングに追加料金はかかりません。暗号化と復号には、標準の Cloud KMS 鍵オペレーション料金が適用されます。

トラブルシューティング

  • サービング プロファイルの作成が失敗するか、停止する: Gemini Enterprise Agent Platform サービス エージェントに鍵に対する roles/cloudkms.cryptoKeyEncrypterDecrypter ロールがあり、鍵が有効になっていて、サポートされているマルチリージョン(グローバルではなく us または eu)にあることを確認します。
  • 推論で CMEK が使用されていない: 一致するプロジェクト、ロケーション、スコープ(GEMINI_LIVE または INTERACTIONS_API)のサービング プロファイルが存在することを確認します。
  • FAILED_PRECONDITION エラー: 通常、これらのエラーは、キーが無効になったか、アクセスが取り消されたことを示します。鍵を再度有効にするか、IAM 権限付与を復元します。

次のステップ