고객 관리 암호화 키

기본적으로 Vertex AI Search는 저장 중인 고객 콘텐츠를 암호화합니다. Vertex AI Search는 사용자가 추가 작업을 수행할 필요 없이 자동으로 암호화를 처리합니다. 이 옵션을 Google 기본 암호화라고 합니다.

암호화 키를 제어하려면 Vertex AI Search를 포함한 CMEK 통합 서비스와 함께 Cloud KMS에서 고객 관리 암호화 키(CMEK)를 사용하면 됩니다. Cloud KMS 키를 사용하면 보호 수준, 위치, 순환 일정, 사용 및 액세스 권한, 암호화 경계를 관리할 수 있습니다. Cloud KMS를 사용하면 감사 로그를 보고 키 수명 주기를 제어할 수도 있습니다. Google에서 데이터를 보호하는 대칭 키 암호화 키(KEK)를 소유하고 관리하는 대신 사용자가 Cloud KMS에서 이러한 키를 제어하고 관리할 수 있습니다.

CMEK로 리소스를 설정한 후 Vertex AI Search 리소스에 액세스하는 환경은 Google 기본 암호화를 사용하는 것과 유사합니다. 암호화 옵션에 대한 자세한 내용은 고객 관리 암호화 키(CMEK)를 참조하세요.

Vertex AI Search의 Cloud KMS 제한사항

Vertex AI Search의 CMEK (Cloud KMS) 키에 다음 제한사항이 적용됩니다.

  • 이미 데이터 스토어에 적용된 키를 변경할 수 없습니다.
  • 키가 등록된 후에는 데이터 스토어에서 등록을 해제하거나 키를 삭제할 수 없습니다.
  • 전역 리전이 아닌 미국 또는 EU 멀티 리전 데이터 스토어와 앱을 사용해야 합니다. 전역 위치 이외 위치 사용과 관련된 제한사항을 포함한 멀티 리전과 데이터 상주에 대한 자세한 내용은 위치를 참고하세요.
  • 프로젝트에 키를 두 개 이상 등록해야 하는 경우 Google 계정팀에 문의하여 CMEK 구성 할당량 증가를 요청하고 키가 두 개 이상 필요한 이유를 설명합니다.

  • CMEK와 함께 외부 키 관리자 (EKM)를 사용하는 기능은 허용 목록에 포함된 사용자를 대상으로 정식 버전 상태입니다. CMEK와 함께 EKM을 사용하려면 Google 계정팀에 문의하세요.

    CMEK와 함께 사용하는 EKM 또는 HSM에는 다음 제한사항이 적용됩니다.

    • 암호화 및 복호화 호출을 위한 EKM 및 HSM 할당량에는 최소 1,000 QPM 헤드룸이 있어야 합니다. 할당량 확인 방법은 Cloud KMS 할당량 확인을 참조하세요.

    • EKM을 사용할 때는 키에 30초 이상의 기간 중 90% 이상 액세스할 수 있어야 합니다. 이 기간 동안 키에 액세스할 수 없으면 색인 생성 및 검색 새로고침에 부정적인 영향을 줄 수 있습니다.

    • 12시간 이상 결제 문제, 영구적인 할당량 부족 문제, 영구적인 액세스 불가능 문제가 있으면 서비스가 EKM 또는 HSM 키와 연관된 CmekConfig를 자동으로 거절합니다.

  • 키가 프로젝트에 등록되기 전에 생성된 데이터 스토어는 키로 보호될 수 없습니다.
  • 데이터 스토어가 여러 개인 앱의 경우 한 데이터 스토어가 CMEK 구성을 사용하면 다른 모든 데이터 스토어도 동일한 CMEK 구성을 사용해야 합니다.

  • 서드 파티 커넥터의 단일 리전 키에는 키 순환이 지원되지 않습니다. 서드 파티 커넥터와 연결된 데이터 스토어를 보호하는 키 버전을 사용 중지하거나 삭제하면 커넥터가 작동하지 않습니다.

  • 키 순환은 애널리틱스와 호환되지 않습니다. 데이터 스토어의 키를 순환하면 애널리틱스는 해당 데이터 스토어를 사용하는 앱에 더 이상 표시되지 않습니다.

  • 추천 앱에는 키 순환이 지원되지 않습니다. 추천 콘텐츠 앱과 연결된 데이터 스토어를 보호하는 키 버전을 사용 중지하거나 삭제하면 추천 콘텐츠 앱이 작동하지 않습니다.

  • Vertex AI Search의 경우 Enterprise 버전이 필요합니다. Enterprise 버전에 대한 자세한 내용은 고급 기능 정보를 참조하세요.

  • 퍼스트 파티 커넥터는 BigQuery 및 Cloud Storage의 '일회성 가져오기' 및 '주기적' 데이터 저장소를 제외하고 CMEK를 준수하지 않습니다.

  • 의료 검색 데이터 스토어와 서드 파티 커넥터는 CMEK를 준수합니다. 의료 데이터 스토어에 대한 일반적인 내용은 의료 검색 데이터 스토어 만들기를 참고하세요. 서드 파티 커넥터를 CMEK 규정을 준수하도록 만드는 방법에 대한 자세한 내용은 서드 파티 커넥터의 단일 리전 키 정보를 참고하세요.

  • check grounding, grounded generation, ranking RAG API에는 키가 적용되지 않습니다.

  • Terraform을 사용하여 Vertex AI Search의 CMEK를 구성할 수는 없습니다.

