ソースデプロイ中に、Cloud Run は Cloud Run サービスのビルドとデプロイで Cloud Build を利用します。
このページでは、サービスのビルド時に Cloud Build が使用するユーザー指定のサービス アカウントの設定方法を説明します。このガイドは、Google Cloud CLI を使用して Cloud Run のサービスまたは関数をデプロイし、Cloud Build で使用するビルドサービス アカウントをカスタマイズする必要があるプラットフォーム デベロッパーを対象としています。ビルドサービス アカウントの gcloud CLI フラグは、ソースのデプロイ(--source
)でサポートされていますが、コンテナ イメージのデプロイ(--image
)ではサポートされていません。
始める前に
Cloud Build API を有効にします。
gcloud services enable cloudbuild.googleapis.com
Cloud Build のサービス アカウントとして使用するサービス アカウントを作成するか、既存のサービス アカウントを用意します。
必要なロール
ユーザーまたは管理者は、デプロイ担当者アカウントと Cloud Build サービス アカウントに次の IAM ロールを付与する必要があります。
クリックしてデプロイ担当者アカウントに必要なロールを表示
ソースからビルドしてデプロイするために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
- プロジェクトに対する Cloud Run ソース デベロッパー(
roles/run.sourceDeveloper
) - プロジェクトの Service Usage ユーザー(
roles/serviceusage.serviceUsageConsumer
) - Cloud Run サービス ID に対するサービス アカウント ユーザー(
roles/iam.serviceAccountUser
)
クリックして Cloud Build サービス アカウントに必要なロールを表示
関数をデプロイするときに Cloud Build サービス アカウントがビルドを実行できるようにするには、プロジェクトの Cloud Build サービス アカウントに Cloud Run ビルダー(roles/run.builder
)ロールを付与するよう管理者に依頼します。
Cloud Run に関連付けられている IAM ロールと権限のリストについては、Cloud Run IAM ロールと Cloud Run IAM 権限をご覧ください。Cloud Run サービスがGoogle Cloud API(Cloud クライアント ライブラリなど)と連携している場合は、サービス ID の構成ガイドをご覧ください。ロールの付与の詳細については、デプロイ権限とアクセスの管理をご覧ください。
Cloud Build のサービス アカウントを指定する
デフォルトでは、ソースからサービスまたは関数をデプロイする際に Cloud Build のサービス アカウントが指定されていない場合、Cloud Build はデフォルトの Cloud Build サービス アカウントを使用します。
最小権限の原則に沿ってサービスのセキュリティ ポスチャーを改善するベスト プラクティスとして、ソースから関数をデプロイする際に独自のサービス アカウントを指定してビルドを実行することをおすすめします。
gcloud
ソースコードからサービスをデプロイするときに Cloud Build のサービス アカウントを指定するには、--build-service-account
フラグを使用します。
gcloud run deploy SERVICE \ --source . \ --build-service-account projects/PROJECT_ID/serviceAccounts/BUILD_SERVICE_ACCOUNT
次のように置き換えます。
- SERVICE は、Cloud Run サービスの名前に置き換えます。
- PROJECT_ID は、ビルドサービス アカウントが作成されるプロジェクト ID です。
- BUILD_SERVICE_ACCOUNT は、ユーザー指定のサービス アカウントに置き換えます。
関数をデプロイする場合は、ソースコードから関数のエントリ ポイントを指定して --function
フラグを追加します。