고객 관리 암호화 키(CMEK)

기본적으로 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 데이터를 만들기 전에 이 위치의 데이터가 고객 관리 키로 보호되는지 여부를 지정할 수 있습니다. 이때 키를 구성합니다.

기본 요건

  1. 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
  2. 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 위치의 키 구성

  1. InitializeEncryptionSpec API를 사용하여 키를 구성합니다.

    다음 변수를 제공해야 합니다.

    • PROJECT_ID: 프로젝트 ID입니다. Google Cloud
    • 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"
    }
  2. 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에서 암호화된 데이터에 액세스할 수 없게 되며 키 권한이 복원될 때까지 서비스가 더 이상 작동 상태가 아닙니다.