当前位置: 首页 > 面试题库 >

Docker和保护密码

程英资
2023-03-14
问题内容

我最近一直在试验Docker,以构建一些可玩的服务,而一直困扰我的一件事是将密码放入Dockerfile。我是一名开发人员,因此将密码存储在源代码中感觉像是一拳。这是否值得关注?关于如何在Dockerfiles中处理密码是否有良好的约定?


问题答案:

绝对是一个问题。Dockerfile通常签入存储库并与其他人共享。一种替代方法是在运行时提供任何凭据(用户名,密码,令牌,任何敏感内容)作为环境变量。通过-e参数(对于CLI上的各个var)或--env- file参数(对于文件中的多个变量)可以做到这一点docker run。阅读本文,了解如何将环境与docker-compose结合使用。

使用--env-file绝对是更安全的选择,因为这样做可以防止出现秘密(ps如果使用的话)set -x

但是,env var也不是特别安全。通过可以看到它们docker inspect,因此,任何可以运行docker命令的用户都可以使用它们。(当然,任何有权访问docker主机的用户也都具有root用户。)

我的首选模式是将包装脚本用作ENTRYPOINTCMD。包装器脚本可以首先在运行时从外部位置将机密导入容器中,然后执行应用程序以提供机密。具体的运行机制取决于您的运行时环境。在AWS中,您可以结合使用IAM角色,密钥管理服务和S3将加密的机密存储在S3存储桶中。像HashiCorp
Vault
或credstash之类的东西是另一种选择。

AFAIK没有使用敏感数据作为构建过程一部分的最佳模式。实际上,我对此主题有一个特别的问题。您可以使用docker-squash从图像中删除图层。但是Docker中没有用于此目的的本机功能。

您可能会发现容器中有关config的摇晃注释很有用。



 类似资料:
  • protection([string $password]); 示例一 $config = ['path' => './tests']; ​ $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('tutorial.xlsx'); ​ $filePath = $fileObject

  • 问题内容: 目前,据说MD5部分不安全。考虑到这一点,我想知道使用哪种机制进行密码保护。 这个问题,“双重哈希”密码是否比仅哈希一次密码安全? 建议多次散列可能是一个好主意,而如何对单个文件实施密码保护?建议使用盐。 我正在使用PHP。我想要一个安全,快速的密码加密系统。将密码哈希一百万次可能更安全,但也更慢。如何在速度和安全性之间取得良好的平衡?另外,我希望结果具有恒定数量的字符。 哈希机制必须

  • 我想保护Spring Boot API,使它只对具有有效API密钥和秘密的客户机是可访问的。但是,由于所有数据都是匿名的,程序内部没有身份验证(使用用户名和密码的标准登录)。我试图实现的只是所有API请求都可以仅用于特定的第三方前端。

  • OAuth 2.0 资源所有者密码授权 允许一个客户端发送用户名和密码到令牌服务并获得一个表示该用户访问令牌。 (OAuth 2.0) 规范 建议仅对“受信任”的应用程序使用资源所有者密码授权。一般来说,当你想要验证一个用户并请求访问令牌的时候,使用交互式 OpenID Connect 流通常会更好。 不过,这个授权类型允许我们在 IdentityServer 快速入门中引入 用户 的概念,这是我

  • 我试图保护Spring BootAPIendpoint。我希望只传递api密钥和秘密作为头的一部分来调用api。我尝试了这个链接中发布的代码。但是在头中使用授权调用api时拒绝访问。使用API key和secret保护Spring Boot API我想知道我应该作为头部的一部分传递什么,这样我就可以从API获得成功的响应。我做了以下步骤:我在application.properties中添加了以下

  • 问题内容: 我有一个受密码保护的Excel电子表格。我需要打开此电子表格并从中读取数据。我一直在尝试使用POI API无济于事。首选Java解决方案,但任何想法都会有所帮助。 编辑:是的,我有密码。该文件在excel中受密码保护;必须输入密码才能查看电子表格。 Edit2:我无法使用带有密码的POI打开它,我在寻找替代解决方案。 问题答案: 您可以使用JExcelApi。 自从我这样做已经有一段时