在 Cloud Build 过程中使用来自 Google Secret Manager 的 NPM 令牌
Using NPM token from Google Secret Manager during Cloud Build process
Cloud Build Google 可以在安装过程中使用 NPM 令牌吗?
我正在跨应用程序使用私有 NPM 包,我知道我们可以 place the token within an .npmrc file
//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>
但我想将令牌保留在代码库之外并使用 SM 来实现它的目的。
但这似乎不可能,文档似乎也没有涵盖这一点。
同时,发布 sethvargo 和 guillaume blaquiere 提出的解决方案以提高知名度。
您可以将令牌值设置为环境变量,NPM_TOKEN
。在这种情况下,您可以使用原生 Cloud Build + Secret Manager 集成来注入值:cloud.google.com/build/docs/securing-builds/use-secrets
如果 NPM_TOKEN
解决方案不起作用,您仍然可以使用 Secret Manager 和 Cloud Build 加载您的令牌,用脚本编写您的 .npmrc
文件,然后 运行 你的构建。
为此我不得不请有经验的 Secret Manager 帮忙,但仍然花了 20 多个小时。
假设您具备 GCP 和 Secret Manager 的一般知识并且手头有 NPM 令牌(可在 npmjs 找到。com/settings/USERNAME/tokens)
- 创建一个名为
NPM_TOKEN
的 Secret Manager 密钥及其值
作为私有 NPM 包的 automation token
- 在 cloudbuild.yaml 构建过程中创建一个 .npmrc
steps:
- name: bash
args: ['-c', 'echo //registry.npmjs.org/:_authToken=$$NPM_TOKEN > .npmrc'] <-- main takeaway
secretEnv: ['NPM_TOKEN']
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
args: ['gcloud', 'app', 'deploy']
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_ID/secrets/NPM_TOKEN/versions/latest
env: 'NPM_TOKEN'
现在云构建过程有一个 NPM_TOKEN
值可以拉入私有 NPM 包。
Cloud Build Google 可以在安装过程中使用 NPM 令牌吗?
我正在跨应用程序使用私有 NPM 包,我知道我们可以 place the token within an .npmrc file
//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>
但我想将令牌保留在代码库之外并使用 SM 来实现它的目的。
但这似乎不可能,文档似乎也没有涵盖这一点。
同时,发布 sethvargo 和 guillaume blaquiere 提出的解决方案以提高知名度。
您可以将令牌值设置为环境变量,NPM_TOKEN
。在这种情况下,您可以使用原生 Cloud Build + Secret Manager 集成来注入值:cloud.google.com/build/docs/securing-builds/use-secrets
如果 NPM_TOKEN
解决方案不起作用,您仍然可以使用 Secret Manager 和 Cloud Build 加载您的令牌,用脚本编写您的 .npmrc
文件,然后 运行 你的构建。
为此我不得不请有经验的 Secret Manager 帮忙,但仍然花了 20 多个小时。
假设您具备 GCP 和 Secret Manager 的一般知识并且手头有 NPM 令牌(可在 npmjs 找到。com/settings/USERNAME/tokens)
- 创建一个名为
NPM_TOKEN
的 Secret Manager 密钥及其值 作为私有 NPM 包的 automationtoken
- 在 cloudbuild.yaml 构建过程中创建一个 .npmrc
steps:
- name: bash
args: ['-c', 'echo //registry.npmjs.org/:_authToken=$$NPM_TOKEN > .npmrc'] <-- main takeaway
secretEnv: ['NPM_TOKEN']
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
args: ['gcloud', 'app', 'deploy']
availableSecrets:
secretManager:
- versionName: projects/$PROJECT_ID/secrets/NPM_TOKEN/versions/latest
env: 'NPM_TOKEN'
现在云构建过程有一个 NPM_TOKEN
值可以拉入私有 NPM 包。