Tak*_*shi 3 gcloud google-cloud-kms google-cloud-build google-secret-manager
如果我遵循云构建文档,我必须在 cloudbuild.yaml 上指定加密的秘密。
secrets:
- kmsKeyName: projects/[PROJECT-ID]/locations/global/keyRings/[KEYRING-NAME]/cryptoKeys/[KEY-NAME]
secretEnv:
MY_SECRET: <base64-encoded encrypted secret>
Run Code Online (Sandbox Code Playgroud)
即使它是加密的,我也不会在代码中提交秘密值。请告诉我另一种方式。
前任。通过来自 gcloud 的 args 构建提交命令或环境变量等
您可以改用Google Secret Manager。我们仍在更新文档,但有一个示例说明如何将其与 Cloud Build 结合使用:
首先,创建一个秘密:
$ echo -n "my-secret-data" | gcloud beta secrets create "my-api-key" \
--replication-policy "automatic" \
--data-file -
Run Code Online (Sandbox Code Playgroud)
授予 Cloud Build 服务帐户访问您的密钥的权限:
$ gcloud beta secrets add-iam-policy-binding "my-api-key" \
--member "serviceAccount:<project-number>@cloudbuild.gserviceaccount.com" \
--role "roles/secretmanager.secretAccessor"
Run Code Online (Sandbox Code Playgroud)
然后在您的构建步骤中检索秘密:
$ echo -n "my-secret-data" | gcloud beta secrets create "my-api-key" \
--replication-policy "automatic" \
--data-file -
Run Code Online (Sandbox Code Playgroud)
然后在您的构建步骤中检索秘密:
$ gcloud beta secrets add-iam-policy-binding "my-api-key" \
--member "serviceAccount:<project-number>@cloudbuild.gserviceaccount.com" \
--role "roles/secretmanager.secretAccessor"
Run Code Online (Sandbox Code Playgroud)