고객 관리 암호화 키(CMEK)

기본적으로 Google Cloud는 Google에서 관리하는 암호화 키를 사용하여 자동으로 저장 데이터를 암호화합니다. 데이터를 보호하는 키와 관련된 특정 규정 준수 또는 규제 요구사항이 있으면 리소스에 고객 관리 암호화 키(CMEK)를 사용할 수 있습니다.

이 가이드의 다음 섹션에서 CMEK를 Vertex AI 리소스와 함께 사용할 때의 구체적인 이점에 대해 자세히 알아볼 수 있습니다. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud Key Management Service 문서를 참조하세요.

이 가이드에서는 Vertex AI 리소스에 CMEK를 사용할 때의 이점을 설명하고 CMEK를 사용하도록 학습 작업을 구성하는 방법을 안내합니다.

Vertex AI 리소스의 CMEK

다음 섹션에서는 작업에 CMEK를 구성하기 전에 알아야 하는 Vertex AI 리소스용 CMEK에 대한 기본 정보를 설명합니다.

CMEK의 이점

일반적으로 CMEK는 데이터를 암호화하는 데 사용되는 키를 완전히 제어해야 하는 경우에 가장 유용합니다. CMEK를 사용하면 Cloud KMS 내에서 키를 관리할 수 있습니다. 예를 들어 키를 순환 또는 사용 중지하거나 Cloud KMS API를 사용하여 순환 일정을 설정할 수 있습니다. CMEK를 사용 설정하는 시기와 이유를 포함한 일반적인 CMEK에 대한 자세한 내용은 Cloud KMS 문서를 참조하세요.

AutoML 또는 커스텀 학습 작업을 실행하면 Vertex AI에서 관리되는 하나 이상의 가상 머신(VM) 인스턴스에서 코드가 실행됩니다. Vertex AI 리소스에 CMEK를 사용 설정하면 Google에서 관리하는 키 대신 지정한 키가 이러한 VM의 부팅 디스크에 있는 데이터를 암호화하는 데 사용됩니다. CMEK 키는 다음과 같은 종류의 데이터를 암호화합니다.

  • VM의 코드 사본
  • 코드에 의해 로드되는 모든 데이터
  • 코드에 의해 로컬 디스크에 저장되는 모든 임시 데이터
  • AutoML 학습 모델
  • 미디어 데이터 세트에 업로드된 미디어 파일(데이터)

일반적으로 CMEK 키는 작업 이름 및 리전이나 데이터 세트의 표시 이름과 같은 작업과 관련된 메타데이터를 암호화하지 않습니다. 작업과 관련된 메타데이터는 항상 Google의 기본 암호화 메커니즘을 사용하여 암호화됩니다.

데이터 세트의 경우 사용자가 데이터 세트로 데이터를 가져오면 데이터 항목과 주석은 CMEK로 암호화됩니다. 데이터 세트 표시 이름은 CMEK로 암호화되지 않습니다.

모델의 경우 저장 장치(예: 디스크)에 저장된 모델은 CMEK로 암호화됩니다. 모든 모델 평가 결과는 CMEK로 암호화됩니다.

엔드포인트의 경우 엔드포인트에서 모델 배포에 사용되는 모든 모델 파일은 CMEK로 암호화됩니다. 메모리 내 데이터는 포함되지 않습니다.

일괄 예측의 경우 일괄 예측 작업을 실행하는 데 사용되는 모든 임시 파일(예: 모델 파일, 로그, VM 디스크)이 CMEK로 암호화됩니다. 일괄 예측 결과는 사용자가 제공한 대상에 저장됩니다. 따라서 Vertex AI는 대상 암호화 구성의 기본값을 따릅니다. 그렇지 않은 경우에는 결과가 CMEK로 암호화됩니다.

데이터 라벨 지정의 경우, 모든 입력 파일(이미지, 텍스트, 동영상, 테이블 형식), 임시 토론(예: 질문, 의견), 출력(라벨 지정 결과)은 CMEK로 암호화됩니다. 주석 사양 표시 이름은 CMEK로 암호화되지 않습니다.

