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

このドキュメントでは、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.
    

    各プレースホルダを次のように置き換えます。

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