容器安全性

保障 GCP、GKE 或 Anthos 上的容器环境的安全。

概览

容器化让开发团队可以快速行动、高效部署软件,并以前所未有的规模运行。随着容器化工作负载日益增多,企业必须将安全功能集成到构建和部署生命周期的各个阶段。了解如何从三个关键领域入手,保护您在 GCP 上运行的容器环境 — 无论是 Google Kubernetes Engine 还是 Anthos。

基础架构安全

所谓基础架构安全,是指您的容器管理平台能够提供适当的安全功能。Kubernetes 所包含的安全功能可保护您的身份、密文和网络,Google Kubernetes Engine 使用了 Cloud IAM、Cloud Audit Logging 和 Virtual Private Cloud 等原生 GCP 功能,以及应用层 Secret 加密Workload Identity 等 GKE 特定功能,可借助一流的 Google 安全技术为您的工作负载保驾护航。

软件供应链

保障软件供应链的安全,是指确保即将部署的容器映像是安全的。软件供应链安全可确保您的容器映像不存在漏洞,并且您构建的映像在部署前未经篡改。

运行时安全

借助运行时安全功能,您可以找出在生产环境中存在恶意行为的容器,并采取相关措施来保护您的工作负载。

运行容器让您可以采用一种从根本上不同的安全模型

更简单的补丁管理以及不变性

更简单的补丁管理以及不变性

容器特意设计为不可变,因此您需要部署新映像才能应用更改。 您可以通过定期重新构建映像来简化补丁管理,这样在下次部署容器时就能顺带完成补丁操作。通过定期审核映像的安全状况,您可以全面了解自己的环境。

缩小受攻击面

缩小受攻击面

容器被设计为在比虚拟机小得多的主机操作系统上运行,因为有更多组件被直接封装到了应用中。这种极简的主机操作系统有助于缩小您的工作负载的潜在受攻击面。

资源和工作负载隔离

资源和工作负载隔离

容器提供了一种简单的资源隔离方式,可让您通过 cgroup 和命名空间将资源(如存储卷)隔离在某些进程中。借助 GKE Sandbox 等技术,您可以在逻辑层面上将工作负载隔离到某个子虚拟机沙盒中,将其与其他应用分隔开来。

基础架构安全

保障容器基础架构的安全,重点是确保开发者拥有所需的工具来安全地构建容器化服务。这些功能通常内置于 Kubernetes 等容器编排系统中。如果您使用 Google Kubernetes Engine,则系统会以原生方式提供此类功能及 Google Cloud 的其他功能。

身份验证和授权

在 Google Kubernetes Engine 上,您可以使用 Cloud IAM 来管理对项目的访问权限,并可使用基于角色的访问权限控制 (RBAC) 功能来管理对集群和命名空间的访问权限。

审核日志记录

在 Kubernetes 中,系统会自动记录 API 审核日志。在 Google Kubernetes Engine 中,Cloud Audit Logs 会自动为您记录 API 审核日志。

网络

在 Google Kubernetes Engine 上,您可以创建网络政策来管理集群中 pod 之间的通信。您还可以为私有 IP 使用专用集群,并将 Google Kubernetes Engine 资源包含在共享 VPC 中。

合规性

Google Kubernetes Engine 获得了许多合规认证,包括 ISO 27001、ISO 27017、ISO 27108、HIPAA 和 PCI-DSS。

极简的主机操作系统

Google Kubernetes Engine 默认使用 Container-Optimized OS (COS),它是专为运行容器而构建并优化的一种操作系统。COS 属于开源操作系统,由 Google 进行维护。

组件自动升级

在 GKE 上,主实例会自动更新到最新的 Kubernetes 版本,并且您可以为节点使用节点自动升级功能,通过自动为节点安装最新补丁保证您的安全机制处于最新状态。

客户管理的加密密钥

