デフォルトでは、Agent Assist は保存状態のお客様コンテンツを 暗号化します。Agent Assist では、ユーザーが追加で操作を行わなくても、暗号化が行われます。このオプションは、Google のデフォルトの暗号化と呼ばれます。
暗号鍵を管理する場合は、Cloud KMS の顧客管理の暗号鍵(CMEK)を、Agent Assist を含む CMEK 統合サービスで使用できます。Cloud KMS 鍵を使用すると、保護 レベル、ロケーション、ローテーション スケジュール、使用とアクセスの権限、暗号境界を制御できます。 Cloud KMS を使用すると、監査ログを表示し、鍵のライフサイクルを管理することもできます。データを保護する対称鍵暗号鍵(KEK)は Google が所有して管理するのではなく、ユーザーが Cloud KMS でこれらの鍵の制御と管理を行います。
CMEK を使用してリソースを設定した後は、 Agent Assist リソースへのアクセスは、Google のデフォルトの暗号化を使用する場合と同様です。 暗号化 オプションの詳細については、顧客管理の暗号鍵(CMEK)をご覧ください。
保護対象データ
CMEK で保護できるのは、サポートされているロケーションの会話データ at-rest のみです。
サポートされているロケーションと機能
CMEK は、サポートされているロケーションのすべての Agent Assist ロケーション とすべての Agent Assist 機能(生成 AI 機能を含む)で使用できます。
制限事項
CMEK は、Agent Assist ロケーションとスマート リプライで無効になっている機能では使用できません。
キーの作成
鍵を作成するには、KMS サービスを使用します。手順については、対称鍵の作成をご覧ください。鍵を作成または選択するときは、次のように構成する必要があります。
- Agent Assist データに使用する ロケーション を選択する必要があります。そうしないと、リクエストが失敗します。
Agent Assist で CMEK を有効にする
特定のロケーションに Agent Assist データを作成する前に、このロケーションのデータを顧客管理の鍵で保護するかどうかを指定できます。このときに鍵を構成します。
前提条件
Google Cloud CLI を使用して、プロジェクトの CCAI CMEK サービス アカウントを作成します。詳細については、 gcloud services identity のドキュメントをご覧ください。
gcloud beta services identity create --service=dialogflow.googleapis.com --project=PROJECT_ID
サービス アカウントが作成されます。作成レスポンスでは返されませんが、次の形式になります。
service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com
CCAI CMEK サービス アカウントに Cloud KMS CryptoKey 暗号化/復号 のロールを付与して、サービスが鍵を使用して暗号化および復号するための権限を付与されている状態にします。
gcloud kms keys add-iam-policy-binding KMS_KEY_ID \ --project=PROJECT_ID \ --location=LOCATION_ID \ --keyring=KMS_KEY_RING \ --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-ccai-cmek.iam.gserviceaccount.com \ --role=roles/cloudkms.cryptoKeyEncrypterDecrypter
Agent Assist ロケーションの鍵を構成する
InitializeEncryptionSpec API を使用して鍵を構成します。
次の変数を指定する必要があります。
PROJECT_ID: 実際の Google Cloud プロジェクト ID。LOCATION_ID: Agent Assist で CMEK を有効にするために選択したロケーション。KMS_KEY_RING: KMS 鍵が作成された鍵リング。(鍵リング内のロケーション(projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RINGなど)は、CMEK を有効にするロケーションと一致する必要があります)。KMS_KEY_ID: 選択したロケーションの Agent Assist データの暗号化と復号に使用される KMS 鍵の名前。
次に例を示します。
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d "{ encryption_spec: { kms_key: 'projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING/cryptoKeys/KMS_KEY_ID' } }" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec:initialize"
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID" }
GetOperation API を使用して、長時間実行オペレーションの結果を確認します。
次に例を示します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/operations/OPERATION_ID"
CMEK の設定を確認する
GetEncryptionSpec API を使用して、ロケーションに構成されている暗号鍵を確認します。
次に例を示します。
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://LOCATION_ID-dialogflow.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION_ID/encryptionSpec"
鍵を取り消す
鍵への Agent Assist アクセスを取り消すには、KMS 鍵のバージョンを無効にするか、サービス アカウントのCloud KMS 暗号鍵の暗号化/復号ロールを KMS 鍵から削除します。
鍵を取り消すと、暗号化されたデータに Agent Assist からアクセスできなくなり、鍵の権限が復元されるまでサービスは動作しなくなります。