Azure Arc 启用的 AKS 中的容器安全性

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

本文介绍了保护用于打包和部署应用程序的容器的各种方法,并避免在 Azure Arc 启用的 AKS 中引入安全漏洞。

容器提供操作和安全优势,因为应用程序和服务在环境中是分开的。 容器还有助于减少系统范围故障的影响,因为它们具有抽象性,可确保正常运行时间并防止可能危及应用程序或服务的攻击。 容器通常在主机操作系统之上的抽象层上运行,并且抽象提供了一些分离障碍和应用分层防御模型的机会。

还可以通过保护容器管道、应用程序和容器部署环境来设置持续的容器安全性。 以下部分介绍了实现容器安全性的一些建议做法。

保护映像

若要防止未经授权的访问,请托管安全且受信任的注册表上的映像。 映像应具有具有受信任的根 CA 的 TLS 证书,注册表应使用具有强身份验证的基于角色的访问控制(RBAC)。 在为容器构建和交付设计 CI/CD 时,应该包括一个映像扫描解决方案。 映像扫描解决方案有助于识别常见的漏洞和暴露(CVE),并确保在没有修正的情况下不会部署可利用的映像。

强化主机环境

容器安全的一个重要方面是需要加强运行容器的系统的安全性,以及它们在运行时的行为方式。 容器安全应侧重于整个堆栈,包括主机和守护程序。 应从主机中删除非关键服务,并且不应在环境中部署不合规的容器。 通过执行此操作,只能通过容器进行访问,并且控制将集中到容器守护程序,从而从攻击面中删除主机。 使用代理服务器访问容器时,这些步骤特别有用,这可能会意外绕过容器安全控制。

限制容器资源

当容器遭到入侵时,攻击者可能会尝试使用基础主机资源来执行恶意活动。 最好设置内存和 CPU 使用限制,以最大程度地降低违规的影响。

正确保护机密

机密是一个对象,其中包含可能需要在主机和容器之间传递的敏感信息;例如,密码、SSL/TLS 证书、SSH 私钥、令牌、连接字符串和其他不应以纯文本传输或未加密存储的数据。 应将所有机密从映像中保留出来,并通过容器业务流程引擎或外部机密管理器装载这些机密。

实践隔离

使用隔离,不使用特权用户或根用户在容器中运行应用程序。 避免在特权模式下运行容器,因为这样做可以让攻击者在容器遭到入侵时轻松提升特权。 如果攻击者知道容器中根用户的 UID(唯一标识码)和 GID(组标识码),则可以访问和修改根在主机上写入的文件。 在应用程序只能访问所需机密的情况下,还必须使用最小特权原则。 你可以创建应用程序用户来运行应用程序进程。

部署运行时安全监视

由于即使在对基础结构的攻击采取防范措施之后仍然有可能遭受入侵,持续监视和记录应用程序的行为以防止和检测恶意活动非常重要。 Prometheus工具提供了监视基础结构的有效方法。

后续步骤