像安全
易受攻击或受损的基础映像可能会给所有使用它作为基础的工作负载带来问题。因此,始终建议尽可能少地自定义容器的基础镜像(例如通过添加外部包或 SDK 库)。最好只使用来自经过认证的可靠来源的图像。
2.
注册表是容器化软件的镜像存储库。为了保证此类存储库的安全(防止不需要的访问和易受攻击的内容),您可以:
使用访问控制策略来限制访问/操作。
使用容器镜像签名。
最后,通过注册表服务的内置插件对映像进行连续扫描,以识别所使用的基础映像中的已知漏洞。
3. 确保部署阶段的安全
考虑将生产环境作为我们部署过 科威特电报数据 程的目标,可以通过多种方式确保此阶段的安全:
使用专用防火墙或网络安全规则/组对环境进行物理保护。
使用通常提供支持基于角色的安全性的安全 API 端点的编排平台。
使用“不可变”部署,即在发生更改时重新初始化。
4. 保护应用程序运行时的安全
在云原生架构的背景下遵循传统的最佳实践是很好的,例如:
为不同性质的工作负载创建单独的虚拟网络并且彼此断开连接。
对每个容器可以使用的通信通道/端口应用最小特权原则,因此仅公开严格必要的端口。
使用安全连接(基于 TLS)来确保流量加密。
5. 使用生命周期短的最小容器
容器并不意味着用作“服务器”。它们的定制和其中包含的文件必须保持在最低限度,以保持容器每个实例的短暂性。
6. 监控容器活动
后一个目标是通过实施保证容器化基础设施的以下组件的深度可观察性的机制来实现的:
主节点(在基于 Kubernetes 的编排的情况下);
集装箱发动机;
在容器中运行的工作负载;
容器化中间件和网络。
简而言之
为了避免遇到安全问题并保证容器安全,每个组织都必须审查其应用程序生命周期管理流程。有必要将所有核查、补救和监测机制融入其中。
为了最大限度地减少潜在的攻击面,您需要了解容器的主要安全问题,遵循结构化方法来确保软件供应链具有足够的安全级别,并应用我们在本文中列出的 最佳实践。
最后,必须将著名的左移付诸实践,从而从软件开发生命周期的初始阶段开始预测安全实践。这是DevSecOps理念的基石流程,如果您还没有了解过,我们建议您了解更多信息。我们还在致力于云原生安全的免费电子书中讨论了它。