Closed7

Cloud Build で Cloud Run へ deploy する際に Secret Manager から環境変数を設定したい

nbstshnbstsh

Cloud Build で Secret Manager 利用する

まず、Cloud Build で Secret Manager を利用する方法調べる

nbstshnbstsh

availableSecrets に利用したい secret の情報を指定すれば良いのか

steps:
- name: 'gcr.io/cloud-builders/docker'
  entrypoint: 'bash'
  args: ['-c', 'docker login --username=$$USERNAME --password=$$PASSWORD']
  secretEnv: ['USERNAME', 'PASSWORD']
availableSecrets:
  secretManager:
  - versionName: projects/PROJECT_ID/secrets/DOCKER_PASSWORD_SECRET_NAME/versions/DOCKER_PASSWORD_SECRET_VERSION
    env: 'PASSWORD'
  - versionName: projects/PROJECT_ID/secrets/DOCKER_USERNAME_SECRET_NAME/versions/DOCKER_USERNAME_SECRET_VERSION
    env: 'USERNAME'
nbstshnbstsh

IAM の permission 付与

Grant the Secret Manager Secret Accessor (roles/secretmanager.secretAccessor) IAM role for the secret to the Cloud Build service account:

Secret Manager Secret Accessor roles/secretmanager.secretAccessor role を付与。

In the New principals textbox, enter the email address of your Cloud Build service account of the form PROJECT_NUMBER@cloudbuild.gserviceaccount.com. PROJECT_NUMBER is the project number of the project where you are running builds. You can find the project number in your Project settings page.

対象の service account は PROJECT_NUMBER@cloudbuild.gserviceaccount.com

nbstshnbstsh

Cloud Run deploy 時に Secret Manager を指定する

公式 Doc 見てく。

https://cloud.google.com/run/docs/configuring/secrets?hl=ja#command-line

nbstshnbstsh

secret を環境変数として公開する形で deploy

--update-secrets option で指定可能。

指定の仕方は、

--update-secrets=ENV_VAR_NAME=SECRET_NAME:VERSION

deploy コマンドの全体像↓

gcloud run deploy my-service --image my-image-url --update-secrets=DATABASE_URL=DATABASE_URL:latest

Secret Manager で管理している DATABASE_URL を、Cloud Run の実行環境の環境変数 DATABASE_URL として設定している。

version は latest とすることで常に最新の version を指定可能。

nbstshnbstsh

Cloud Run の deploy コマンドの option で指定できるのなら、Cloud Build で Secret Manager の値を利用する必要ないな...

ただ、個人的には、Docker buiid 時に Secret Manager の値が必要なので、Cloud Build で Secret Manager の値を受け渡す必要はある。

このスクラップは2023/09/20にクローズされました