在 Cloud Build 构建步骤期间访问 GCP Secret

Wil*_*Evo 1 google-cloud-platform google-cloud-build

假设我有一个如下所示的 cloudbuild.yaml 文件:

steps:
  - name: 'gcr.io/cloud-builders/docker'
    id: build
    args: ['build', '-t', 'us.gcr.io/${PROJECT_ID}/image_name', '--build-arg', 'secret=$$SECRET', '.']
    secretEnv: ['SECRET']
 
images:
  - 'us.gcr.io/${PROJECT_ID}/image_name'

availableSecrets:
  secretManager:
  - versionName: projects/project/secrets/my_secret/versions/latest
    env: 'SECRET'
Run Code Online (Sandbox Code Playgroud)

现在,--build-arg 正在为 Docker secretarg 分配值$SECRET,而不是实际存储在密钥中的值。在此步骤中如何访问秘密值?我可以在网上找到的所有示例都说添加 bash 入口点,但仅适用于实际上未执行构建调用的步骤。

gui*_*ere 9

这是 Cloud Build 和 Secret Manager 集成的常见问题。您只能在脚本中访问秘密,而不能在入口点和参数中访问秘密(您的情况)

尝试一下

steps:
  - name: 'gcr.io/cloud-builders/docker'
    id: build
    entrypoint: 'bash'
    args: 
      - -c
      - |
          docker build -t us.gcr.io/${PROJECT_ID}/image_name --build-arg secret=$$SECRET .
    secretEnv: ['SECRET']
Run Code Online (Sandbox Code Playgroud)