기본적으로 Dialogflow CX는 저장 중인 고객 콘텐츠를 암호화합니다. Dialogflow CX는 사용자의 추가 작업 없이 암호화를 처리합니다. 이 옵션을 Google 기본 암호화 라고 합니다. Google 기본 암호화는 Google이 자체 암호화된 데이터에 사용하는 것과 동일한 강화된 키 관리 시스템을 사용합니다. 이러한 시스템에는 엄격한 키 액세스 제어 및 감사가 포함됩니다.
암호화 키를 제어하려면 Dialogflow CX를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키 (CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계 를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키 (KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.
CMEK로 리소스를 설정한 후 Dialogflow CX 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 비슷합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키 (CMEK)를 참조하세요.
보호된 데이터
CMEK를 사용하여 모든 Dialogflow CX 에이전트 저장 데이터를 보호할 수 있습니다.
제한사항
- 키 순환은 지원되지만 데이터 재암호화는 지원되지 않습니다. 즉, 이전에 암호화된 데이터를 새 키 버전으로 다시 암호화하는 것은 지원되지 않습니다.
- 다음
리전은
지원되지 않습니다.
global
- 프로젝트 위치당 하나의 키를 사용해야 합니다.
- CMEK가 사용 설정된 에이전트를 복원하려면 Cloud Storage 옵션을 선택해야 합니다.
- CMEK가 통합되지 않은 프로젝트의 기존 리소스는 소급하여 통합된 CMEK일 수 없습니다. 대신 리소스를 내보내고 CMEK용 새 프로젝트에서 복원하는 것이 좋습니다.
- Vertex AI Agent Builder에는 몇 가지 Cloud KMS 제한사항이 있습니다.
키 만들기
키를 만들려면 KMS 서비스를 사용합니다. 자세한 내용은 대칭 키 만들기를 참조하세요. 키를 만들거나 선택할 때는 다음을 구성해야 합니다.
- 에이전트에 사용하는 위치 를 선택해야 합니다. 그렇지 않으면 요청이 실패합니다.
에이전트에서 키를 사용하도록 구성
에이전트를 만들 때 에이전트 위치와 에이전트가 해당 위치에 Google 관리 키 또는 이미 구성된 고객 관리 키를 사용할지 여부를 지정할 수 있습니다. 이때 선택합니다.
기본 요건
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
Dialogflow CX 위치의 키 구성
InitializeEncryptionSpecAPI를 사용하여 키를 구성합니다.다음 변수를 제공해야 합니다.
PROJECT_ID: 프로젝트 ID입니다. Google CloudLOCATION_ID: Dialogflow CX에서 CMEK를 사용 설정하기 위해 선택한 위치입니다.KMS_KEY_RING: KMS 키가 생성된 키링입니다. (키링의 위치(예:projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KMS_KEY_RING)는 CMEK를 사용 설정하는 위치와 일치해야 합니다.)KMS_KEY_ID: 선택한 위치에서 Dialogflow CX 데이터를 암호화하고 복호화하는 데 사용되는 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" }
GetOperationAPI를 사용하여 장기 실행 작업 결과를 확인합니다.예를 들면 다음과 같습니다.
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"
키 취소
키에 대한 Dialogflow CX 액세스 권한을 취소하려면 KMS 키 버전을 사용 중지하거나 KMS 키에서 서비스 계정의 Cloud KMS CryptoKey 암호화/복호화 역할을 삭제하면 됩니다.
키가 취소된 후에는 Dialogflow CX에서 암호화된 데이터에 액세스할 수 없게 되며 키 권한이 복원될 때까지 서비스가 더 이상 작동 상태가 아닙니다.