如果用户身处受监管行业,则可能需要掌控用于加密 GKE 内所存储数据的密钥。通过客户管理的加密密钥,您可以从 Cloud KMS 中获取一个密钥,以保护您的 GKE 永久性磁盘。

应用层 Secret 加密

默认情况下,Kubernetes Secret 采用纯文本形式存储。GKE 会在磁盘上加密这些 Secret,并监控此数据以了解内部人员的访问情况。但仅凭这一点可能还不足以保护 Secret 免受环境中恶意应用的攻击。应用层 Secret 加密能利用您在 Cloud KMS 中管理的一个密钥,通过信封加密保护 Secret。

Workload Identity

您的容器化应用可能需要连接到其他服务(例如数据库)以执行任务。为此,您的应用首先需要向这些服务验证自身身份。 Workload Identity 在应用身份验证中遵循最小权限原则,利用 Google 管理的服务帐号共享凭据以执行身份验证。

代管 SSL 证书

在 GKE 中,HTTPS 负载平衡器需要与 SSL 证书关联。您可以自行获取、管理和续订这些证书,也可以让 Google 自动为您获取、管理和续订这些证书,从而免去自行续订(或忘记续订)的麻烦。

软件供应链

保障软件供应链安全的关键在于确切地知道您的环境中部署了什么,也就是说,从代码到映像再到部署,您需要充分掌控自己的应用。这些功能通常内置于您的 CI/CD 流水线和容器注册表(如 Google Container Registry)中,并会在您将容器部署到生产环境之前执行准入检查。

安全的代管式基础映像

Google Container Registry 提供 DebianUbuntu 基础映像,Google 会通过定期修补和测试维护这些基础映像。这些 Google 管理的映像已经应用了上游发布的最新补丁,因此您可以轻松地保持自己的映像始终最新,而且不必自行从未知的代码库中提取映像或者维护这些映像。

漏洞扫描

Google Container Registry 提供漏洞扫描功能,可扫描您的映像和软件包中是否存在 CVE 数据库中列出的已知漏洞。

部署政策

在 Google Kubernetes Engine 上,您可以使用 Binary Authorization,根据映像的证明来限制将哪些映像部署到您的环境中。在部署之前,您可以通过证明或签名的形式,证实映像满足您指定的要求。此类要求可以包括扫描映像中的漏洞或由质量检查团队进行验证。

定期构建

容器可以定期重新构建和重新部署,以便您能够受益于逐步部署到自己环境中的最新补丁程序。

运行时安全

保障容器运行时安全的关键在于,确保您的安全响应团队能够检测到环境中运行的容器所面临的安全威胁,并作出响应。这些功能通常内置于您的安全运营工具中。

监控

Google Kubernetes Engine 集成了 Cloud Logging,可帮助您轻松进行日志分析。您还可以将安全性事件写入 Cloud Security Command Center (Cloud SCC)。

异常活动检测

借力于我们的合作伙伴来监控攻击并在 Security Command Center 中查看结果,可以选择的合作伙伴包括:Aqua SecurityCapsule8StackRoxSysdig SecureTwistlock

实施安全政策

PodSecurityPolicy 是开源 Kubernetes 的一项功能,它让您可以对 Pod 的运行方式设置约束条件,例如实施诸如 AppArmor 和 seccomp 之类的约束,从而帮助您为容器创建防护措施。

隔离

防止恶意容器影响到其他容器。 GKE Sandbox 使用用户空间内核来拦截和处理系统调用,在不更改开发者与应用之间的交互方式的前提下,为您的容器增加了深度防御机制。GKE Sandbox 以 Google 创建的开源项目 gVisor 为基础。

资源

浏览有关容器安全的更多信息。

Google Cloud

开始使用

学习和构建

刚接触 GCP?您可以领取 $300 赠金,免费开始使用任意 GCP 产品。

需要更多帮助?

我们的专家会根据您的需求,帮助您打造合适的解决方案,或者寻找合适的合作伙伴。