기본적으로 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 제품의 데이터를 암호화하려면 추가 구성이 필요합니다. 예를 들면 다음과 같습니다.
Cloud Storage: 커스텀 학습을 수행하면 Vertex AI는 일반적으로 Cloud Storage에서 데이터를 로드합니다. Python 학습 애플리케이션과 사전 빌드된 컨테이너를 학습에 사용하면 Vertex AI도 Cloud Storage 버킷에서 코드를 로드합니다. 또한 일부 학습 작업은 학습된 모델 아티팩트(예: TensorFlow SaveModel 디렉터리)를 출력의 일부로 Cloud Storage 버킷으로 내보냅니다.
Cloud Storage의 데이터가 CMEK로 암호화되도록 하려면 고객 관리 암호화 키 사용에 대한 Cloud Storage 가이드를 참조하세요. 암호화 키를 Vertex AI에 사용하는 Cloud Storage 버킷의 기본 키로 설정하거나 특정 객체를 암호화하는 데 사용할 수 있습니다.
Artifact Registry: 학습에 커스텀 컨테이너를 사용하면 Artifact Registry에서 컨테이너 이미지를 로드하도록 Vertex AI를 구성할 수 있습니다.
컨테이너 이미지를 CMEK로 암호화하려면 CMEK에 대한 Artifact Registry 가이드를 참조하세요.
Cloud Logging: 학습 작업을 실행하면 Vertex AI가 로그를 Logging에 저장합니다. CMEK를 사용하여 이러한 로그를 암호화하려면 Cloud Logging용 CMEK 구성을 참조하세요.
현재 CMEK 지원 리소스
CMEK가 적용되는 현재 Vertex AI 리소스는 다음과 같습니다. 미리보기 기능에 대한 CMEK 지원도 미리보기 상태입니다.
리소스 | 암호화 자료 | 문서 링크 |
---|---|---|
데이터 세트 |
|
|
모델 |
|
|
엔드포인트 |
|
|
CustomJob(TPU VM을 사용하는 리소스 제외) |
|
|
HyperparameterTuningJob(TPU VM을 사용하는 리소스 제외) |
|
|
TrainingPipeline(TPU VM을 사용하는 리소스 제외) |
|
|
BatchPredictionJob(AutoML 이미지 batchPrediction 제외) |
|
|
ModelDeploymentMonitoringJob |
|
|
PipelineJob |
|
|
MetadataStore |
|
|
텐서보드 |
|
|
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 프로젝트 설정
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud KMS API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Cloud KMS API.
AI Platform 프로젝트 설정
- Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI 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
인 서비스 계정도 있습니다.
이 서비스 계정의 이메일 주소를 기록해두고 다음 단계에서 키를 사용해 데이터를 암호화 및 복호화할 수 있는 권한을 부여하는 데 이 계정을 사용합니다. Google Cloud 콘솔을 사용하거나 Google Cloud CLI를 사용하여 권한을 부여할 수 있습니다.
Google Cloud 콘솔
Google Cloud 콘솔에서 보안을 클릭하고 키 관리를 선택합니다. 이렇게 하면 암호화 키 페이지로 이동하고 Cloud KMS 프로젝트가 선택됩니다.
키링 세부정보 페이지로 이동하려면 본 가이드의 이전 섹션에서 만든 키링의 이름을 클릭합니다.
이 가이드의 이전 섹션에서 만든 키의 체크박스를 선택합니다. 키 이름으로 라벨이 지정된 정보 패널이 아직 열려 있지 않은 경우 정보 패널 표시를 클릭합니다.
정보 패널에서
구성원 추가를 클릭하여 'KEY_NAME'에 구성원 추가 대화상자를 엽니다. 이 대화상자에서 다음 작업을 수행합니다.- 새 구성원 상자에 이전 섹션에서 기록해둔 서비스 계정 이메일 주소(
service-AI_PLATFORM_PROJECT_NUMBER@gcp-sa-aiplatform.iam.gserviceaccount.com
)를 입력합니다. 역할 선택 드롭다운 목록에서 Cloud KMS를 클릭한 다음 Cloud KMS CryptoKey Encrypter/Decrypter 역할을 선택합니다.
저장을 클릭합니다.
- 새 구성원 상자에 이전 섹션에서 기록해둔 서비스 계정 이메일 주소(
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 클라이언트 문서를 참조하세요.
다음 단계
- Google Cloud의 CMEK 자세히 알아보기
- 다른 Google Cloud 제품에서 CMEK를 사용하는 방법 알아보기