首页 > 解决方案 > Docker 镜像的安全性

问题描述

我正在考虑将 Rust 应用程序打包到 Docker 容器中。

该应用程序的当前版本包含用于通过服务帐户密钥注册到 Discord API 或 Google API 的各种凭据文件。

如果我这样打包我的应用程序,这些文件是否可以访问?

[编辑:添加 Dockerfile]

FROM rust:1.28.0

WORKDIR /usr/src/<application>
COPY . .

RUN cargo install --force --path .

CMD ["<application>"]

标签: docker

解决方案


切勿将实际凭据放入您和只有您可能无法访问的任何内容中。
你基本上有两个选择:

1) 让您的应用程序从其环境中提取所需的凭据,然后在启动容器时设置这些变量。见文档

2) 让您的应用程序从配置文件中读取凭据,该文件不会被拉入 docker 映像。然后,在运行容器时,将该文件挂载到其中,请参阅文档

您实际上可以同时做到这两个:拥有一个环境变量,告诉您的应用程序是否应该查找配置文件(可能在生产中),如果该变量未设置,请检查环境(用于开发)。

编辑:最好.dockerignore在构建上下文中创建一个文件,其中包含保存凭据的文件的名称(或路径)。


推荐阅读