加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在构建期间将凭据带入Docker容器

发布时间:2020-12-16 03:39:10 所属栏目:安全 来源:网络整理
导读:我想知道在docker构建期间是否有关于如何将凭证注入Docker容器的最佳实践. 在我的Dockerfile中,我需要获取需要基本身份验证的资源Web服务器,并且我正在考虑如何在不对其进行硬编码的情况下将凭据带入容器的正确方法. 怎么样的.netrc文件并使用它与curl netrc

我想知道在docker构建期间是否有关于如何将凭证注入Docker容器的最佳实践.
在我的Dockerfile中,我需要获取需要基本身份验证的资源Web服务器,并且我正在考虑如何在不对其进行硬编码的情况下将凭据带入容器的正确方法.

怎么样的.netrc文件并使用它与curl –netrc …?但安全呢?我不喜欢将凭据与Dockerfile一起保存在源存储库中.

有没有例如使用参数或环境变量注入凭证的方法?

有任何想法吗?

最佳答案
一些新的Docker功能使其比过去更加优雅和安全.新的multi-phase builds让我们用一个Dockerfile实现构建器模式.此方法将我们的凭据放入临时“构建器”容器中,然后该容器构建一个不包含任何秘密的新容器.

您可以选择如何将凭据获取到构建器容器中.例如:

>使用环境变量:ENV creds = user:pass and curl https://$creds@host.com
>使用build-arg传递凭据
>将ssh密钥复制到容器中:COPY key /root/.ssh/id_rsa
>使用Credential Helpers使用您自己的操作系统自己的安全凭证

Multi-phase具有多个FROM的Dockerfile:

## Builder
FROM alpine:latest as builder
#
# -- insert credentials here using a method above --
#
RUN apk add --no-cache git
RUN git clone https://github.com/some/website.git /html

## Webserver without credentials
FROM nginx:stable
COPY --from=builder /html /usr/share/nginx/html

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读