워크로드 운영자는 Confidential Space 워크로드 VM에 옵션을 전달하여 실행 전에 동작을 확인할 수 있습니다. 일부 플래그에는 변경되지 않는 필수 값이 있지만 다음과 같은 선택을 해야 합니다.
AMD SEV 또는 Intel TDX 컨피덴셜 컴퓨팅 기술을 사용할지 여부입니다.
전달해야 하는 VM 메타데이터 변수. 여기에는 실행할 워크로드 컨테이너 이미지, Cloud Logging에 로깅할지 여부, 설정할 환경 변수와 같은 세부정보가 포함됩니다.
워크로드를 실행하기 위해 VM에 연결할 서비스 계정과 다른 프로젝트의 기밀 데이터에 액세스하고 결과를 어딘가에 작성하는 데 필요한 권한
VM 인스턴스가 실행되어야 하는 영역입니다.
다음은 최신 프로덕션 Confidential Space 이미지를 기반으로 us-west1-b
영역에 컨피덴셜 VM을 만들고 WORKLOAD_CONTAINER_NAME라는 Docker 컨테이너를 실행하는 예시입니다.
gcloud compute instances create workload-vm-name \
--confidential-compute-type=CONFIDENTIAL_COMPUTING_TECHNOLOGY \
--machine-type=MACHINE_TYPE_NAME \
--maintenance-policy=MAINTENANCE_POLICY \
--shielded-secure-boot \
--image-project=confidential-space-images \
--image-family=IMAGE_FAMILY \
--metadata="^~^tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest" \
--service-account=WORKLOAD_SERVICE_ACCOUNT_NAME@WORKLOAD_OPERATOR_PROJECT_ID.iam.gserviceaccount.com \
--scopes=cloud-platform \
--zone=us-west1-b
이 예시에 사용된 옵션에 대해서는 다음 표에서 자세히 설명합니다.
플래그 | 설명 |
---|---|
--confidential-compute-type |
필수 항목입니다. Compute Engine에 컨피덴셜 VM 인스턴스를 만들 때 사용할 컨피덴셜 컴퓨팅 기술을 지정합니다.
컨피덴셜 컴퓨팅 기술은 선택한 이미지 계열과 일치해야 합니다. |
--machine-type |
(선택사항) 컨피덴셜 VM 머신 유형 이름을 지정합니다. AMD SEV 및 Intel TDX(미리보기)를 지원하는 머신 유형은 지원되는 구성을 참고하세요. |
--maintenance-policy |
SEV를 사용하는 N2D 머신 유형의 경우 라이브 마이그레이션 지원을 위해 이 값을 MIGRATE 로 설정합니다. 다른 모든 머신 유형의 경우
라이브 마이그레이션을 지원하지 않으므로 이 값을 TERMINATE 로 설정합니다.
|
--shielded-secure-boot |
필수 항목입니다. Compute Engine이 인스턴스에 대해 보안 부팅을 사용하도록 지정합니다. |
--image-project=confidential-space-images |
필수 항목입니다. Compute Engine이 confidential-space-images 프로젝트에서
Confidential Space 이미지를 찾도록 지정합니다.
|
|
필수 항목입니다. Compute Engine이
기밀 데이터를 처리하는 최종 워크로드에 프로덕션 이미지를 사용하려면
모니터링 및 디버깅에 디버그 이미지를 사용하려면
사용하는 이미지 계열은 선택한 기밀 컴퓨팅 기술과 일치해야 합니다. |
--metadata |
필수 항목입니다. 변수를 전달하여 Confidential Space VM 동작을 변경합니다. 사용 가능한 키/값 쌍은 메타데이터 변수를 참고하세요. |
--service-account |
(선택사항) 워크로드를 실행하는 VM 인스턴스에 연결되고 다른 프로젝트의 워크로드 ID 풀에 연결된 서비스 계정을 명의 도용하는 서비스 계정입니다. 지정하지 않으면 기본 Compute Engine 서비스 계정이 사용됩니다. |
--scopes=cloud-platform |
필수 항목입니다.
액세스 범위를 설정합니다.
cloud-platform 범위는
대부분의 Google Cloud 서비스에 대한 OAuth 범위이며, VM이 증명 확인자와 커뮤니케이션할 수 있습니다.
|
--zone |
필수 항목입니다. VM 인스턴스가 실행되는 영역입니다. Confidential Space에는 특정 위치에서 제공되는 다음 서비스가 필요합니다. |
연결된 서비스 계정
워크로드를 실행하려면 서비스 계정을 워크로드의 컨피덴셜 VM에 연결해야 합니다. 서비스 계정은 다음과 같이 설정해야 합니다.
다음 역할이 필요합니다.
roles/confidentialcomputing.workloadUser
를 호출하여 증명 토큰을 생성합니다.roles/artifactregistry.reader
를 사용하여 Artifact Registry에 저장된 워크로드 컨테이너 이미지를 가져옵니다.STDOUT
및STDERR
를 Cloud Logging으로 리디렉션하려면roles/logging.logWriter
를 사용합니다.
데이터 공동작업자가 기밀 데이터를 저장하는 위치(예: Cloud Storage 버킷 또는 BigQuery 테이블)에 대한 읽기 액세스 권한이 있습니다.
워크로드가 데이터를 출력해야 하는 위치(예: Cloud Storage 버킷)에 대한 쓰기 액세스 권한 데이터 공동작업자에게는 이 위치에 대한 읽기 액세스 권한이 있어야 합니다.
또한 데이터 공동작업자와 워크로드 운영자는 다음을 설정해야 합니다.
데이터 공동작업자는 서비스 계정을 워크로드 ID 풀 제공업체에 속성 조건으로 추가해야 합니다.
'WORKLOAD_SERVICE_ACCOUNT_NAME@DATA_COLLABORATOR_PROJECT_ID.iam.gserviceaccount.com' in assertion.google_service_accounts
워크로드 운영자가 서비스 계정을 가장하려면
roles/iam.serviceAccountUser
역할이 필요합니다. 이렇게 하면 워크로드 VM에 연결하여 워크로드를 실행할 수 있습니다.
메타데이터 변수
VM을 만들 때 --metadata
옵션에 변수를 전달하여 Confidential Space 워크로드 VM 동작을 변경할 수 있습니다.
여러 변수를 전달하려면 먼저 --metadata
값에 ^~^
프리픽스를 지정하여 구분 기호를 설정합니다. 그러면 ,
가 변수 값에 사용되기 때문에 구분 기호가 ~
로 설정됩니다.
예를 들면 다음과 같습니다.
metadata="^~^tee-restart-policy=Always~tee-image-reference=us-docker.pkg.dev/WORKLOAD_AUTHOR_PROJECT_ID/REPOSITORY_NAME/WORKLOAD_CONTAINER_NAME:latest"
다음 표에는 워크로드 VM에 설정할 수 있는 메타데이터 변수가 자세히 나와 있습니다.
메타데이터 키 | 유형 | 설명 및 값 |
---|---|---|
다음과 상호작용:
|
문자열 |
필수 항목입니다. 워크로드 컨테이너의 위치를 가리킵니다. 예시
|
다음과 상호작용:
|
JSON 문자열 배열 |
워크로드 컨테이너의 예시
|
다음과 상호작용:
|
정의된 문자열 |
confidential-space-launcher 필드 아래에서 워크로드 컨테이너의 유효한 값은 다음과 같습니다.
직렬 콘솔의 로그 양이 많으면 워크로드 성능에 영향을 줄 수 있습니다. 예시
|
|
정수 |
예시
|
다음과 상호작용:
|
문자열 |
워크로드 컨테이너에서 환경 변수를 설정합니다. 워크로드 작성자는
예시
|
다음과 상호작용:
|
문자열 |
워크로드 운영자가 가장할 수 있는 서비스 계정 목록입니다. 워크로드 운영자가 서비스 계정을 가장하도록 허용해야 합니다. 쉼표로 구분하여 여러 서비스 계정을 나열할 수 있습니다. 예시
|
다음과 상호작용:
|
불리언 |
기본값은 예시
|
다음과 상호작용:
|
문자열 |
세미콜론으로 구분된 마운트 정의 목록입니다. 마운트 정의는 쉼표로 구분된 키-값 쌍 목록으로 구성되며 예시
|
다음과 상호작용:
|
정의된 문자열 |
워크로드가 중지될 때 컨테이너 런처의 다시 시작 정책 유효한 값은 다음과 같습니다.
이 변수는 프로덕션 Confidential Space 이미지에서만 지원됩니다. 예시
|
다음과 상호작용:
|
문자열 |
Sigstore Cosign에서 생성된 서명을 저장하는 쉼표로 구분된 컨테이너 저장소 목록입니다. 예시
|
확장
프로덕션 Confidential Space 워크로드의 확장 및 고가용성은 관리형 인스턴스 그룹을 참고하세요.