问题标签 [docker-secrets]
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.
spring - 在 Spring Boot 应用程序中提取 Docker 机密而不是使用属性文件
我在 docker swarm 堆栈上运行一个 spring boot 应用程序,并且想将 docker secrets 用于令牌秘密、api 密钥等......创建秘密并使它们在我正在运行的 docker 容器中可用是没有问题的以下撰写文件:
秘密是由printf some_secret | docker secret create tokenSecret -
在使用 docker secrets 之前,我将属性存储在我的application.properties
文件中:
并可以通过以下方式访问它们:
现在,使用 docker secrets 并删除 application.properties,getTokenSecret
andgetApiKey
方法将返回 docker 容器中 secrets 的文件位置:"/run/secrets/tokenSecret"
而不是 secret 的内容。将秘密内容从容器文件系统加载到我的应用程序中似乎是一项简单的任务,但我仍然不知道最好的方法是什么。
docker - 如何使用 Docker-Compose 从 Hashicorp Vault 存储和检索秘密?
我已经设置了 Hashicorp Vault 的实例。我已经成功地写入和读取了它的秘密。让 Vault 启动并运行,这很容易。现在,如何使用 Vault 作为存储来替换 docker-compose.yml 中的 .env 文件?如何从 Vault 中读取所有 docker-compose 文件中的机密信息?
更困难的是:如何动态生成密钥以访问 Vault 中的机密,然后在我的 docker-compose.yml 文件中使用这些密钥,而无需在每次重新启动堆栈时编辑这些文件?该过程如何自动化?简而言之,我究竟如何利用 Hashicorp Vault 来保护 .env 文件中暴露的秘密?
我已经阅读了他们所有的文献和博客文章,但无法找到任何概述该过程的内容。我被卡住了,任何提示将不胜感激。
注意:这不是关于使用 docker-compose 运行 Hashicorp Vault 容器的问题,我已经成功地做到了。
另请注意:我不能修改容器本身;我只能修改 docker-compose.yml 文件
docker-compose - 如何为 gitlab-runner CI 挂载/重用 docker-compose 机密?
为了清楚起见,我说的是可用于3.x的secrets
配置。
我不是在谈论使用环境变量(来自主机或来自 Gitlab CI/CD 设置)传递密钥/令牌。docker-compose
假设我有这个docker-compose
配置:
当我手动启动容器时
/run/secrets/my_app_secrets在容器内变为可用,包含与secrets.txt完全相同的内容。路径/run/secrets/由secrets
配置定义。
现在我需要对 Gitlab CI 管道使用相同的设置。不幸的是,我似乎找不到要放入.gitlab-ci.yml或/etc/gitlab-runner/config.toml的配置,这将允许我指定相同的secrets
配置。我确定它没有安装,因为我使用了一个自定义ENTRYPOINT
脚本来检查/run/secrets/my_app_secrets文件并且它不存在。
我现在的当前解决方案是使用[runners.docker]volumes
部分下的配置,并将/path/to/secrets.txt挂载为常规卷。
但我认为这种重复配置,我手动指定/run/secrets/secret_name路径。
还有另一种方法可以secrets
为 gitlab-runner 指定配置吗?
环境细节:
- Gitlab CE 12.8.6
- gitlab-runner 12.7.1
- 码头工人 19.03.6
- 码头工人撰写 1.24.0
docker - Docker secret 挂载一个空字符串
我有一个 docker 服务(在 swarm 内),它使用两个秘密作为环境变量(证书的签名证书和密码)
秘密是使用以下命令创建的:
docker-compose.yml:
在 (.netcore-) 服务中,我使用以下代码检索变量:
证书本身工作得很好,并且存在于服务中。问题是密码:它是一个空字符串。
如果我将 docker-compose 更改为此它可以正常工作:
所以我怀疑安装飞机文本秘密有些奇怪。
我还尝试了这些命令来创建秘密:
知道我在做什么错吗?或者它可能是一个错误?
kubernetes - 使用--from-file而不是文件名时如何设置kubernetes密钥名称?
--from-file
使用文件名以外的其他方法时,有没有办法设置 kubernetes 密钥名称?
我secrets.json
在容器中使用了一堆不同的配置文件。但是,为了组织我的文件,它们都没有secrets.json
在我的主机上命名。例如secrets.dev.json
或secrets.test.json
。我的应用程序只知道读取secrets.json
.
当我创建一个秘密时kubectl create secret generic my-app-secrets --from-file=secrets.dev.json
,这会导致密钥名称为secrets.dev.json
而不是secrets.json
。
我将我的秘密内容作为文件安装(这是从 Docker swarm 迁移的遗留物)。
因为secrets.json
它不作为键存在,因为它使用了文件名 ( secrets.dev.json
),所以它最终变成了一个目录。我最终得到了这个挂载路径:/run/secrets/secrets.json/secrets.dev.json
.
我希望能够将密钥名称设置为,secrets.json
而不是使用secrets.dev.json
.
sql-server - Docker:从秘密中设置 MSSQL 密码
我正在尝试从一个秘密中设置我的 MSSQL 密码,但我不知道为什么我似乎没有正确地将我的秘密设置为密码。
这是我的 YAML 文件:
然后我检查了这个秘密是我所期望的,但即使这样做它也表示登录失败,所以我怀疑环境变量MSSQL_SA_PASSWORD_FILE
并没有真正起作用。
bash - 如何创建一个秘密码头秘密?
我需要创建一个 MariaDB docker 容器,但需要设置 root 密码,但是密码是使用命令行中的参数设置的,这对于.bash_history
.
我尝试使用秘密print pass | docker secret create mysql-root -
,但有同样的问题,密码保存到.bash_history
. 码头工人的秘密不是很秘密。
我尝试使用交互式命令:
但是,很丑xD。为什么创建 docker secret 而不将其保存到 bash 历史记录但不删除所有 bash 历史记录的更好方法是什么?
amazon-web-services - 我可以在 AWS ECS 基础设施中使用 docker 密钥吗?
我正在努力寻找将秘密配置数据传递给我的 Node.Js 应用程序的最佳方式。
问题是我需要它在我的本地机器上运行,在 CI 环境中进行测试和登台,以及在生产 (AWS) 上运行。
我正在考虑使用此处描述的 docker 机密: https ://medium.com/better-programming/how-to-handle-docker-secrets-in-node-js-3aa04d5bf46e
问题在于,它仅在您将 Docker 作为服务(通过 Swarm)运行时才有效,我可以在本地执行此操作,但不能在 AWS ECS 和 CI 上执行。(或者我在那里遗漏了什么?)
然后我也可以使用 Amazon 机密,但我如何在我的 CI 环境和本地环境中获取它们?或者如果我没有互联网?
有没有一种方法可以制作一个单独的文件或者我可以在每个环境中使用的东西,无论它是我的本地文件docker run
还是CI
一个或AWS ECS
一个?
docker - 如何在 Docker 机密中设置密码?
我在js中有以下代码:
目前我们使用从 env 获取密码APP_PASSPHRASE
。现在我们的应用程序正在使用 Docker,在我们的 docker 文件中,您必须更新密码:
我读到 Docker 支持使用秘密的私人信息。我阅读了文档,但我无法弄清楚使用 Docker 机密添加对密码短语的支持的方法是什么。如果有人能解释我应该如何为该密码添加一个秘密,我会很高兴。