容器和Kubernetes安全的分层方法
简介:应用程序容器的安全性至关重要
全面的容器和Kubernetes安全:层次和生命周期
应将哪些容器部署到哪些主机? 哪个主机的容量更大? 哪些容器需要相互访问,它们将如何发现彼此? 您如何控制对网络和存储等共享资源的访问和管理? 如何监控容器健康状况? 如何自动扩展应用程序容量以满足需求? 您如何支持开发人员自助服务并自动化构建和部署过程,同时满足安全要求?
针对Kubernetes的Red Hat高级群集管理 用于多集群管理、端到端可见性和Kubernetes集群的控制。 适用于Kubernetes的Red Hat高级群集安全性 利用DevSecOps功能保护软件供应链、基础设施和工作负载,实现Kubernetes-native安全。 红帽码头 是一个具有高级访问控制和安全扫描功能的全球分布和可扩展注册表。
通过可信的图像和自动化为应用程序构建安全性
使用受信任的容器内容。 使用企业容器注册表。 控制和自动化构建容器。 将安全性集成到应用程序管道中。
1.使用受信任的容器内容
容器内容会危害我的基础设施吗? 应用层中是否存在已知漏洞? 容器中的运行时层和操作系统层是最新的吗? 容器更新的频率如何?我如何知道何时更新?
2.使用企业容器注册表更安全地访问容器映像
3.控制和自动化构建容器图像
Red Hat Quay触发器提供了一种从外部事件(如GitHub推送、BitBucket推送、GitLab推送或webhook)生成Dockerfile存储库构建的机制。 源到图像 (S2I)是一个用于组合源代码和基本映像的开源框架(图3)。 S2I允许您的开发和操作团队在可复制的构建环境上进行协作。 当开发人员使用git提交代码时,在S2I下,Red Hat OpenShift可以: 触发从可用工件(包括S2I基本映像)和新提交的代码(通过代码库上的webhooks或其他自动化CI过程)自动组装新映像。 自动部署新构建的映像以进行测试。 将测试映像升级为生产状态,并通过 持续集成/持续交付(CI/CD) 过程。
4.将安全性集成到应用程序管道中
注册表: 容器图像可以并且应该在私有容器注册表中进行扫描。 通过Quay,您可以使用Clair安全扫描程序或Red Hat Advanced Cluster security扫描程序集成,在发现任何违反策略的漏洞时通知开发人员。 或者,可以在 Red Hat生态系统目录 . 石斑鱼类: Red Hat依赖关系分析 集成开发环境(IDE) 具有插件,当代码首次引入IDE时,这些插件为项目依赖项提供漏洞警告和修复建议。 CI/CD: 扫描仪可以与CI集成,用于实时评估,对容器中的开源包进行编目,通知您任何已知的漏洞,并在以前扫描的包中发现新的漏洞时更新您。 扫描并标记安全问题: 此外,CI流程应包括用安全扫描发现的问题标记构建的策略,以便团队可以采取适当的措施尽快解决这些问题。 Red Hat Advanced Cluster Security for Kubernetes与CI/CD工具集成,可根据漏洞和群集错误配置进行监视、通知和强制执行。 组织可以强制实施策略,如拒绝部署 CAP_SYS_ADMIN功能 ,即使是特权用户。 Red Hat Advanced Cluster Security的整体风险评估方法将告知您Kubernetes集群中的问题,并附带默认和可配置的策略,您可以在构建、部署和运行时阶段监控和实施这些策略。 监视Helm图表和YAML文件: 您还应该包括以下解决方案 库贝·林特 在CI流程中评估Kubernetes YAML文件和Helm图表的安全配置错误。 签署自定义图像: 最后,我们建议您签署定制的容器映像,以便确保它们在构建和部署之间未被篡改。
部署:管理部署配置、安全性和法规遵从性
平台配置和生命周期管理。 身份和访问管理。 平台数据和附加存储的安全性。 部署策略。 平台配置和生命周期管理
6.身份和访问管理
7.平台数据安全
通过https为所有相互通信的容器平台组件加密传输中的数据。 通过传输层安全性(TLS)与控制平面发送所有通信。 etcd对等成员之间的通信使用证书颁发机构(CA)和特定于这些组件的证书进行加密。 (在Kubernetes中,etcd存储持久主状态,而其他组件则监视etcd进行更改,以使自己进入指定状态。) 自动旋转平台证书和密钥。
可选加密Red Hat Enterprise Linux CoreOS磁盘和etcd数据存储,以提高安全性。 为Red Hat OpenShift提供联邦信息处理标准(FIPS)就绪性。 FIPS 140-2是用于批准加密模块的美国政府安全标准。 当Red Hat Enterprise Linux CoreOS以FIPS模式启动时,Red Hat OpenShift平台组件会调用Red Hat Enterprise Linux加密模块。 从电子书中了解更多信息, Red Hat OpenShift安全指南 .
持久卷(PV) 可以以资源提供程序支持的任何方式装载到主机上。 提供商将具有不同的功能,每个PV的访问模式都设置为该特定卷支持的特定模式。 例如,NFS可以支持多个读/写客户端,但特定的NFS PV可能在服务器上以只读方式导出。 每个PV都有自己的访问模式集,用于描述特定PV的能力。 例如ReadWriteOnce、ReadOnlyMany和ReadWrite Many。 对于共享存储 (例如,NFS, Red Hat Ceph®存储 )的技巧是让共享存储PV将其组ID(gid)注册为PV资源上的注释。 当吊舱认领PV时,带注释的gid将添加到 补充组 并让该pod访问共享存储的内容。 用于块存储 (例如,EBS、GCE永久磁盘、iSCSI),容器平台可以使用Security-Enhanced Linux(SELinux)功能为非特权pods的已装入卷的根提供安全性,使已装入卷为与其关联的容器所拥有,并且仅对其可见。
8.自动化基于策略的部署
基于策略的容器部署: Red Hat OpenShift群集可以配置为 允许或禁止图像 从特定的图像注册表中提取。 生产集群的最佳做法是只允许从您的私有注册表部署映像。
Red Hat OpenShift的 安全上下文约束(SCC) 准入控制器插件定义了一组条件,pod必须运行这些条件才能被系统接受。 安全上下文约束 允许您默认删除特权,这一点很重要,也是最佳实践。 Red Hat OpenShift安全上下文约束(SCC)确保在默认情况下,OpenShift工作节点上没有运行特权容器。 默认情况下,拒绝访问主机网络和主机进程ID。 如果用户选择,则具有所需权限的用户可以将默认SCC策略调整为更具权限。
适用于Kubernetes的Red Hat高级集群管理 提供 高级应用程序生命周期管理 使用开放标准部署应用程序,使用集成到现有CI/CD管道和管理控制中的放置策略。
Kubernetes的Red Hat高级群集安全 提供内置和可配置的策略来强制实施安全默认值。 可以在所有集群中启用和强制创建允许或禁止来自私有注册表的映像的策略。 严重的容器漏洞得分、容器错误配置和特权容器访问是可以启用和实施的策略的几个示例,以限制集群中的攻击面。 -
基于策略的多集群管理: 部署多个集群有助于跨多个可用性区域提供应用程序高可用性、部署的通用管理功能或跨多个云提供商(如AWS、Google cloud和Microsoft Azure)进行迁移。 在管理多个集群时,您的编排工具需要跨不同的部署实例提供所需的安全性。 与往常一样,配置、身份验证和授权是关键,因为它能够更安全地将数据传递到应用程序,无论它们在何处运行,并跨集群管理应用程序策略。 Red Hat高级群集管理 提供: -
多集群生命周期管理 它允许您可靠、一致和大规模地创建、更新和销毁Kubernetes集群。 -
政策驱动的治理风险和法规遵从性 根据行业标准,利用策略自动配置和维护安全控制的一致性。 您还可以指定要跨一个或多个托管集群应用的合规性策略。
-
保护正在运行的应用程序
容器隔离。 应用程序和网络隔离。 应用程序访问安全。 可观察性。
9.容器隔离
Linux命名空间 提供容器隔离的基础知识。 命名空间使命名空间中的进程可以看到一个容器,这些进程具有自己的全局资源实例。 名称空间提供了一种抽象,让人觉得您是从容器中在自己的操作系统上运行的。 SELinux公司 提供了额外的安全层,以使容器彼此隔离,并与主机隔离。 SELinux允许管理员对每个用户、应用程序、进程和文件实施强制访问控制(MAC)。 如果您设法打破了名称空间抽象(意外或故意),SELinux将阻止您。 SELinux缓解了容器运行时漏洞,有序的SELinux配置可以防止容器进程逃离其包含。 C组 限制、说明和隔离进程集合的资源使用情况(例如CPU、内存、磁盘I/O、网络)。 使用Cgroups可防止容器资源被同一主机上的另一个容器超越。 Cgroups还可以用于控制伪设备,这是一种流行的攻击工具。 Linux功能 可用于锁定容器中的权限。 功能是不同的特权单元,可以独立启用或禁用。 功能允许您执行诸如发送原始互联网协议(IP)数据包或绑定到1024以下的端口等操作。 运行容器时,可以删除多个功能,而不会影响绝大多数容器化应用程序。 最后,a 安全计算模式 (seccomp)配置文件可以与容器关联,以限制可用的系统调用。
10.应用程序和网络隔离
Red Hat OpenShift项目 是带有SELinux注释的Kubernetes命名空间。 项目跨团队、组和部门隔离应用程序。 本地角色和绑定用于控制谁有权访问单个项目。 安全上下文约束 允许您在默认情况下放弃特权,这是一个重要的最佳实践。 对于Red Hat OpenShift SCC,默认情况下,OpenShift工作节点上不运行特权容器。 默认情况下,还拒绝访问主机网络和主机进程ID。
入口交通管制: Red Hat OpenShift包含CoreDNS,为pods提供名称解析服务。 Red Hat OpenShift路由器(HAProxy)支持入口和路由,以提供对集群上运行的服务的外部访问。 两者都支持重新加密和传递策略:“重新加密”在转发HTTP流量时解密和重新加密,而“传递”在不终止TLS的情况下传递流量。 网络命名空间: 网络防御的第一道防线来自网络名称空间。 每个容器集合(称为“pod”)都有自己的IP和端口范围进行绑定,从而将节点上的pod网络彼此隔离。 吊舱IP地址独立于Red Hat OpenShift节点所连接的物理网络。 网络策略: Red Hat OpenShift SDN使用 网络策略 为pods之间的通信提供细粒度控制。 网络流量可以从任何其他机架、特定端口和特定方向控制到任何机架。 在中配置网络策略时 多租户模式 ,每个项目都会获得自己的虚拟网络ID,从而在节点上将项目网络彼此隔离。 在多租户模式下,(默认情况下)项目中的pods可以相互通信,但来自不同名称空间的pods不能向不同项目的pods或服务发送数据包,也不能从中接收数据包。 出口交通管制: Red Hat OpenShift还提供了使用路由器或防火墙方法控制集群上运行的服务的出口流量的功能。 例如,您可以使用IP allowlisting来提供对外部数据库的访问。
11.保护应用程序访问
控制用户访问: Web单点登录(SSO)功能是现代应用程序的关键部分。 容器平台可以附带许多容器化服务,供开发人员在构建应用程序时使用。 红帽单点登录 是一种完全受支持的现成安全断言标记语言(SAML)2.0或OpenID基于连接的身份验证、web单点登录和基于上游的联合服务 钥匙斗篷 项目。 Red Hat Single Sign-On为Red Hat-Fuse和Red Hat-JBoss Enterprise Application Platform提供客户端适配器。 Red Hat Single Sign-On支持Node.js应用程序的身份验证和web单点登录,并可以与基于LDAP的目录服务集成,包括Microsoft Active directory和Red哈特Enterprise Linux Identity Management。 Red Hat Single Sign-On还与社交登录提供商(如脸书、谷歌和推特)集成。 控制API访问: API是由微服务组成的应用程序的关键。 这些应用程序具有多个独立的API服务,导致需要额外工具进行治理的服务端点激增。 我们建议使用API管理工具。 Red Hat 3scale API管理 为API身份验证和安全提供了多种标准选项,可以单独使用,也可以组合使用,以颁发凭据和控制访问。
Red Hat 3scale API Management中提供的访问控制功能超越了基本安全和身份验证。 应用程序和帐户计划允许您限制对特定端点、方法和服务的访问,并为用户组应用访问策略。 应用程序计划允许您为API使用设置速率限制,并控制开发人员组的流量。 您可以为传入的API调用设置每个周期的限制,以保护您的基础设施并保持流量顺畅。 您还可以为达到或超过速率限制的应用程序自动触发超限警报,并定义超限应用程序的行为。 保护应用程序流量: 本白皮书第10节介绍了如何使用集群入口和出口选项提高应用程序流量的安全性。 对于基于微服务的应用程序,集群上服务之间的安全流量同样重要。 服务网格可用于提供此管理层。 术语“服务网格”描述了在分布式微服务架构中构成应用程序的微服务网络以及这些微服务之间的交互。
基于开源Istio项目, Red Hat OpenShift服务网格 在现有分布式应用程序上添加一个透明层,用于管理服务到服务的通信,而无需更改服务代码。 Red Hat OpenShift Service Mesh使用多租户操作员来管理控制平面的生命周期,允许在每个项目的基础上使用OpenShift服务Mesh。 此外,OpenShift Service Mesh不需要集群范围的RBAC资源。
Red Hat OpenShift Service Mesh提供发现和负载平衡以及关键安全功能,如服务对服务的身份验证和加密、故障恢复、度量和监控
3刻度Istio适配器 是一个可选适配器,允许您标记在Red Hat OpenShift service Mesh中运行的服务。
12.可观察性
使用强大的Kubernetes工具生态系统扩展安全性
特权访问管理。 外部证书颁发机构。 外部保险库和密钥管理解决方案。 容器内容扫描器和漏洞管理工具。 容器运行时分析工具。 SIEM公司。
结论:Red Hat OpenShift内置容器安全
集成构建和CI/CD工具,用于更安全的DevOps和DevSecOps实践。 具有内置平台配置、法规遵从性和生命周期管理功能的强化企业级Kubernetes。 强大的RBAC,与企业身份验证系统集成。 用于管理集群入口和出口的选项。 集成SDN和服务网格,支持网络细分。 支持为远程存储卷提供安全保护。 Red Hat Enterprise Linux CoreOS,针对大规模运行容器进行了优化,具有很强的隔离性。 自动化运行时安全的部署策略。 集成的监视、审核和日志记录。