외부 키

Cloud 외부 키 관리자(Cloud EKM)를 사용하여 Google Cloud 내에서 데이터를 암호화하기 위해 관리하는 외부 키를 만들 수 있습니다.

Cloud EKM 키를 사용하는 경우 Google은 외부 관리 키의 가용성을 제어 할 수 없습니다. 외부 관리 키로 암호화된 리소스에 대한 액세스를 요청한 다음 키를 사용할 수 없으면 Vertex AI가 요청을 거부합니다. 키를 사용할 수 있게 되면 리소스에 액세스할 수 있을 때까지 최대 10분이 지연될 수 있습니다.

외부 키 사용 시 고려사항은 Cloud 외부 키 관리자를 참조하세요.

다른 Google Cloud 제품에서 CMEK 사용

Vertex AI 리소스에 CMEK를 구성해도 Vertex AI와 함께 사용하는 다른 Google Cloud 제품에 CMEK가 자동으로 구성되지는 않습니다. CMEK를 사용하여 다른 Google Cloud 제품의 데이터를 암호화하려면 추가 구성이 필요합니다. 예를 들면 다음과 같습니다.

현재 CMEK 지원 리소스

CMEK가 적용되는 현재 Vertex AI 리소스는 다음과 같습니다. 미리보기 기능에 대한 CMEK 지원도 미리보기 상태입니다.

리소스 암호화 자료 문서 링크
데이터 세트
  • DataItemsAnnotations에 대해 사용자가 가져온 모든 데이터(예: 텍스트 콘텐츠 또는 동영상)
  • 사용자 제작 콘텐츠(예: AnnotationSpecs, ColumnSpecs)
모델
  • 업로드된 모델 파일
  • 학습된 모델의 평가 결과
엔드포인트
  • 엔드포인트에서 모델 배포에 사용되는 모든 모델 파일. 메모리 내 데이터는 포함되지 않지만 키를 사용 중지하면 모델이 자동으로 배포됩니다.
CustomJob(TPU VM을 사용하는 리소스 제외)
  • 작업을 실행하는 데 사용되는 VM의 코드 사본입니다.
  • 코드에 의해 로드되는 모든 데이터
  • 코드에 의해 로컬 디스크에 저장되는 모든 임시 데이터
HyperparameterTuningJob(TPU VM을 사용하는 리소스 제외)
  • 작업을 실행하는 데 사용되는 VM의 코드 사본입니다.
  • 코드에 의해 로드되는 모든 데이터
  • 코드에 의해 로컬 디스크에 저장되는 모든 임시 데이터
TrainingPipeline(TPU VM을 사용하는 리소스 제외)
  • 작업을 실행하는 데 사용되는 VM의 코드 사본입니다.
  • 코드에 의해 로드되는 모든 데이터
  • 코드에 의해 로컬 디스크에 저장되는 모든 임시 데이터
  • AutoML 학습 모델
BatchPredictionJob(AutoML 이미지 batchPrediction 제외)
  • 일괄 예측 작업을 진행하기 위해 작업에서 사용되는 모든 임시 파일(모델 파일, 로그, VM 디스크)입니다.
  • BatchPrediction의 쓰기 결과를 사용자가 제공한 대상에 저장하면 기본값의 암호화 구성이 적용됩니다. 그렇지 않은 경우에는 CMEK로 암호화됩니다.
ModelDeploymentMonitoringJob
  • 모델 배포 모니터링 작업을 처리하는 작업에 사용되는 모든 임시 파일입니다(예: 학습 데이터 세트 파일, 로그, VM 디스크).
  • 모니터링 이상치 감지에 사용되는 모든 데이터입니다.
  • 키가 사용 중지되면 모델 배포 모니터링 작업이 일시중지됩니다.
PipelineJob
  • 파이프라인 작업 및 모든 하위 리소스
MetadataStore
  • 메타데이터 저장소의 모든 콘텐츠
