也许是一些不太好回答的问题,但我已经搜索过了,但还没有找到最好的方法来处理自签名证书(从opsec的角度来看)来加密我的Debian服务器上被篡改的服务之间的通信,比如Redis、Authelia、维护者等等。
证书被创建和签名,所有相关容器都为证书密钥对的主机安装卷做好了准备。
所以问题很简单:
/docker/appdata/portainer/config。顺便说一下。我的对接器被设置为一个单节点群,所有的容器都部署在堆栈部署中,并与自定义的码头桥接器网络和通信正确地连接在一起,所以我的问题只与cert+key对的处理有关。
事先非常感谢..。
发布于 2021-04-15 14:01:36
我是否只是将证书密钥对存储在已经挂载到容器中的文件夹中,例如/docker/appdata/portainer/config?
我建议使用码头秘密。您可以选择使用docker secret create创建秘密,或者从主机上的文件中加载它们。例如:
version: '3.9'
services:
app:
image: ubuntu
secrets:
- source: my-cert
target: /certs/my-cert.crt # Load it into /certs/my-cert.crt, default is /run/secrets/{secret_name}
mode: 0400 # Read only by owner, default is 444
# uid: '0' # Default UID is root, change if needed.
# gid: '0' # Default GID is root, change if needed.
- source: my-other-cert
target: /certs/my-other-cert.crt
mode: 0400
secrets:
my-cert:
external: true # Load cert from a secret made with "docker secret create"
my-other-cert:
file: ./some-cert.crt # Load cert from a file on your host machine谁应该是所有者: certs+keys对的组、根用户、运行容器或其他东西的用户?
几乎肯定是根用户,除非是另一个在容器中运行的用户。您可以通过秘密上的uid和gid选项来配置它。
应该为certs+key对设置哪些权限?
一般情况下,您需要400或444。使用机密有一个额外的好处,使这些文件不能从容器(甚至根目录)写。您可以在机密上使用mode选项来配置这个选项。
如果您要从磁盘上的文件中加载一个秘密,而不是使用docker secret create,那么它应该来自所有群集节点上可访问的共享存储。我知道你说这是一大群人,只是为了清晰起见。
https://stackoverflow.com/questions/67108184
复制相似问题