问题标签 [secretsmanager]

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 投票
0 回答
195 浏览

asp.net-core - EF6 CLI 工具无法从用户机密 .net 核心读取连接字符串

我们有一个使用 EF6 的旧系统。与许多人一样,我们已经转向 .Net Core,但发现 EFCore 在我们现有系统中所需的所有功能方面有些欠缺。考虑到这一点,我们目前在 .Net 核心解决方案中使用 EF6。

到目前为止,我们较新的基于 .Net Core 的系统只有对我们现有数据库的读写权限,与旧的 .Net 框架解决方案共享实体配置。我们现有的流程依赖于将迁移更改应用到数据库的 .Net Framework 应用程序。然后,我们的 .Net 核心应用程序能够通过与 .Net 框架项目共享实体和配置来与数据库进行交互。到目前为止,这对我们来说效果很好,但是,我们现在需要能够将迁移从新的 .Net 核心项目应用到新数据库。

我们大量使用 .Net 核心的一些新功能,包括使用用户机密,但我们发现当我们在开发过程中尝试将迁移应用到本地数据库时,这会导致问题,因为这似乎总是默认为本地数据库当我们通过包管理器控制台使用 EF6 CLI 工具时。

我们创建了一个简单的上下文工厂,它通过选项模式接收应用程序设置,并在创建时使用其中的值将连接字符串传递到上下文中,但是,在运行 EF6 CLI 工具时,选项始终为空。

我相信这是因为 EF6 工具仅运行上下文工厂类,但这并没有在应用开发环境设置的情况下完成,因此在检索选项时它返回为空,因为我们的 appsettings 中的相关 json 字段为空白(这是由我们的开发约定,因为我们从不将秘密保存到我们的存储库中)。

为了测试这个理论,我将我们的连接字符串直接添加到应用程序设置中。虽然这并没有产生我们之前收到的空引用异常错误,但它确实产生了一个关于缺少无参数构造函数的新错误:

上下文工厂类型“MyProject.Data.Ef6.Context.MyContextFactory”没有公共无参数构造函数。添加公共无参数构造函数,在上下文程序集中创建 IDbContextFactory 实现,或使用 DbConfiguration 注册上下文工厂。

如果我添加了一个无参数的构造函数,尽管我看到的是相同的

你调用的对象是空的。

和以前一样的错误。

EFCore 不是一个选项,那么我们如何调整我们的项目,以便我们可以执行本地数据库迁移,而不必在我们的上下文工厂或我们的上下文本身中硬编码任何连接字符串?

我们不太关心我们的生产环境,因为我们手动将向上和向下迁移应用到这些环境,因此将关闭自动迁移,但我们希望以防止开发人员意外将我们的连接字符串提交到代码库的方式进行设置。

提前致谢。

我可以提供所需的任何进一步信息。

编辑:

上下文在 startup.cs 中设置如下:

在 startup.cs 中设置选项如下:

连接字符串存储在 appsettings.json 中,但在 repo 中为空白。它仅由用户计算机上的用户秘密填充,因此不会将连接字符串写入存储库。

0 投票
0 回答
54 浏览

node.js - 开发中的秘密管理问题

目前我正在深入研究开发过程中的秘密管理。我的想法是使用像 HashiCorp 的 Vault 这样的秘密管理工具来存储我所有的秘密。

这是我的用例:客户端创建了 Vimeo API 密钥,它将存储在 Vault 中。我在一个小团队中工作,我想与我的同事分享这个秘密。在开发过程中,他们需要使用此密钥,因此他们将此密钥设置为环境变量。稍后他们将被解雇(例如)。

问题是我可以在 Vault 中撤销对这个密钥的访问,但它们仍然具有 Vimeo 令牌的价值,因为他们在开发过程中使用了它。

你怎么处理这个?

0 投票
1 回答
115 浏览

python - 机密值不能转换为键名和值对

我已经有一个由 cloudformation 模板创建的秘密,具有以下键/值格式:

而且我创建了一个旋转 lambda,但是当我旋转秘密时,我只得到没有键/值对的纯文本格式,因为以下错误: 秘密值无法转换为键名和值对。

这是我的 lambda 代码:

0 投票
1 回答
18 浏览

python - 如何将我的 github orgname 和访问令牌放在这一行“requests.get(url='https://api.github.com/users/' + orgname + '/repos?page={}'.format(page) )"

我正在尝试运行这个由 trufflehog 制作的 python 脚本,以使用他们的开源扫描程序一次扫描一个帐户或组织的所有 repo。

有谁知道我如何将我的组织名称和访问令牌放入 url 而不会弄乱其余部分?