텐서보드
  • 스칼라, 히스토그램, 그래프 정의, 이미지, 텍스트를 포함한 업로드된 텐서보드 로그의 모든 데이터
Featurestore
  • featurestore 및 featurestore의 모든 콘텐츠입니다.

생성형 AI 조정 파이프라인을 위한 CMEK 지원

CMEK 지원은 다음 모델의 조정 파이프라인에 제공됩니다.

  • text-bison for PaLM 2(GPU)
  • BERT
  • T5
  • image-generation (GPU)

제한사항

다음에서는 CMEK 지원이 제공되지 않습니다.

  • AutoML 이미지 모델 일괄 예측(BatchPredictionJob)
  • TPU 조정

리소스의 CMEK 구성

다음 섹션에서는 Cloud Key Management Service에서 키링 및 키를 만들고, 키에 대한 Vertex AI 암호화 및 복호화 권한을 부여하고, CMEK를 사용하는 리소스를 만드는 방법을 설명합니다.

시작하기 전에

이 가이드에서는 Vertex AI 데이터에 대해 CMEK를 구성하기 위해 2개의 개별 Google Cloud 프로젝트를 사용한다고 가정합니다.

  • 암호화 키를 관리하기 위한 프로젝트('Cloud KMS 프로젝트'라고 함)
  • Cloud Storage에서 Vertex AI 데이터 또는 출력에 액세스하고 사용 사례에 필요한 다른 Google Cloud 제품과 상호작용하는 프로젝트('AI Platform 프로젝트'라고 함)

이 권장 설정은 업무 분리를 지원합니다.

또는 전체 가이드에 단일 Google Cloud 프로젝트를 사용할 수 있습니다. 이를 위해 Cloud Platform KMS 프로젝트를 참조하는 다음 작업과 AI Platform 프로젝트를 참조하는 작업 모두에 동일한 프로젝트를 사용합니다.

Cloud KMS 프로젝트 설정

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Cloud KMS API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Cloud KMS API.

    Enable the API

AI Platform 프로젝트 설정

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Vertex AI API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Vertex AI API.

    Enable the API

Google Cloud CLI 설정

gcloud CLI는 이 가이드의 일부 단계에 필요하며 다른 경우에는 선택 사항입니다.

Install the Google Cloud CLI, then initialize it by running the following command:

gcloud init

키링 및 키 만들기

키링과 키를 만들려면 Cloud KMS 가이드에서 대칭 키 만들기를 따르세요. 키링을 만들 때 Vertex AI 작업을 지원하는 리전키링의 위치로 지정합니다. Vertex AI 학습에서는 리소스와 키가 동일한 리전을 사용할 때만 CMEK를 지원합니다. 키링에 이중 리전, 멀티 리전 또는 전역 위치를 지정해서는 안됩니다.

Cloud KMS 프로젝트에서 키링과 키를 만들어야 합니다.

Vertex AI 권한 부여

리소스에 CMEK를 사용하려면 키를 사용하여 데이터를 암호화하고 복호화하는 권한을 Vertex AI에 부여해야 합니다. Vertex AI는 Google 관리형 서비스 에이전트를 사용하여 리소스로 작업을 실행합니다. 이 서비스 계정은 다음 형식의 이메일 주소로 식별할 수 있습니다.

service-PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com

AI Platform 프로젝트에 적합한 서비스 계정을 찾으려면 Google Cloud 콘솔의 IAM 페이지로 이동하여 AI_PLATFORM_PROJECT_NUMBER 변수를 변경하는 AI Platform 프로젝트의 프로젝트 번호와 함께 이 이메일 주소 형식과 일치하는 구성원을 찾습니다. 또한 이름이 Vertex AI Service Agent인 서비스 계정도 있습니다.

IAM 페이지로 이동

이 서비스 계정의 이메일 주소를 기록해두고 다음 단계에서 키를 사용해 데이터를 암호화 및 복호화할 수 있는 권한을 부여하는 데 이 계정을 사용합니다. Google Cloud 콘솔을 사용하거나 Google Cloud CLI를 사용하여 권한을 부여할 수 있습니다.

