【问题标题】:Using NPM token from Google Secret Manager during Cloud Build process在 Cloud Build 过程中使用来自 Google Secret Manager 的 NPM 令牌
【发布时间】:2022-02-11 03:19:25
【问题描述】:

Google Cloud Build 能否在安装过程中使用 NPM 令牌?

我正在跨应用程序使用私有 NPM 包,我知道我们可以place the token within an .npmrc file

//registry.npmjs.org/:_authToken=<YOUR_AUTH_TOKEN>

但我想将令牌排除在代码库之外,并将 SM 用于它的用途。

但这似乎不可能,并且文档似乎没有涵盖这一点。

【问题讨论】:

  • 我相信您可以根据docs.npmjs.com/… 将令牌值设置为环境变量NPM_TOKEN。在这种情况下,您可以使用原生 Cloud Build + Secret Manager 集成来注入值:cloud.google.com/build/docs/securing-builds/use-secrets
  • 如果 NPM_TOKEN 解决方案不起作用,您仍然可以使用 Secret Manager 和 CLoud Build 加载您的令牌,使用脚本编写您的 .npmrc 文件,然后运行您的构建。让我们知道您尝试了什么以及您在哪里被阻止。
  • 哇,谢谢两位。我一定会详细更新。
  • 嗨@BenRacicot,您尝试过解决方案吗?谢谢
  • 嗨@FaridShumbar 我正在获取设置 Secret Manager 的帮助。一定会在这里回复。

标签: npm google-cloud-platform package.json google-secret-manager


【解决方案1】:

同时,发布 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 文件,然后运行您的构建。

【讨论】:

    【解决方案2】:

    为此,我不得不为 Secret Manager 寻求经验丰富的帮助,但仍然需要 20 多个小时。

    假设您具备 GCP 和 Secret Manager 的一般知识并且手头有 NPM 令牌(可在 npmjs.com/settings/USERNAME/tokens 找到)

    1. 创建一个名为 NPM_TOKEN 的 Secret Manager 密钥及其值 作为私有 NPM 包的 自动化 token
    2. 在 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 包。

    【讨论】:

      猜你喜欢
      • 2020-12-02
      • 1970-01-01
      • 2020-05-18
      • 2021-02-13
      • 2021-10-03
      • 2020-12-13
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      相关资源
      最近更新 更多