서드 파티 커넥터의 단일 리전 키 정보

서드 파티 커넥터를 사용하고 자체 키를 사용하여 연결된 데이터를 보호하려면 멀티 리전 키 외에 보조 단일 리전 키 3개를 만들어야 합니다. 키 생성 명령어는 다음 절차인 Cloud KMS 키 등록에 나와 있습니다.

단일 키는 다음 지역에 대해 생성해야 합니다.

멀티 리전 단일 리전
eu europe-west1 europe-west4 europe-north1
us us-east1 us-central1 us-west1

시작하기 전에

다음 기본 요건이 충족되었는지 확인합니다.

  • 멀티 리전 대칭 Cloud KMS 키를 만듭니다. Cloud KMS 문서의 키링 만들기키 만들기를 참고하세요.

    • 순환 주기를 없음 (수동 순환)으로 설정합니다.

    • 위치에서 멀티 리전을 선택하고 드롭다운에서 europe 또는 us를 선택합니다.

  • 키의 CryptoKey 암호화/복호화 IAM 역할(roles/cloudkms.cryptoKeyEncrypterDecrypter)이 검색 엔진 서비스 에이전트에 부여되었습니다. 서비스 에이전트 계정에는 service-PROJECT_NUMBER@gcp-sa-discoveryengine.iam. 형식을 사용하는 이메일 주소가 있습니다. 역할을 서비스 에이전트에 추가하는 방법에 대한 일반적인 안내는 단일 역할 부여 또는 취소를 참고하세요.

  • 키의 CryptoKey 암호화/복호화 IAM 역할(roles/cloudkms.cryptoKeyEncrypterDecrypter)이 Cloud Storage 서비스 에이전트에 부여되었습니다. 이 역할이 부여되지 않으면 검색 엔진에서 가져오기에 필요한 CMEK로 보호되는 임시 버킷과 디렉터리를 만들 수 없으므로 CMEK로 보호되는 데이터 스토어에 데이터를 가져올 수 없습니다.

  • 이 페이지의 키 등록 안내를 완료할 때까지 키로 관리하려는 데이터 스토어나 앱을 만들지 마세요.

Cloud KMS 키 등록

CMEK를 사용하여 데이터를 암호화하려면 멀티 리전 키를 등록해야 합니다. 선택사항으로, 서드 파티 커넥터를 사용하는 경우와 같이 데이터에 단일 리전 키가 필요한 경우 단일 리전 키를 등록해야 합니다.

