기본적으로 Agent Assist는 저장 중인 고객 콘텐츠를 암호화합니다. Agent Assist는 개발자 측의 추가 작업 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화 라고 합니다.
암호화 키를 제어하려면 Agent Assist를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키 (CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계 를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키 (KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Agent Assist 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키 (CMEK)를 참조하세요.
보호된 데이터
지원되는 위치의 저장 대화 데이터만 CMEK로 보호할 수 있습니다.
지원되는 위치 및 기능
CMEK는 생성형 AI 기능을 비롯하여 지원되는 위치의 모든 Agent Assist 위치 및 모든 Agent Assist 기능에서 사용할 수 있습니다.
제한사항
CMEK는 Agent Assist 위치 및 스마트 답장에서 사용 중지된 기능에는 사용할 수 없습니다.
키 만들기
키를 만들려면 KMS 서비스를 사용합니다. 자세한 내용은 대칭 키 만들기를 참조하세요. 키를 만들거나 선택할 때는 다음을 구성해야 합니다.
- Agent Assist 데이터에 사용하는 위치 를 선택해야 합니다. 그렇지 않으면 요청이 실패합니다.
Agent Assist에서 CMEK 사용 설정
특정 위치에 Agent Assist 데이터를 만들기 전에 이 위치의 데이터가 고객 관리 키로 보호되는지 여부를 지정할 수 있습니다. 이때 키를 구성합니다.
기본 요건
Google Cloud CLI를 사용하여 프로젝트의 CCAI CMEK 서비스 계정을 만듭니다. 자세한 내용은 gcloud 서비스 ID 문서를 참조하세요.
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: 프로젝트 ID입니다. Google CloudLOCATION_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 CryptoKey 암호화/복호화 역할을 KMS 키에서 삭제하면 됩니다.
키가 취소된 후에는 Agent Assist에서 암호화된 데이터에 액세스할 수 없게 되며 키 권한이 복원될 때까지 서비스가 더 이상 작동 상태가 아닙니다.