Google Cloud 콘솔

  1. Google Cloud 콘솔에서 보안을 클릭하고 키 관리를 선택합니다. 이렇게 하면 암호화 키 페이지로 이동하고 Cloud KMS 프로젝트가 선택됩니다.

    암호화 키 페이지로 이동

  2. 키링 세부정보 페이지로 이동하려면 본 가이드의 이전 섹션에서 만든 키링의 이름을 클릭합니다.

  3. 이 가이드의 이전 섹션에서 만든 키의 체크박스를 선택합니다. 키 이름으로 라벨이 지정된 정보 패널이 아직 열려 있지 않은 경우 정보 패널 표시를 클릭합니다.

  4. 정보 패널에서 구성원 추가를 클릭하여 'KEY_NAME'에 구성원 추가 대화상자를 엽니다. 이 대화상자에서 다음 작업을 수행합니다.

    1. 새 구성원 상자에 이전 섹션에서 기록해둔 서비스 계정 이메일 주소(service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com)를 입력합니다.
    2. 역할 선택 드롭다운 목록에서 Cloud KMS를 클릭한 다음 Cloud KMS CryptoKey Encrypter/Decrypter 역할을 선택합니다.

    3. 저장을 클릭합니다.

gcloud

다음 명령어를 실행합니다.

gcloud kms keys add-iam-policy-binding KEY_NAME \
  --keyring=KEY_RING_NAME \
  --location=REGION \
  --project=KMS_PROJECT_ID \
  --member=serviceAccount:service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com \
  --role=roles/cloudkms.cryptoKeyEncrypterDecrypter

이 명령어에서 다음 자리표시자를 바꿉니다.

  • KEY_NAME: 이 가이드의 이전 섹션에서 만든 키의 이름입니다.
  • KEY_RING_NAME: 이 가이드의 이전 섹션에서 만든 키링입니다.
  • REGION: 키링을 만든 리전입니다.
  • KMS_PROJECT_ID: Cloud KMS 프로젝트의 ID입니다.
  • AI_PLATFORM_PROJECT_NUMBER: 이전 섹션에서 서비스 계정 이메일 주소의 일부로 기록해 둔 AI Platform 프로젝트의 프로젝트 번호입니다.

KMS 키로 리소스 만들기

CMEK 지원 리소스를 만들 때 생성 매개변수 중 하나로 키를 지정할 수 있습니다.

콘솔

Google Cloud 콘솔의 Vertex AI 섹션에서 새 CMEK 지원 리소스를 만들 때 일반 또는 고급 옵션 섹션에서 키를 선택할 수 있습니다.

리소스 섹션의 암호화 키 선택

REST 및 명령줄

지원되는 리소스를 만들 때 요청에 encryptionSpec 객체를 추가하고 encryptionSpec.kmsKeyName 필드가 키 리소스를 가리키도록 설정합니다.

예를 들어 dataset 리소스를 만들 때 요청 본문에 키를 지정합니다.

 {
   "displayName": DATASET_NAME,
   "metadataSchemaUri": METADATA_URI,
   "encryptionSpec": {
     "kmsKeyName": "projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME"
   }
 }

자바

지원되는 리소스를 만들 때 EncryptionSpec이 키 리소스를 가리키도록 설정합니다. 자세한 내용은 자바용 Vertex AI 클라이언트 라이브러리 문서를 참조하세요.

Node.js

지원되는 리소스를 만들 때 encryptionSpec 매개변수가 키 리소스를 가리키도록 설정합니다. 자세한 내용은 Node.js용 Vertex AI 클라이언트 라이브러리 문서를 참조하세요.

Python

지원되는 리소스를 만들 때 encryption_spec 매개변수가 키 리소스를 가리키도록 설정합니다. 자세한 내용은 Cloud AI Platform용 Python 클라이언트 문서를 참조하세요.

다음 단계