교차 프로젝트 서비스 계정 사용

이 문서에서는 TPU VM을 만들 때 교차 프로젝트 서비스 계정을 사용하는 방법을 설명합니다. 교차 프로젝트 서비스 계정은 TPU VM과 다른 프로젝트에 있는 서비스 계정입니다.

이 안내에는 공유 VPC 또는 VPC 서비스 제어에 대한 고려사항이 포함되어 있지 않습니다. 이러한 기능을 사용하려면 추가 구성 또는 권한이 필요할 수 있습니다. 자세한 내용은 공유 VPC 네트워크 만들기 및 수정VPC 서비스 제어 개요를 참조하세요.

시작하기 전에

IAM 권한 설정

  1. 사용자 계정에 서비스 계정 사용자 역할을 부여하여 서비스 계정을 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: 사용자 계정의 이메일 주소입니다.
  2. 워크로드가 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의 영역입니다.