시작하기 전에

다음 사항이 마련되어 있는지 확인하세요.

  • 리전이 아직 키로 보호되지 않습니다. REST 명령어를 통해 리전에 키가 이미 등록된 경우 아래 절차가 실패합니다. 위치에 대해 Vertex AI Search에 활성 키가 있는지 확인하려면 Cloud KMS 키 보기를 참고하세요.

  • 검색 엔진 관리자(roles/discoveryengine.admin) 역할이 있습니다.

절차

REST

Vertex AI Search에 자체 키를 등록하려면 다음 단계를 따르세요.

  1. 등록하려는 키를 사용하여 UpdateCmekConfig 메서드를 호출합니다.

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d '{"kmsKey":"projects/KMS_PROJECT_ID/locations/KMS_LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME"}' \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID?set_default=SET_DEFAULT"
    

    다음을 바꿉니다.

    • KMS_PROJECT_ID: 키가 포함된 프로젝트의 ID입니다. 프로젝트 번호는 작동하지 않습니다.
    • KMS_LOCATION: 키의 멀티 리전입니다(us 또는 europe).
    • KEY_RING: 키가 저장된 키링의 이름입니다.
    • KEY_NAME: 키의 이름입니다.
    • PROJECT_ID: 데이터 스토어가 포함된 프로젝트의 ID입니다.
    • LOCATION: 데이터 스토어의 멀티 리전입니다(us 또는 eu).
    • CMEK_CONFIG_ID: CmekConfig 리소스의 고유 ID를 설정합니다(예: default_cmek_config).
    • SET_DEFAULT: 키를 멀티 리전에서 이후에 생성된 데이터 스토어의 기본 키로 사용하려면 true로 설정합니다.
  2. 선택사항: 메서드에서 반환된 name 값을 기록하고 장기 실행 작업에 대한 세부정보 가져오기의 안내에 따라 작업이 완료된 시점을 확인합니다.

    일반적으로 키를 등록하는 데 몇 분 정도 걸립니다.

    작업이 완료되면 해당 멀티 리전의 새 데이터 스토어가 키로 보호됩니다. 데이터 스토어를 만드는 방법에 대한 일반적인 내용은 앱 및 데이터 스토어 정보를 참고하세요.

콘솔

절차

Vertex AI Search에 자체 키를 등록하려면 다음 단계를 따르세요.

  1. Google Cloud 콘솔에서 AI 애플리케이션 페이지로 이동합니다.

    AI Applications

  2. 설정을 클릭하고 CMEK 탭을 선택합니다.

  3. us 또는 eu 위치의 경우 키 추가를 클릭합니다.

    위치의 키 추가를 클릭합니다.
    키 추가를 클릭합니다.
    1. Cloud KMS 키 선택 드롭다운을 클릭하고 키를 선택합니다.

      • 키가 다른 프로젝트에 있는 경우 프로젝트 전환을 클릭하고 프로젝트 이름을 클릭한 후 생성한 키의 이름을 입력하고 키를 선택합니다.

      • 키의 리소스 이름을 알고 있는 경우 수동으로 입력을 클릭하고 키 리소스 이름을 붙여넣은 후 저장을 클릭합니다.

    2. 확인 > 저장을 클릭합니다.

이렇게 하면 키가 등록되어 default_cmek_config라는 CmekResource가 생성됩니다.

처리된 데이터가 검색 결과에 표시되는 데는 몇 시간이 걸릴 수 있습니다.

Cloud KMS 키 보기

