零信任是一种设计安全架构的方法,其前提是每次交互都从不受信任的状态开始。这与传统的架构形成对比,传统的架构可能会根据通信是否从防火墙内部开始来确定可信度。更具体地说,零信任试图弥合依赖于隐式信任模型和一次性身份验证的安全架构中的差距。
OpenShift Container Platform可以在平台上运行的容器中添加一些零信任网络功能,而无需更改容器或其中运行的软件。Red Hat还提供了一些产品,可以进一步增强容器的零信任网络功能。如果您能够更改容器中运行的软件,那么Red Hat支持的其他项目可以添加更多功能。
探索零信任网络的以下目标功能。
公钥证书和私钥对于零信任网络至关重要。这些用于相互识别组件、进行身份验证和保护流量。证书由其他证书签名,并且存在一条到根证书颁发机构 (CA) 的信任链。网络中参与的所有内容最终都需要具有根CA的公钥,以便它可以验证信任链。对于面向公众的内容,这通常是一组全球已知的根CA,其密钥与操作系统、Web浏览器等一起分发。但是,如果私有CA的证书分发给所有方,则可以为集群或公司运行私有CA。
利用
OpenShift Container Platform:OpenShift在安装时创建集群CA,用于保护集群资源。但是,OpenShift Container Platform还可以创建和签名服务的证书,并在请求时将集群CA捆绑包注入Pod。服务证书由OpenShift Container Platform创建和签名,生存时间 (TTL) 为26个月,并在13个月时自动轮换。如有必要,也可以手动轮换它们。
OpenShift cert-manager 运算符:cert-manager 允许您请求由外部信任根签名的密钥。有许多可配置的发行者可以与外部发行者集成,以及使用委托签名证书运行的方法。cert-manager API 可被零信任网络中的其他软件用于请求必要的证书(例如,Red Hat OpenShift Service Mesh),或可直接被客户软件使用。
确保所有网络流量都已加密,并且可以识别端点。一个例子是相互 TLS(mTLS),这是一种相互身份验证的方法。
利用
OpenShift Container Platform:通过透明的Pod 到 Pod IPsec,可以通过 IP 地址识别流量的源和目标。出站流量可以使用IPsec 加密。通过使用出站 IP功能,可以使用流量的源 IP 地址来识别集群内流量的来源。
Red Hat OpenShift Service Mesh:提供强大的mTLS 功能,可以透明地增强离开 Pod 的流量以提供身份验证和加密。
OpenShift cert-manager 运算符:使用自定义资源定义 (CRD) 请求证书,这些证书可以被挂载供您的程序用于 SSL/TLS 协议。
在您可以使用 CA 签发证书后,您可以使用它通过验证连接另一端(用户或客户端机器)的身份来建立信任关系。这还需要管理证书生命周期,以便在证书受损时限制其使用。
利用
OpenShift Container Platform:集群签名的服务证书可确保客户端正在与受信任的端点通信。这要求服务使用 SSL/TLS,并且客户端使用集群 CA。必须通过其他方式提供客户端身份。
Red Hat Single Sign-On:提供与企业用户目录或第三方身份提供商的请求身份验证集成。
Red Hat OpenShift Service Mesh:连接到 mTLS 的透明升级、自动轮换、自定义证书过期和使用 JSON Web 令牌 (JWT) 进行请求身份验证。
OpenShift cert-manager 运算符:创建和管理应用程序使用的证书。证书可以通过 CRD 进行控制并作为密钥挂载,或者可以更改您的应用程序以直接与 cert-manager API 交互。
能够根据请求者的身份控制对服务的访问至关重要。这是由平台完成的,不需要每个应用程序都实现它。这允许更好地审核和检查策略。
利用
OpenShift Container Platform:可以使用 Kubernetes 的NetworkPolicy
和AdminNetworkPolicy
对象在平台的网络层强制执行隔离。
Red Hat OpenShift Service Mesh:使用标准 Istio 对象进行复杂的 L4 和 L7流量控制,并使用 mTLS 识别流量的源和目标,然后根据该信息应用策略。
除了能够识别和验证连接外,控制对单个事务的访问也很有用。这可能包括按来源进行速率限制、可观察性和语义验证,以确保事务格式正确。
利用
Red Hat OpenShift Service Mesh:执行 L7 请求检查,拒绝格式错误的 HTTP 请求,进行事务级的可观察性和报告。Service Mesh 还可以使用 JWT 提供基于请求的身份验证。
随着集群中安全策略数量的增加,对策略允许和拒绝内容的可视化变得越来越重要。这些工具使创建、可视化和管理集群安全策略更容易。
利用
Red Hat OpenShift Service Mesh:使用OpenShift Web 控制台创建和可视化 Kubernetes NetworkPolicy
和 AdminNetworkPolicy
以及 OpenShift Networking EgressFirewall
对象。
在集群上部署应用程序后,管理构成安全规则的所有对象变得具有挑战性。能够应用站点范围策略并审核已部署的对象以确保其符合策略变得至关重要。这应允许在定义的范围内将某些权限委派给用户和集群管理员,并且如有必要,应允许对策略进行例外处理。
利用
在运行集群后,您希望能够观察流量并验证流量是否符合定义的规则。这对于入侵检测、取证非常重要,并且有助于操作负载管理。
利用
网络可观察性运算符:允许检查、监控和告警集群中与 Pod 和节点的网络连接。
Red Hat Advanced Cluster Management (RHACM) for Kubernetes:监控、收集和评估系统级事件,例如进程执行、网络连接和流以及权限提升。它可以确定集群的基线,然后检测异常活动并向您发出警报。
Red Hat OpenShift Service Mesh:可以监控进入和离开 Pod 的流量。
Red Hat OpenShift 分布式跟踪平台:对于适当检测的应用程序,您可以看到与特定操作关联的所有流量,因为它被拆分为对微服务的子请求。这使您可以识别分布式应用程序中的瓶颈。
重要的是能够相信在您的集群中运行服务的软件没有受到损害。例如,您可能需要确保在受信任的硬件上运行经过认证的镜像,并且只有基于端点特征才能允许与端点的连接。
利用
OpenShift 容器平台:安全启动可以确保集群中的节点运行的是可信软件,从而确保平台本身(包括容器运行时)没有被篡改。您可以将 OpenShift 容器平台配置为仅运行已由特定签名签署的镜像。
Red Hat 可信工件签名器:这可以用于可信构建链并生成已签名的容器镜像。
您可能希望通过允许集群为子域签发 CA 来扩展集群外部的可信度。或者,您可能希望向远程端点证明集群中的工作负载身份。
利用
OpenShift cert-manager 运算符:您可以使用 cert-manager 管理委派的 CA,以便您可以跨不同集群或整个组织分发可信度。
Red Hat OpenShift 服务网格:可以使用 SPIFFE 向在远程或本地集群中运行的端点提供工作负载的远程证明。