问题标签 [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 投票
2 回答
184 浏览

aws-sdk - 在哪里保存秘密管理工具的初始信任凭证?

对于我们的产品,我们决定实施一个秘密管理工具(AWS 秘密管理器),它将安全地存储和管理我们所有的秘密,例如数据库凭证、密码和 API 密钥等。

通过这种方式,秘密不会存储在代码、数据库或应用程序的任何地方。我们必须提供 AWS 凭证 - 访问密钥 ID 和秘密访问密钥,以便以编程方式访问 Secrets manager 的 API。

现在出现的最大问题是,该初始信任(用于验证 AWS 机密管理器的凭证)保存在哪里。这是一个引导问题。同样,我们必须在秘密存储之外、配置文件或其他地方维护一些东西。我觉得如果这受到损害,那么将所有内容存储在秘密管理工具中就没有真正的意义。

我阅读了 AWS SDK 开发人员指南,并了解有一些标准方法可以存储 AWS 凭证,例如 - 将它们存储在环境变量中、具有不同配置文件的凭证文件中以及通过对 Amazon EC2 实例使用 IAM 角色。

我们不在亚马逊云中运行/托管我们的应用程序,我们只想使用来自 AWS 云的 AWS 机密管理器服务。因此,配置 IAM 角色可能不是我们的解决方案。

是否有任何最佳实践(或)保存初始信任凭证的最佳位置?

0 投票
1 回答
54 浏览

key-value - 您是否应该将非机密配置与机密一起存储在保险库之类的商店中?

是否有理由将非机密键/值配置存储在像 consul 这样的单独键/值存储中,而不是将其与机密一起存储在像 vault 这样的秘密 k/v 存储中?

一个可能的原因是保管库可能会为访问非机密配置提供额外的开销。

你能想到在同一个 k/v 存储中存储或不存储非机密和机密的任何其他原因吗?

0 投票
1 回答
766 浏览

amazon-web-services - 如何查找 AWS Secrets Manager 的缓存位置

我正在使用参数存储来存储数据库凭据,并使用 talend 作业访问它们。但是,由于多个作业同时访问这些参数;我们正面临扩展参数存储的问题,因为它达到了阈值。

我决定使用 AWS Secrets Manager,到目前为止,我能够使用 AWS Lambda 函数 (Python) 成功创建/获取这些密钥;我正在使用 Python 客户端缓存库SecretCacheSecretCacheConfig.

对此有以下疑问:

  1. 是否有可能知道我的 lambda 函数缓存这些秘密的位置?
  2. 如果在我的 talend 作业执行时密码发生更改,如何确保 talend 作业使用更新后的密码值?
  3. 如何确保正在使用机密的最新值。
0 投票
4 回答
25402 浏览

ssh - 如何使用 GitHub Actions 提取机密?

我有一个相当基本的场景。为此,我制作了一个专用的 ssh 密钥并将其添加到我的存储库机密中。

  1. 代码被推送到master

  2. sshGitHub 操作使用by doing将其上传到服务器echo "${{ secrets.SSH_KEY }}" > key

  3. 之后,我可以使用此密钥连接到我的服务器,例如ssh -i key devops@myserver.com lsb_release -a

问题是由于某种原因 GitHub 操作无法将其写入文件,它会将字符***而不是实际的秘密值写入文件。因此显然我无法连接到我的服务器。

如何使用此密码连接 ssh?有没有不使用文件的连接方式?使用 GitHub 操作完成此常见场景的人能否提供一些启示?

0 投票
1 回答
886 浏览

docker - 在不使用 docker swarm 的情况下处理 docker 容器内的秘密

一个问题,你如何在不使用 docker swarm 的情况下处理 dockerfile 中的秘密。假设您在 npm 上有一些私有仓库,并通过提供凭据在 dockerfile 中使用 .npmrc 恢复相同的仓库。包还原后,显然我正在从容器中删除 .npmrc 文件。同样,它也适用于 NuGet.config 以及恢复容器内的私有存储库。目前,我在构建 dockerfile 时将这些凭据作为 --build-arg 提供。

但是像docker history --no-trunc这样的命令这样的命令会在日志中显示密码。有什么体面的方法来处理这个。目前,我不在 Kubernetes 上。因此,需要在 docker 本身中处理相同的问题。

我能想到的一种方法是安装 /run/secrets/ 并将其存储在内部,方法是使用一些包含密码的文本文件或通过 .env 文件。但是,这个 .env 文件必须是完成 CI/CD 过程的管道的一部分,这意味着它必须是源代码控制的一部分。有什么方法可以避免这种情况,或者可以通过管道本身来完成,或者可以在这里应用任何类型的加密/解密逻辑?

谢谢。

谢谢。

0 投票
1 回答
249 浏览

authentication - 如何在 Hashicorp 的 Vault 中管理代币

我正在为我的团队实施 Vault 以使用和存储机密,我们希望保持简单,因此我们决定使用默认令牌身份验证。

问题是我找不到管理已创建令牌的方法,因此如果我想撤销某个人的令牌,我确切知道要撤销哪个令牌。

有谁知道如何在 Vault 中管理令牌?

0 投票
2 回答
261 浏览

c# - 在子应用程序中阻止 web.config 继承

我们有一个遗留的 .NET 解决方案,它结合了 MVC 和 WebForms 的东西,以及一些 Web API 项目作为网站根目录下的应用程序。显然,这些 Web API 应用程序将继承网站的 web.config 设置。

我们还有另一个项目——限界上下文——用于 SSO 身份验证,它位于同一根文件夹内,因此也继承了网站的 web.config 设置。此限界上下文应用程序是使用 .NET Core 构建的。

我们最近开始使用 Azure Key Vault 来存储我们的机密,并且要在本地使用这些机密,我们正在使用 secrets.xml 文件。所以根网站的web.config看起来是这样的……

这是问题所在:身份验证有界上下文项目抛出异常,因为它找不到Microsoft.Configuration.ConfigurationBuilders.UserSecrets程序集 - 因为它继承了网站的配置,它需要知道该配置部分的全部内容。

但是,如果在 .NET Core身份验证项目中引用该 NuGet 包,我会收到消息...

此软件包可能与您的项目不完全兼容。

...它会自动回滚。

因此,如果我无法UserSecrets在 .NET Core 子应用程序中引用程序集,那么如何让它识别<configBuilders>继承的配置文件中的部分?

我也试过删除元素......

...来自根配置文件,但子应用程序随后会看到该<configBuilders>元素并且无法识别它。

所以问题归结为:

  1. 子应用程序需要在其中<configBuilders>定义元素的 NuGet 包。
    如果不...
  2. 子应用程序看到<configSections>/<section name="configBuilders" />元素并且需要知道它是在哪里定义的。或者,我在子应用程序中
    删除该元素,然后...<section name="configBuilders" />
  3. 子应用程序看到<configBuilders>元素并且需要知道哪个配置部分定义了它。
0 投票
0 回答
253 浏览

c# - 在自动生成的路径中找不到 secrets.xml

我正在尝试使用本地 secrets.xml 文件,但错误告诉我找不到它。

我右键单击该项目并选择“管理用户机密”,它为我创建了以 GUID 命名的文件夹和文件。相同的 GUID 出现在如下userSecretsId属性中...

但在运行时出现异常,显示找不到该文件。

然后我切换到使用userSecretsFile并将文件的副本粘贴到 C:\tmp\secrets.xml。这行得通。

所以我然后粘贴了自动生成的secrets.xml的路径 -......

...进入userSecretsFile属性...

...并且仍然抛出异常,说找不到文件。

我正在以管理员权限运行 Visual Studio 2019。为什么它似乎无法访问该文件?

0 投票
2 回答
5979 浏览

amazon-web-services - Lambda 函数无法访问 Secrets Manager

我编写了一个 lambda 函数来访问数据库,因此第一步是从 AWS Secrets Manager 获取密钥。我有一个私有 VPC 以及与 lambda 函数关联的子网、NAT 网关和安全组。我也有secretsmanager.Secret.grantRead(lambda_exec_role),所以 lambda 应该可以访问 Secrets Manager。

由于某种原因,当我在 API Gateway 中测试它时,我在 CloudWatch 中得到了 "errno": "ETIMEDOUT" 和 "code": "NetworkingError"。从我在 API 中的打印日志来看,获取秘密失败了。

我还尝试为 Secrets Manager 添加一个 VPC 端点,如此处所示,但仍然出现相同的错误。

感谢这里的任何人可以帮助我或提供一些提示。

非常感谢!

0 投票
4 回答
2666 浏览

asp.net-core - 在程序集中找不到“UserSecretsIdAttribute”,但它存在并且添加了正确的包

我遵循本教程:https ://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-3.1&tabs=windows#access-a-secret

在我添加了Microsoft.Extensions.Configuration.UserSecrets包的 .NET Core 3.1 项目中,我单击了项目以管理机密,文件已在AppData目录中创建,并且UserSecretsId已自动添加到.csproj文件中。因为Host.CreateDefaultBuilder没有加载秘密我决定手动添加它们

但后来我得到

我已经检查了预期描述中的建议,两个困境都得到了满足。