问题标签 [google-secret-manager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
999 浏览

c# - 存储在 Google Secret Manager 中的 DotNet 用户机密

我需要将 dotnet Web 应用程序部署到 Google Cloud Run,并希望使用用户机密文件来存储凭据。目前,它们位于不安全的 appsettings 中。有没有人使用 Google Secret Manager 做到这一点?

  • 最好存储键值对,一个json blob?
  • 我想在启动时而不是在构建时提取值。

如果有现有的示例或片段,他们将不胜感激。

谢谢。

0 投票
0 回答
48 浏览

google-secret-manager - 如何获取 Secret Manager 的指标

从查看https://cloud.google.com/monitoring/api/metrics_gcp看来,目前(2020-07-29)似乎无法检索例如指标中的关键年龄。

因此,目前看来我将被迫拥有一个预定的 Cloud 函数,该函数手动读取 SecretManager API 并将数据推送到 Stackdriver。

或者有没有更简单的方法来获取 SecretManager 的指标?

0 投票
0 回答
264 浏览

node.js - 将秘密有效负载解析为 js 普通对象的最佳方法是什么?

我使用谷歌云网络用户界面创建了一个秘密。我直接从.env文件中导入它。现在我想在云功能中使用它们。

代码在这里:

version.payload.data.toString()会给我一个.env像这样的原始文件字符串:

我需要将其解析为 js 普通对象,以便可以通过对象属性(如payload.data.APP_PORT. 现在,我使用dotenv.parse将原始字符串解析为 js 普通对象。输出如下:

有一个更好的方法吗?谷歌秘密管理器或gcloudcli 是否支持从文件创建 JSON 格式的秘密有效负载.env?所以我可以JSON.parse在不使用任何第三方包的情况下解析 JSON 字符串吗?

0 投票
1 回答
1959 浏览

node.js - GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)

我一直在我的 Node 应用程序中使用 @google-cloud/secret-manager 插件,该插件以前托管在 Google App Engine 上。

在我将代码移至 Cloud Run 之前,它一直运行良好。我现在收到以下错误:错误:

错误:500 未定义:从插件获取元数据失败并出现错误:无法刷新访问令牌:响应状态代码不成功。

这是我的代码示例:

accessSecretVersion经过调试,运行函数时似乎抛出了异常。看起来secret-manager插件无法检索当前的服务帐户,是因为我在 Docker 映像中运行我的代码吗?

这是我的 Dockerfile 的内容

它是通过使用以下 cloudbuild.yaml 文件的触发器构建部署的

有关信息,Cloud Run自定义服务帐户可以读取我的机密,它们都具有Secret Manager Secret Accessor访问权限。

非常感谢你的帮助!

0 投票
1 回答
571 浏览

node.js - 无法将 GCP 机密管理器与 GCP 云功能(nodeJS)一起使用

我正在尝试访问存储在 GCP 机密管理器中的机密。使用以下示例代码并在使用 babel 部署其转译之前。

相同的转译版本

但是我在秘密管理器实例化时遇到了以下错误(const client = new SecretManagerServiceClient();

当我在本地机器上尝试时,我可以使用同一个库访问/修改密钥。但是它似乎不适用于CF。

CF 服务帐户可以访问 secret-manager。

任何帮助,将不胜感激。提前致谢。

0 投票
1 回答
153 浏览

google-kubernetes-engine - 如何传递 GOOGLE_APPLICATION_CREDENTIALS 中的内容而不是文件路径?

有什么方法可以使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量并将文件的内容传递给它而不是文件的路径,实际上我想从我的 NodeJs 应用程序中使用服务帐户,但我的条件是我不能通过文件使用它,但我可以通过我的 NodeJS 代码传递它的内容。

0 投票
1 回答
1418 浏览

javascript - 如何访问 Cloud Function node.js10 中的 Secret Manager?

我已经为此工作了 2 天,对进展感到非常沮丧,任何关于我的理解/代码/方法可能有问题的指导将不胜感激!

我正在尝试使用 node.js 从秘密管理器获取版本值,下面的脚本在 GCE 上运行良好,但是每当我在 Cloud 函数上运行它时它都会失败。

以下是我的问题:

  1. 我注意到 Cloud Function 中的 node.js 运行时上有一个可用系统包的列表,所以我想知道这是否是原因。我已经提交了添加@google-cloud/secret-manager到 node.js 运行时的请求。但是,在 Cloud Function 文档中有一个使用的示例,escape-html该列表中也没有该示例。我的问题是,在我的情况下,我是否应该请求将 secret-manager 包添加到 node.js 运行时?

  2. 由于 Cloud Function 需要一个事件触发器,我还尝试testSecretManager用一个简单的函数来包装它来处理 http 请求,并在我的浏览器的端点上对其进行测试。简单的函数本身工作正常,但是每当我将与秘密管理器相关的任何内容插入该函数时,该函数都会失败或页面显示它Error: could not handle the request。我的问题是,我是否必须testSecretManager使用 HTTP 请求或任何其他事件处理函数来触发 Cloud Function 中的目标函数?

  3. package.json对云函数上的文件很困惑,当我在 GCE 中使用秘密管理器时,package-lock.json有 600 多行,所以我尝试package.json在云函数上处理这些行,但它不起作用.....我的问题是,当我想要的只是包时,我应该在 package.json 中包含@google-cloud/secret-manager什么?

0 投票
2 回答
841 浏览

docker - Google Cloud Build + Google Secret Manager 替换问题

我们有一个需要go get私有存储库的存储库。为此,我们使用 SSH 密钥来访问私有仓库/模块。

我们使用Google Secret Managerbuild-arg存储此 SSH 密钥,并使用标志将其传递给 Docker 。现在,当我们在本地执行此操作时,Dockerfile 会按预期构建和运行。这是我们用于本地构建的命令:

但是,当我们尝试将此设置移动到 Google Cloud Build 时,我们遇到了来自 Bitbucket 的 403 禁止错误,这让我相信 SSH 密钥要么没有被读取,要么没有被正确格式化。

完整的 403 错误是:

更奇怪的是,当我运行 Cloud Build 本地模拟器时,使用以下命令可以正常工作:cloud-build-local --config=builder/cloudbuild-prod.yaml --dryrun=false .

我尝试了许多不同的格式和方法,所以出于绝望,我向社区寻求帮助。可能是什么问题呢?

这是我们的 cloudbuild.yaml:

0 投票
1 回答
974 浏览

reactjs - 静态站点的环境变量?

我正在考虑将 React 应用程序作为静态站点部署到云存储桶。

该应用程序需要一些 api 密钥,但我找不到在云存储中设置环境变量的方法。

甚至可以在云存储中使用环境变量吗?

GCP Secret Manager 可能是一个选项,但看起来它是用于服务器端的。它需要身份验证,但我使用环境变量的主要目的是存储用于 Firebase 身份验证的 Firebase 密钥。

有什么建议么?

0 投票
5 回答
5752 浏览

spring-boot - 如何使用 Spring Boot 将来自 Google Secret Manager 的秘密作为环境变量注入 Kubernetes Pod?

为了布莱恩的一生,我该怎么做?

Terraform用于在 GCP 中创建 SQL Server 实例。Root密码和用户密码是随机生成的,然后放入Google Secret Manager。数据库的 IP 通过私有 DNS 区域公开。

我现在如何获取用户名和密码以将数据库访问到我的 K8s 集群?在此处运行 Spring Boot 应用程序。

这是我想到的一个选择:

在我的部署中,我添加了一个initContainer

好的,现在怎么办?如何从这里将它放入我的应用程序容器中?

还有一些选项bitnami/sealed-secrets,我不喜欢,因为设置Terraform已经在使用并将机密保存在 GCP 中。使用时sealed-secrets我可以跳过使用秘密管理器。与Vault海事组织相同。