Cloud Run(フルマネージド)のサービス アカウント

このページでは、特定のサービス アカウントを Cloud Run(フルマネージド)サービスに割り当てる方法について説明します。

サービス ID の設定と更新

各サービスに専用の ID を割り当て、IAM を使用して最小限の権限セットを付与することによってアクセスを制限することをおすすめします。これを行うには、正しい IAM ロールを持つ名前付きのサービス アカウントを割り当てます。サービス アカウントは、Cloud Run(フルマネージド)サービスと同じプロジェクトでのみ使用できます。

デフォルト以外の ID の使用に必要な権限

デフォルト以外のサービス アカウントでサービスをデプロイするには、デプロイするサービス アカウントに対する iam.serviceAccounts.actAs 権限が必要です。

ユーザーがサービス アカウントを作成すると、この権限が自動的に付与されます。それ以外の場合は、正しい権限を持つユーザーがサービス アカウントに対するこの権限をデプロイ側に付与する必要があります。

デフォルト以外の ID を持つ新しいサービスのデプロイ

サービスを新しい ID でデプロイする前に、使用するサービス アカウントがすでに作成されていることを確認します。まだの場合は、アカウントを作成してください。詳しくは、サービス アカウントの作成と管理をご覧ください。

新しいサービスを作成する、または新しいリビジョンをデプロイするときに、Cloud Console または gcloud コマンドラインを使用して環境変数を設定できます。サービス アカウントを更新して、新しい ID に関連付けられたサービス アカウントのメールアドレスを反映させます。

Console

  1. Cloud Run に移動します

  2. デプロイ先の新しいサービスを構成する場合は、[サービスの作成] をクリックします。既存のサービスを構成する場合は、サービスをクリックし、[新しいリビジョンの編集とデプロイ] をクリックします。

  3. [詳細設定] で [コンテナ] をクリックします。

    画像

  4. [サービス アカウント] プルダウンをクリックして、目的のサービス アカウントを選択します。

  5. [作成] または [デプロイ] をクリックします。

gcloud

次のコマンドを使用して、新しいランタイム サービス アカウントを使用するように既存サービスを更新できます。

gcloud run services update SERVICE --service-account SERVICE_ACCOUNT

以下のように置き換えます。

  • SERVICE は、実際のサービスの名前に置き換えます。
  • SERVICE_ACCOUNT は、新しい ID に関連付けられたサービス アカウントに置き換えます。

また、デプロイ中に次のコマンドを使用してサービス アカウントを設定することもできます。

gcloud run deploy --image IMAGE_URL --service-account SERVICE_ACCOUNT

以下のように置き換えます。

  • IMAGE_URL は、コンテナ イメージへの参照(gcr.io/myproject/my-image:latest など)に置き換えます。
  • SERVICE_ACCOUNT は、新しい ID に関連付けられたサービス アカウントに置き換えます。

YAML

既存のサービス構成をダウンロードして表示するには、gcloud run services describe --format export コマンドを使用します。読みやすく整えられた結果が YAML 形式で出力されます。次に、下記の手順に沿ってフィールドを変更し、gcloud beta run services replace コマンドを使用して変更後の YAML ファイルをアップロードします。必ず説明されているとおりにフィールドを変更してください。

  1. 次のコマンドで、構成を表示してダウンロードします。

    gcloud run services describe SERVICE --format export > service.yaml
  2. serviceAccountName: 属性を更新します。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        spec:
          serviceAccountName: SERVICE_ACCOUNT

    置換

    • SERVICE は、Cloud Run サービスの名前に置き換えます。
    • SERVICE_ACCOUNT は、新しい ID に関連付けられたサービス アカウントに置き換えます。
  3. 次のコマンドを使用して、サービスを新しい構成に置き換えます。

    gcloud beta run services replace service.yaml