应用程序的容器化包括在虚拟容器中包装应用程序代码及其依赖项(所需的库、框架和配置文件)。该 *** 有助于在不降低效率的情况下在各种计算环境和基础设施中进行移植和一致运行。
Docker它是一个特别受欢迎的容器平台。组织使用Docker开发应用程序具有以下特点:
- 高效优化
- 高度可扩展
- 便携的
- 敏捷
Docker通过其轻量级运行环境共享底层操作系统,托管支持容器DevOps环境应用程序。Cloud-Native框架的关键元素,Docker为您的软件开发生命周期(SDLC)它带来了许多好处。但这些好处并非没有风险。你可能会面临复杂性,尤其是在保护方面Docker框架方面。
默认情况下,Docker容器是安全的。但是,为了防止潜在的安全风险,你必须知道可能的漏洞。
因此,本文将讨论三个关键领域的保护Docker架构的更佳实践:
- 基础设施
- 镜像
- 访问和认证
让我们开始吧。
1.保护Docker基础架构
容器是一个虚拟单元,可以托管应用程序。因此,容器可以容纳:
- 代码二进制
- 配置文件
- 相关依赖
由于容器是云原生设置的基础,因此在整个容器生命周期中保护其免受潜在攻击媒体的侵害至关重要。保护这个框架的整体 *** 不仅仅是保护它Docker还保护其基础设施。
让我们分解保护基础设施安全的更佳 *** ,看看它是如何工作的。
定期更新您的Docker版本
首先,确保你的Docker版本是最新的。过时的版本很容易受到安全攻击。新版本通常包括修复程序和错误的修复程序,以解决旧版本的漏洞。
主机环境也是如此:确保支持的应用程序是最新的,没有已知的错误或安全漏洞。
保持容器清洁
与精益设置相比,扩展的容器环境扩大了攻击面,更容易出现安全漏洞。为了避免这种情况,请将您的容器配置为包含使其按预期运行的必要组件:
- 软体套件
- Library
- 配置文件
此外,应定期检查主机实例中是否有未使用的容器和基本映像,并丢弃那些未使用的容器和基本映像。
配置API和 ***
Docker Engine使用HTTP API通信 *** 。配置不当API黑客可以使用的安全漏洞。
为避免这种情况,请安全配置API保护你的容器,是的API限制容器的公开显示。一种 *** 是通过使用基于证书的身份验证来实现加密通信。
(获得相关保护Docker API更详细的信息*。)*
限制系统资源的使用
限制每个容器可用的基础设施资源比例。这些基础设施资源包括:
- 中央处理器
- 内存
- *** 带宽
Docker使用控制组来限制不同过程之间的资源分配。该 *** 可以防止损坏的容器消耗过多的资源,这可能会中断安全漏洞时服务的交付。
保持主机隔离
在不同的主机上运行具有不同安全要求的容器。
通过不同的命名空间维持容器的隔离性可以保护关键数据免受全面攻击。这种 *** 还可以防止嘈杂的邻居在基于池的隔离上消耗过多的资源,从而影响其他容器的服务。
限制容器功能
默认情况下,Docker其核心服务可能需要或不需要的其他特权可以维护和获得容器。
更好的 *** 是将容器的权限限制为仅运行其应用程序所需的权限。因此,请使用以下命令删除Docker容器的所有特权:
复制
然后,使用**–cap-add**标志向容器添加特定特权。这种 *** 限制了Docker在安全漏洞期间使用容器获得不必要的特权。
调用过滤系统
应用系统调用过滤器,使您可以选择容器Linux什么调用内核?
这种 *** 启用了安全的计算模式,从而减少了可能的暴露点,从而避免了安全事故的发生,尤其是避免了对内核漏洞的利用。
2.保护Docker镜像
现在,让我们转向基础设施以外的更佳安全实践。Docker可执行代码模板用于创建容器和宿主应用程序。Docker图像由运行时库和根文件系统组成,使图像成为Docker容器最关键的基础之一。Docker以下是一些更佳实践。
使用信任的镜像
从配置正确的最新可信源中获取Docker基本映像。
另外,通过启用Docker内容信任功能可以过滤掉可疑的不安全来源,确保Docker图像签名正确。
定期扫描镜像
维护可靠的Docker图像安全配置文件并定期扫描是否存在漏洞至关重要。在下载图像之前,请执行此操作,以确保安全使用。
使用常规图像扫描,您也可以通过以下 *** 更大限度地减少曝光:
- 审核关键文件和目录
- 用最新的安全补丁更新它们
支持最小基本镜像
避免在较小的Docker大型通用镜像在镜像上使用Docker为了更大限度地减少安全漏洞,镜像提供了两个有价值的结果:
- 减少攻击面
- 默认配置更容易被黑客攻击
3.访问及身份验证管理
Docker Security最后一类涉及访问和身份验证。
通过访问控制保护Docker Daemon安全通常被称为应用的之一层安全。如果没有保护Docker Daemon一切都会很脆弱:
- 基础操作
- 应用领域
- 业务职能
特权最小的用户
默认情况下,Docker具有容器中的工艺root这些特权授予他们管理访问容器和主机的权限。这为黑客可能使用的容器和底层主机打开了安全漏洞。
为避免这些漏洞,请设置更低特权用户,该用户只授予操作容器所需的特权。或者,禁止使用特权用户限制操作。
使用机密管理工具
不要存储秘密Dockerfile这可能会使访问Dockerfile用户放错位置,滥用或损坏整个框架的安全。
更好的标准 *** 是安全加密第三方工具(例如Hashicorp Vault)密钥机密。此 *** 可用于访问凭证以外的其他容器机密。
限制直接访问容器文件
临时容器需要一致的升级和错误的修复。因此,每次用户访问它们时,该容器文件都会公开。
作为更佳实践,请在容器外部维护容器日志。这大大降低了直接使用容器文件的一致性。它还允许您的团队解决问题,而无需访问容器目录中的日志。
启用加密通信
将Docker Daemon访问权限仅限于少数关键用户。此外,通过强制执行一般用户SSH限制直接访问容器文件。
使用TLS加密主机级通信的证书。禁用未使用的端口,使默认端口仅公开供内部使用也很重要。
总结
保护Docker能保护你的IT环境,IT环境安全是你永远不应该忽视的关键任务。
为了确保云本地框架的安全,之一步始终是考虑框架关键元素的漏洞。因此,组织应围绕容器及其基础设施进行维护强大的安全配置文件。
虽然端到端安全的实施 *** 可能不同,但目标始终是考虑脆弱点,采取更佳实践来降低风险。
原文链接:https://www.bmc.com/blogs/docker-security-best-practices/