プロジェクト間サービス アカウントを使用する

このドキュメントでは、TPU VM の作成時にプロジェクト間サービス アカウントを使用する方法について概説します。プロジェクト間サービス アカウントは、TPU VM とは異なるプロジェクトにあるサービス アカウントです。

この手順では、共有 VPC または VPC Service Controls は考慮されていません。 これらの使用をサポートするには、追加の構成または権限が必要になる場合があります。詳細については、共有 VPC ネットワークの作成と変更VPC Service Controls の概要をご覧ください。

始める前に

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 Service エージェントにメタデータ サーバーへのアクセス権を付与します。

    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 のゾーン。