デフォルトでは、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 で保護できるのは、サポートされているロケーションの保存中の会話データのみです。
サポートされているロケーション
CMEK は、global
と eu
を除くすべての Agent Assist ロケーションで使用できます。詳細については、Agent Assist の地域別ページもご覧ください。
制限事項
CMEK は、Agent Assist のロケーションでサポートされているすべての機能(以下を含む)でも使用できます。
キーの作成
鍵を作成するには、KMS サービスを使用します。手順については、対称鍵の作成をご覧ください。鍵を作成または選択するときは、次のように構成する必要があります。
- Agent Assist データに使用するロケーションを選択する必要があります。そうしないと、リクエストが失敗します。
Agent Assist で CMEK を有効にする
特定のロケーションにエージェント アシスト データを作成する前に、このロケーションのデータを顧客管理の暗号鍵で保護するかどうかを指定できます。この時点でキーを構成します。
前提条件
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 暗号鍵の暗号化 / 復号のロールを付与して、サービスが鍵を使用して暗号化および復号するための権限を付与されている状態にします。
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 鍵のバージョンを無効にするか、KMS 鍵からサービス アカウントの Cloud KMS CryptoKey の暗号化/復号ロールを削除します。
鍵が取り消されると、暗号化されたデータに Agent Assist からアクセスできなくなり、鍵の権限が復元されるまでサービスは動作状態になりません。