问题标签 [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.

0 投票
1 回答
1042 浏览

python - Docker - 让我的应用程序使用秘密而不是环境。变量

我的 Django 应用程序使用了很多环境变量,总共大约 35 个。目前,所有这些都由我在启动应用程序堆栈之前获取的 .env 文件处理。我想我不必指出这是一种非常不安全的方式,特别是如果它是关于生产中的密钥的......

现在我的问题是我真的不明白如何从 .env 文件切换到秘密,因为我不明白如何在我的容器中处理秘密。例如,Django 使用连接字符串连接我的 MySQL 数据库,见下图:

大多数时候,我使用“env.str”来获取我在启动时传递给容器的变量。那么如何使我的 Django 应用程序与 docker secrets 一起工作,并且如果可能的话,继续以如上所示的方式获取变量?是否可以在我的 docker-entrypoint.sh 开始时加载所有需要的变量,如果可以,如何实现?

我已经找到了这个解决方案:

在启动时触发以使我的环境变量就位是否有意义?见:https ://github.com/grafana/grafana-docker/issues/149

谢谢阅读

0 投票
1 回答
354 浏览

docker - Docker:用 docker-compose 中的秘密替换文件内容

我正在尝试使用 docker 和 docker-compose 设置具有模式和一些用户的数据库。用户是 Web 应用程序的系统用户,它需要密码以确保安全。为此,我想我可以简单地将文件中的模板值替换为密钥中的值。但是,这不起作用。

用秘密值替换文件内容的正确方法是什么?

Dockerfile

码头工人撰写

输出是:

0 投票
2 回答
187 浏览

docker - 无法访问主管、Docker 和 Swarm 机密

我正在努力用 docker、symfony、教义和 swarm secrets 来成为工作主管。

在我的 Dockerfile 中,我正在这样做:

所以我启动了如下所示的主管:

我的主要程序:

它以入口点启动 PHP。在这个入口点,我只在 prod 中使用 swarm secret:

在入口点内,命令 bin/console 运行良好。如果我处于开发模式,它会使用我的 .env 文件中的本地 database_url,如果我处于生产模式,它会使用 docker compose 中定义的秘密。

当我在主管中有第二个程序时会出现问题,如下所示:

和 launch.sh :

在这里它失败了一个看起来像这样的 Doctrine 错误:

实际上,'myname' 是我的 database_url dsn(用于学说)的 .env(用于开发环境)中的默认值。

这个主管问题与我不能自己执行教条命令的事实有关。我的意思是当我跑步时:

连接到我的容器,在容器内部之后我想执行如下操作:

它也不起作用(与主管相同的错误)。

总而言之, docker swarm secrets 在我自己或主管执行时不会“计算”,他们正在读取 .env 中的默认值,而不是读取 swarm secret 中的值......我不知道如何解决这个问题。我试图添加到 docker exec -e DATABASE_URL=/run/secrets/doctrine_dsn 但它也不起作用(除非我给出秘密原则 dsn 的真实值)。

任何帮助都会非常感谢

0 投票
1 回答
121 浏览

docker - 带有传递参数的 Dockerfile RUN 命令

我正在尝试将参数传递给 docker build 以使其在 Dockerfile 中执行为

但这会在构建期间失败,因为

但是当我直接在RUN命令中使用它时

那可行。

有什么想法吗?

0 投票
1 回答
492 浏览

spring-boot - 如何使用 docker secret 设置属性 spring.cloud.config.server.git.password

我想 dockerize 我的 spring 云配置服务器应用程序。我正在创建一个 docker secretgit-repo-pass来存储 github 帐户密码。我正在SPRING_CLOUD_CONFIG_SERVER_GIT_PASSWORD使用 docker 机密的默认路径设置环境,即/run/secrets/git-repo-pass. 但是,当我运行 compose 并检查容器时,我看到环境实际上是设置为路径而不是该路径的内容。

在下面分享我的 docker-compose.yml 文件,

抛出异常: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalStateException: Cannot load environment] with root cause

如果有办法使用 docker secrets 加载应用程序属性,请告诉我。谢谢你 !!

0 投票
1 回答
4313 浏览

docker - 在 docker compose 中为运行状况检查指定 postgres 参数的安全方法

我正在使用 Secrets 来管理用户名、密码和 dbname,并使用 Docker 堆栈将 Postgres 作为数据库。我现在想使用 Docker 提供的健康检查功能。

码头工人-compose.yml

正如本healthcheck:节中所指出的,我将使用运行状况检查公开数据库用户名和数据库名称。我的问题(根据答案进行一些跟进):

  • 有关系吗?docker-compose.yml 文件不在运行此代码的主机上。因此,潜在的攻击者将无法从那里访问此信息......但是,由于 docker 将执行运行状况检查,它可能会在该容器中实时跟踪(shell?docker configs 存储该过程的文件?)
  • 如果它确实重要,我如何在不暴露该信息的情况下执行健康检查?我必须直接使用这些秘密,但是我不知道如何使用docker-compose文件中的秘密......

想法?解决方法?

额外细节:

  • 我目前正在检查数据库是否从使用它的(烧瓶)容器中启动。例如,烧瓶服务检查它是否可以 ping 数据库。但是,我宁愿将事物分开,而 DB 容器应该是一个告诉它是否健康的容器(imo)。
0 投票
1 回答
1469 浏览

docker - Cannot access to secrets .net core with Docker

In my .net core Api i use secrets.json:

Evidently in my .csproj:

And use in my Startup.cs ConfigureServicesMethod():

If run the application on IISExpres it works (get the secret key).

But if i run the Api in docker like docker-compose, then in runtime the secret key is not obtained: enter image description here

In my docker-compose.override file i have:

Additional, i have defined the APPDATA environment variable:

enter image description here

How can i access to secret key when i run the Api in docker ?

0 投票
2 回答
391 浏览

azure - 如何在 Azure DevOps 的“deployment.template.json”中替换 IoT Edge 环境变量

我想将 Azure DevOps 用于 IoT Edge 项目,其中一些机密应通过 json 文件传递​​。这是 deployment.template.json 文件的片段:

本地一切正常。我有 .env 文件,并且 json 中的值将在构建期间正确替换。

如何在 Azure DevOps 中使用相同的行为?

我已经声明了 devops 管道变量,但是 json 文件中的占位符没有从变量中替换。

0 投票
1 回答
328 浏览

docker - 使用 Docker Secret 作为 Quarkus 数据源密码

我目前在一个项目中工作,该项目的客户端需要相对较高的安全级别,并且生产数据库密码不与我们开发人员共享。

我正在使用Quarkus version 1.9.2.Final部署在Docker Swarm. 我想知道是否有办法将数据源密码存储在 Docker Secret 中并在我的application.properties文件中使用该密码

我的 application.properties 文件

我的 pom.xml 配置文件:

我的 compose.yml 文件:

目标是以下之一:

  1. 用Docker Secret 中的数据库密码替换prod-dbpass我的文件中的。pom.xml

或者

  1. 从文件中完全删除该db-pass属性,并使用来自 Docker Secret 的数据库密码在文件中设置该属性。pom.xmlquarkus.datasource.passwordapplication.properties
0 投票
2 回答
223 浏览

docker-compose - docker swarm:使用环境变量的秘密

我正在使用 docker swarm 和 portainer 来部署以前直接在 proxmox vms 中的应用程序。

我想改进集群集群的部署流程和秘密的配置。

我用 portainer 定义了 swarm 集群中的秘密

我从 wordpress 开始,但这些秘密并不像我预期的那样起作用。我想使用秘密来完成环境变量,但这保持为空:

这样做的正确方法是什么?