Vertex AI Search에 등록된 키를 보려면 다음 중 하나를 수행합니다.

  • CmekConfig 리소스 이름이 있으면 GetCmekConfig 메서드를 호출합니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    다음을 바꿉니다.

    • LOCATION: 데이터 스토어의 멀티 리전입니다(us 또는 eu).
    • PROJECT_ID: 데이터가 포함된 프로젝트의 ID입니다.
    • CMEK_CONFIG_ID: CmekConfig 리소스의 ID입니다. 콘솔을 사용하여 키를 등록한 경우 ID는 default_cmek_config입니다.

    curl 호출 및 응답 예시는 다음과 같습니다.

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
    
    { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true }

  • CmekConfig 리소스 이름이 없으면 ListCmekConfigs 메서드를 호출합니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs"
    

    다음을 바꿉니다.

    • LOCATION: 데이터 스토어의 멀티 리전입니다(us 또는 eu).
    • PROJECT_ID: 데이터가 포함된 프로젝트의 ID입니다.

    curl 호출 및 응답 예시는 다음과 같습니다.

    $ curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs"
    
    { "cmek_configs": [ { "name": "projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config", "kmsKey": "projects/key-project-456/locations/us/keyRings/my-key-ring/cryptoKeys/my-key" "state": "ACTIVE" "isDefault": true } ] }

Cloud KMS 키 등록 해제

Vertex AI Search에서 키를 등록 해제하려면 다음 단계를 따르세요.

  1. 등록 해제하려는 CmekConfig 리소스 이름으로 DeleteCmekConfig 메서드를 호출합니다.

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/cmekConfigs/CMEK_CONFIG_ID"
    

    다음을 바꿉니다.

    • LOCATION: 데이터 스토어의 멀티 리전입니다(us 또는 eu).
    • PROJECT_ID: 데이터 스토어가 포함된 프로젝트의 ID입니다.
    • CMEK_CONFIG_ID: CmekConfig 리소스의 ID입니다. 콘솔을 사용하여 키를 등록한 경우 ID는 default_cmek_config입니다.

    curl 호출 및 응답 예시는 다음과 같습니다.

    $ curl -X DELETE
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/cmekConfigs/default_cmek_config"
     
    {
     "name": "projects/my-ai-app-project-123/locations/us/operations/delete-cmek-config-56789",
     "metadata": {
      "@type": "type.googleapis.com/google.cloud.discoveryengine.v1.DeleteCmekConfigMetadata"
     }
    }
    

  2. 선택사항: 메서드에서 반환된 name 값을 기록하고 장기 실행 작업에 대한 세부정보 가져오기의 안내에 따라 작업이 완료된 시점을 확인합니다.

    일반적으로 키를 삭제하는 데 몇 분 정도 걸립니다.

데이터 스토어가 키로 보호되는지 확인

키가 등록된 후에 생성된 데이터 스토어는 키로 보호됩니다. 특정 데이터 스토어가 키로 보호되는지 확인하려면 다음 단계를 수행합니다.

  1. 데이터 스토어에서 다음 curl 명령어를 실행합니다.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -H "x-goog-user-project: PROJECT_ID" \
    "https://LOCATION-discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/collections/default_collection/dataStores/DATA_STORE_ID"
    

    다음을 바꿉니다.

    • LOCATION: 데이터 스토어의 멀티 리전입니다(us 또는 eu).
    • PROJECT_ID: 데이터 스토어가 포함된 프로젝트의 ID입니다.
    • DATA_STORE_ID: 데이터 스토어의 ID입니다.

    curl 호출 예시는 다음과 같습니다.

    curl -X GET
    -H "Authorization: Bearer $(gcloud auth print-access-token)"
    -H "Content-Type: application/json"
    -H "x-goog-user-project: my-ai-app-project-123"
    "https://us-discoveryengine.googleapis.com/v1/projects/my-ai-app-project-123/locations/us/collections/default_collection/dataStores/my-data-store-1"
    

  2. 명령어의 출력을 검토합니다. cmekConfig 필드가 출력에 있고 kmsKey 필드에 등록한 키가 표시되면 데이터 스토어가 키로 보호됩니다.

    응답 예시는 다음과 같습니다.

    {
     "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1",
     "displayName": "my-data-store-1",
     "industryVertical": "GENERIC",
     "createTime": "2023-09-05T21:20:21.520552Z",
     "solutionTypes": [
       "SOLUTION_TYPE_SEARCH"
     ],
     "defaultSchemaId": "default_schema",
     "cmekConfig": {
       "name": "projects/969795412903/locations/us/collections/default_collection/dataStores/my-data-store-1/cmekConfigs/default_cmek_config",
       "kmsKey": "projects/my-ai-app-project-123/locations/us/keyRings/my-key-ring/cryptoKeys/my-key"
     }
    }
    

