零信任的热度自然吸引了大量市场上的关注。尽管如此,零信任并不只是一个空洞的术语:它代表了对未来安全性的一些深刻变革的想法。那么,零信任具体是什么,为什么它会突然变得如此重要?零信任对 Kubernetes 用户来说具体意味着什么呢?
以往“信任但要验证”的方式已被证明对云计算复杂的分布式特性无效,因此 Kubernetes 必须转向“从不信任,始终验证”的零信任模型思想,为业务提供更大的保护。
零信任
正如其名,零信任本质上是关于信任的。零信任是为了解决安全的核心问题之一:是否允许 X 访问 Y?换句话说,我们是否信任 X 访问 Y?
零信任是一种战略性网络安全模型,旨在保护现代数字业务环境,该环境越来越多地包括公共和私有云,SaaS应用程序,DevOps,RPA等。零信任的理念为:无论是处于网络界限之内或是之外,组织都不应该自动信任任何事物。
零信任模型
与 API 服务器的连接,控制平面内的通信,以及控制平面和 Kubelet 之间的通信,应该只被配置为可使用 TLS 连接到达。尽管 API 服务器可以通过向 kube-apiserver 提供 -tls-cert-file=[file]和-tls-private-key-file=[file]标志来轻松配置为使用 TLS,但考虑到 Kubernetes 能够根据需要快速扩大或缩小规模,在集群内配置连续的TLS证书管理是具有挑战性的。为了解决这个问题,Kubernetes 引入了TLS引导功能,它允许在 Kubernetes 集群内部自动进行证书签署和 TLS 配置。
Kubernetes 上的零信任
零信任策略对 Kubernetes 用户在一定程度上会简单很多。尽管 Kubernetes 本身的复杂性和各种缺点,但它是一个范围明确的平台,有着明确的安全模型和明确的扩展机制。这让 Kubernetes 成为实施零信任策略颇具成效的领域。
在 Kubernetes 环境中的零信任目前最多的关注在两个方向:
网络零信任
在 Kubernetes 中实现零信任网络最直接的方法之一是通过 Service Mesh(服务网格)。服务网格利用 Kubernetes 中强大的 sidecar(从容器),将平台容器可以在部署时与应用容器一起动态插入,作为一种后期绑定操作功能的方式。
微服务的 API 安全
API 已成为现代应用程序的中枢神经系统,将关键信息和数据从应用程序的一部分带到另一部分,或从一个应用程序带到另一个应用程序。因此,在保护应用程序时,API 安全性应该是重中之重。对于公共 API 尤其如此,全世界的用户都可以访问软件组件和敏感数据。
采用零信任框架将重点从单一的保护措施转移到不同的支柱(用户、设备、网络、应用程序和数据)。这可以帮助您确保 API 访问的每个部分,无论是在边界内还是边界外,都采用最小权限方法并受到持续监控。
为了在不停止或减慢您的应用程序的情况下有效地实现这样的目标,编排和自动化将是关键的决定步骤。
Kubernetes中的三个最佳实践
Kubernetes 提供了灵活性,既是优势但也增加了复杂性,为了在不同的网络环境中运行,为服务和工作负载引入了许多配置选项。Kubernetes 部署考虑以下三个零信任模型的最佳实践,以提升安全保护和工作效率。
优化应用配置和访问权限
团队需要为服务和跨集群操作提供一致的配置。虽然 Kubernetes 提供了多种配置选项,但过多的选项会增加安全问题出现的几率。使用零信任框架,组织可以对服务进行持续验证并将其部署到多个集群,而不会危及任何安全性。通过在授予它们对应用程序和服务的任何安全权限之前仔细检查这些配置,组织可以加强分布式 Kubernetes 集群的安全性。
使用零信任模型提高 Kubernetes 安全性的另一种方法是只为软件提供运行所需的权限和功能。虽然确定软件所需的确切权限和功能并不是那么容易,但更好地了解这些元素可以降低安全风险。对于云端的容器编排环境,相比本地环境,赋予有限的权限和能力更为重要。
记录和监控数据
重要的是提供必要的安全数据,使开发人员和安全专家能够衡量、预测、避免和防御潜在的安全风险。例如,组织应该记录服务识别的用户 ID 或组 ID,尤其是在集群环境。这可确保组织使用所需的 ID 来帮助服务和软件团队更快地识别匿名攻击。日志记录也将是在云原生环境中提供安全可追溯性的信息的关键部分。
有了足够的安全数据,团队还可以重新思考和优化他们的安全实践和应用程序更新,以应对不断变化的技术环境,帮助确保持续抵御攻击。
专注于人员和流程管理
除了来自外部网络的用户和设备之外,合作伙伴、利益相关者或任何有权访问组织的数据库和容器化应用程序的人都是潜在的 Kubernetes 安全威胁。因此,培训内部人员以避免潜在的内部威胁至关重要。如上所述,组织可以从记录和监控平台数据开始,同时让所有利益相关者了解市场上普遍存在的各种攻击策略。
除了适当的培训之外,优化日常运营中的安全流程有助于支撑零信任模型,并最大限度地减少网络攻击对企业云上服务的影响。一些推荐的安全流程包括积极审查网络管理、防火墙清单以及定期检查容器和软件镜像。
由于 air-gapped 为云中的复杂部署模式提供了军事级安全级别,我建议组织将这些操作流程与 air-gapped 实现相结合,为 Kubernetes 项目提供额外的安全级别。
结论
在生产环境中部署和管理 Kubernetes 时,安全性不再是事后的想法。违规、中断和数据盗窃是严重的网络安全问题,可能对组织产生不利影响。数据和信息记录、员工安全培训和流程优化等零信任实践是保护 Kubernetes 项目和 IT 基础架构的有效且实用的方法。通过实施这些实践,组织可以更好地保护 Kubernetes 部署。遵循这种零信任模型将使开发人员和运维人员无需担心集群和基础设施安全问题,同时使安全团队能够专注于安全性,而不是迷失在 Kubernetes 配置中。
关于HummerRisk
HummerRisk 是开源的云原生安全平台,以非侵入的方式解决云原生的安全和治理问题,核心能力包括混合云的安全治理和K8S容器云安全检测。