到目前为止,我已经尝试了一些变化,比如

requests.get(url='https://api.github.com/users/myOrg/repos?access_token=xyz?page={}'.format(page))

0 投票
0 回答
9 浏览

passwords - 将 BeyondTrust 用于 DevSecOps

BeyondTrust Password Safe 和 DevOps Secrets safe 之间的主要区别是什么?因为我的理解是 BeyondTrust Password Safe 可用于保存 DevOps 流程中的代码和工具密码,那么为什么我需要 DevOps Secrets 安全呢?

0 投票
1 回答
165 浏览

amazon-web-services - AWS sam cli 本地调用 lambda 与密钥管理器端口未定义

我正在尝试使用 sam local invoke 在本地测试我的 lambda 函数。错误说 UnknownEndpoint: Inaccessible host: secretsmanager.us-east-1.amazonaws.com' at port undefined' 这个错误是从我的 lambda 函数代码内部抛出的,因为我是从中提取秘密的。我也尝试过使用 --region --profile 选项,但没有运气。就上下文而言,我使用 terraform 来设计和部署我的基础架构。将 SAML 授权与凭证文件一起用于 AWS 访问我们的 VPC 环境。当 SAM 启动 Lambda docker 容器时,我已验证该区域设置正确。我还验证了我为 Lambda 提供了相同的参数,以将 Secrets Manager 识别为在 VPC 版本中运行的那个。

我唯一觉得奇怪的是控制台中未定义的端口,它似乎来自 AWS 开发工具包内部。请注意,当我使用我们公司云工程团队创建的 secrets manager terraform 模块时,我不必提供任何端口信息。希望有人可以帮助解释这个问题错误。

0 投票
0 回答
24 浏览

jenkins - 我如何创建服务帐户并传递给 Jenkins 以访问谷歌云存储。?

我正在尝试为 DAG 创建一个 Jenkins 管道,以便从那里存储在谷歌云存储中,云作曲家连接到拉 DAG。在创建管道时,我创建了一个 Jenkins 服务帐户,并且我使用相同的 Jenkins 来访问 GCS。但是,当我通过全局凭据在 Jenkins UI 中创建凭据并使用密钥在几分钟后被删除时,我的构建失败说未知凭据,因为它无法获取任何凭据,因为它被删除并且无法访问任何服务帐户。以前有人遇到过类似的问题吗?我关心的是如何将秘密传递给詹金斯。?我应该将它作为 JCasC 传递吗?

0 投票
2 回答
89 浏览

javascript - 如何从函数设置 process.env?

我非常愿意学习是否有更好的“最佳实践”方法来执行此操作,但是我偶尔会运行一些脚本来编辑数据库,因此我需要为这些脚本传递数据库密码。我通过调用调用 google cloud Secrets Manager 的函数来获取密码,但我无法将其添加到 process.env。

例如,如果我把它放在我的脚本文件的顶部:

当上述运行我得到错误
SyntaxError: await is only valid in async functions and the top level bodies of modules

但是,如果我将 process.env.DB_PASS 设置移动到的 async main() 函数中,那么它具有该 main 函数的本地范围。此脚本中的函数调用的其他文件将 process.env.DB_PASS 视为未定义(但请查看文件顶部全局设置的任何 process.env 变量的值。

如何在不将文字秘密实际粘贴到代码中的情况下引入并设置该秘密?

为了表示范围界定的问题,这里是该问题的工作代码再现。这是我正在运行的脚本文件:

这是process_pull_test文件

而且,这是输出

0 投票
0 回答
14 浏览

python - 使用 Python 检查证书过期

我正在尝试编写一个 lambda 来检查我们存储在 AWS Secrets Manager 中的证书是否过期。亚马逊很好地为我提供了大部分代码来检索秘密,现在我正在尝试确定如何获取我得到的结果并检查它是否过期。

我发现的大多数示例都是如何检查在线服务器证书过期,而不是您已经下载或在变量中拥有的证书。

希望能对此提供一些指导。

0 投票
0 回答
5 浏览

vault - Vault - 如何将机密存储在文件中?

我一直面临着 Vault 的 2 个问题。

  1. 当我使用 --dev 选项启动服务器时,http://localhost:8200/ui/ 上的 Web UI 为空白。日志是:

拒绝执行来自 'http://localhost:8200/ui/assets/vendor-955807f07aa62cf6b124690f61829edf.js' 的脚本,因为它的 MIME 类型('text/plain')不可执行,并且启用了严格的 MIME 类型检查。

  1. 是否可以将所有 kv 机密存储在一个文件中,以便每次启动服务器时都可以读取这些机密?