Cloud KMS 키로 보호되는 기타 데이터

데이터 스토어의 데이터 외에도 키는 후속 질문을 통한 검색 중에 생성된 세션 데이터와 같이 Vertex AI Search에서 보유한 다른 유형의 앱 소유 핵심 정보를 보호할 수 있습니다. 이러한 종류의 핵심 정보는 앱과 연결된 데이터 스토어가 CMEK로 보호되는 경우 CMEK로 보호됩니다.

세션이 보호되는지 확인하는 특정 명령어를 실행할 수는 없지만 데이터 스토어가 키로 보호되는지 확인 명령어를 실행하고 cmekConfig 리소스에 키가 표시되면 세션 데이터가 보호되는 것입니다.

Cloud KMS 키 순환

키를 순환하면 새 버전의 키가 생성되고 새 버전이 기본 버전으로 설정됩니다. 키의 원래 버전을 사용 설정한 상태로 잠시 두었다가 사용 중지합니다. 이렇게 하면 이전 키를 사용하고 있을 수 있는 장기 실행 작업이 완료될 수 있습니다.

다음 절차에서는 Vertex AI Search 데이터 스토어의 키를 순환하는 단계를 간략히 설명합니다. 키 순환에 대한 일반적인 내용은 Cloud KMS 가이드의 키 순환을 참고하세요.

중요: 추천 앱이나 분석이 필요한 앱과 연결된 데이터 스토어의 키를 순환하지 마세요. 서드 파티 커넥터에 사용되는 단일 리전 키도 순환하지 마세요. Vertex AI Search의 Cloud KMS 제한사항을 참고하세요.

  1. 키를 다시 등록합니다. Cloud KMS 키 등록의 1단계를 반복하여 이 작업을 수행합니다.

  2. Cloud KMS 가이드의 키 관리 섹션에 있는 안내를 참조하여 다음을 수행합니다.

    1. 새 키 버전을 만들고 사용 설정하여 기본 키 버전으로 지정합니다.

    2. 이전 키 버전을 사용 설정한 상태로 둡니다.

    3. 1주일 정도 지난 후 이전 키 버전을 사용 중지하고 모든 사항이 이전과 같이 작동하는지 확인합니다.

    4. 나중에 이전 키 버전 사용 중지로 인한 문제가 발생하지 않았다고 확신하면 이전 키 버전을 삭제할 수 있습니다.

Cloud KMS 키가 사용 중지되거나 취소된 경우

키가 사용 중지되거나 키에 대한 권한이 취소되면 데이터 스토어는 데이터 수집을 중지하고 15분 이내에 데이터 제공을 중지합니다. 하지만 키를 다시 사용 설정하거나 권한을 복원하는 데 시간이 오래 걸립니다. 데이터 스토어에서 데이터 제공을 재개하는 데 최대 24시간이 걸릴 수 있습니다.

따라서 필요한 경우가 아니라면 키를 사용 중지하지 마세요. 데이터 스토어에서 키를 사용 중지 및 사용 설정하는 작업은 시간이 오래 걸립니다. 예를 들어 키를 반복적으로 사용 중지하고 사용 설정하면 데이터 스토어가 보호되는 데 시간이 오래 걸립니다. 키를 사용 중지한 후 즉시 다시 사용 설정하면 키가 먼저 데이터 스토어에서 사용 중지된 후 다시 사용 설정되므로 며칠 동안 다운타임이 발생할 수 있습니다.