교차 프로젝트 서비스 계정 사용
이 문서에서는 TPU VM을 만들 때 교차 프로젝트 서비스 계정을 사용하는 방법을 설명합니다. 교차 프로젝트 서비스 계정은 TPU VM과 다른 프로젝트에 있는 서비스 계정입니다.
이 안내에는 공유 VPC 또는 VPC 서비스 제어에 대한 고려사항이 포함되어 있지 않습니다. 이러한 기능을 사용하려면 추가 구성 또는 권한이 필요할 수 있습니다. 자세한 내용은 공유 VPC 네트워크 만들기 및 수정 및 VPC 서비스 제어 개요를 참조하세요.
시작하기 전에
- Google Cloud 프로젝트 두 개를 만듭니다. 하나에는 TPU VM이 있고(
TPU_PROJECT) 다른 하나에는 서비스 계정이 있습니다(SERVICE_PROJECT). 자세한 내용은 프로젝트 만들기 및 관리를 참조하세요. SERVICE_PROJECT에 서비스 계정을 만듭니다. 자세한 내용은 서비스 계정 만들기 및 관리를 참조하세요.- 네트워크를 만들고 비공개 Google 액세스를 사용 설정합니다. 자세한 내용은 네트워크 만들기 및 관리 및 내부 IP 주소의 비공개 Google 액세스 구성을 참조하세요.
- 다음 조직 정책을 사용 중지합니다. 자세한 내용은 조직 정책 제약조건을 참조하세요.
- 두 프로젝트 모두에 있는
constraints/iam.disableCrossProjectServiceAccountUsage constraints/compute.vmExternalIpAccess(SSH로 VM에 액세스하려는 경우, 선택 사항)
- 두 프로젝트 모두에 있는
IAM 권한 설정
사용자 계정에 서비스 계정 사용자 역할을 부여하여 서비스 계정을 VM 인스턴스에 연결할 수 있도록 합니다.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --project=SERVICE_PROJECT_ID \ --member=user:USER_EMAIL \ --role=roles/iam.serviceAccountUser다음 자리표시자를 바꿉니다.
SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일 주소입니다.SERVICE_PROJECT_ID: 서비스 계정이 포함된 프로젝트의 ID입니다.USER_EMAIL: 사용자 계정의 이메일 주소입니다.
워크로드가 Docker 컨테이너에서 실행되는 경우 Compute Engine 서비스 에이전트에서 메타데이터 서버에 액세스하도록 허용합니다.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --project=SERVICE_PROJECT_ID \ --role=roles/iam.serviceAccountTokenCreator \ --member=serviceAccount:service-TPU_PROJECT_ID@compute-system.iam.gserviceaccount.com다음 자리표시자를 바꿉니다.
SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일 주소입니다.SERVICE_PROJECT_ID: 서비스 계정이 포함된 프로젝트의 ID입니다.TPU_PROJECT_ID: TPU VM이 포함된 프로젝트의 ID입니다.
TPU 프로젝트에서 TPU VM 만들기
서비스 프로젝트의 서비스 계정을 사용하여 TPU 프로젝트에서 TPU VM을 만듭니다.
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--service-account=SERVICE_ACCOUNT_EMAIL \
--project=TPU_PROJECT_ID \
--zone=ZONE \
--maintenance-policy=TERMINATE
다음 자리표시자를 바꿉니다.
TPU_NAME: TPU VM의 이름입니다.MACHINE_TYPE: 머신 유형입니다.IMAGE_FAMILY: TPU VM의 OS 이미지 계열 입니다. 특정 OS 버전을 설치하려면--image플래그를 사용합니다.IMAGE_PROJECT: OS 이미지가 포함된 프로젝트입니다. TPU 이미지의 경우ubuntu-os-accelerator-images입니다.SERVICE_ACCOUNT_EMAIL: 서비스 계정의 이메일 주소입니다.TPU_PROJECT_ID: TPU VM이 포함된 프로젝트의 ID입니다.ZONE: TPU VM의 영역입니다.