关注分享主机优惠活动
国内外VPS云服务器

每个人都应该遵循的 9 个 Kubernetes 安全最佳实践

总结:元数据隐藏功能改变了集群部署机制以避免这种泄漏,因此我们建议使用此功能,直到有永久解决方案可用。 如果身份验证失败,攻击者可能会尝试利用被盗的凭据。 2018年中国论坛提案征集现已开始。 论坛将用户开发人员和从业者聚集在一起,进行面对面的交流和协作。

作者:Connor Gilbert,StackRox 产品经理

上个月,Kubernetes(世界上最受欢迎的容器编排器)生态系统我对此感到困惑。 第一次重大安全漏洞震惊了。 此漏洞 (CVE-2018-1002105) 允许攻击者执行危害集群的代码并通过 Kubernetes API 服务器安装恶意软件或其他恶意活动。

今年早些时候,由于 Kubernetes 控制台配置错误,特斯拉遭受了高级加密货币挖矿恶意软件感染。 攻击者利用某些 Kubernetes 控制台不受密码保护的事实,获得了对其中一个 Pod 的访问权限,其中包含 Tesla 大型 AWS 环境的访问凭据。

随着组织加速采用容器和容器编排器,他们必须采取必要的步骤来保护其计算基础设施的这一关键部分。 为了帮助您完成这项工作,请查看这 9 个客户驱动的 Kubernetes 安全最佳实践,以保护您的基础设施。

1.升级到最新版本

季度更新添加新的安全功能以及错误修复。 为了充分利用这些功能,我们建议运行最新的稳定版本。 特别是考虑到CVE-2018-1002105的发现,最好使用最新版本并运行最新补丁。 您走得越远,升级和支持就会变得越困难,因此计划至少每季度升级一次。 通过托管 Kubernetes 提供商,升级非常容易。

2.启用基于角色的访问控制(RBAC)

基于角色的访问控制(RBAC)控制谁可以访问 Kubernetes API 及其权限。 默认情况下,澳大利亚央行C 通常在 Kubernetes 1.6 或更高版本(或某些托管提供商的更高版本)中启用,但如果您从那时起升级并且没有更改配置,则应该仔细检查您的设置。 由于 Kubernetes 授权控制器的组装方式,必须启用 RBAC,并禁用传统的基于属性的访问控制 (ABAC)。

实施 RBAC 后,您需要有效地使用它。 一般来说,应避免集群范围的权限,而应使用特定于命名空间的权限。 即使对于调试,避免授予集群管理权限并仅在必要时根据具体情况授予访问权限会更安全。

您可以使用 kubectl get clusterrolebindingkubectl get rolebinding -all-namespaces 来查找集群的角色和职责。能。 轻松查看谁被授予特殊的“cluster-admin”角色。 在本例中,它只是“主”集群。

如果您的应用程序需要访问 Kubernetes API,请创建一个服务帐户,并为其使用的每个站点提供所需的最低权限。 这比向命名空间的默认帐户授予过于广泛的权限要好。

大多数应用程序根本不需要访问 API。 对于这些应用程序,automountServiceAccountToken 可以设置为“false”。

3. 使用命名空间建立安全边界

创建多频带命名空间是组件之间重要的第一级隔离。 我们发现,当不同类型的工作负载部署在不同的命名空间中时,实施网络策略等安全控制要容易得多。

您的团队是否有效地使用命名空间?检查非默认命名空间以快速找到它们:

4. 隔离敏感工作负载

为了限制妥协的潜在影响,最好在一组专用计算机上运行敏感工作负载。 这种方法减少了执行时间)或主机,存在安全性较低的应用程序访问敏感应用程序的风险。 例如,仅当机密安装在调度到该节点的 Pod 上时,受感染节点上的 kubelet 凭证通常才提供对机密的访问。 如果重要机密分布在集群中的许多节点上,攻击者就有更多机会窃取重要机密。

您可以使用节点池(云或本地)和 Kubernetes 命名空间、污点、容差和其他控制来实现隔离。

5. 保护云元数据访问

如果敏感元数据(例如 kubelet 管理员凭证)被盗或集群权限可能被利用进行升级。 例如,Shopify 最近的漏洞赏金披露详细介绍了用户如何通过混淆微服务和泄露来自云提供商的元数据服务信息来升级权限。 GKE 的元数据隐藏功能改变了集群部署机制以避免这种暴露,因此我们建议使用此功能,直到有永久解决方案可用。 其他环境中可能需要类似的措施。

6. 创建和定义集群网络策略

网络策略允许您控制容器化应用程序的网络访问。 要使用这些资源,您必须确保您拥有支持此资源的网络提供商。 此外,一些托管 Kubernetes 提供商(例如 Google Kubernetes Engine (GKE))要求您选择加入。 (如果集群已存在,则需要进行简单的滚动升级才能在 GKE 中启用网络策略。)部署后,一些基本的操作将从默认网络策略开始。

如果您在 Google Container Engine 上运行,您可以检查您的集群是否在启用策略支持的情况下运行。

7. 强制执行集群范围的 Pod 安全策略

Pod 安全策略为允许在集群中运行的工作负载设置默认值。集。 考虑定义策略并启用 Pod 安全策略准入控制器。 步骤因您的云提供商或部署模型而异。 首先,您可以请求在部署中删除 NET_RAW 功能,以防止某些类型的网络欺骗攻击。

8.加强节点安全

您可以通过以下三个步骤来改善节点的安全状况:

确保主机安全且配置正确。 一种方法是根据 CIS 基准检查您的配置。 许多产品都包含自动检查器,可以自动评估是否符合这些标准。

控制对敏感端口的网络访问。 确保您的网络阻止访问 kubelet 使用的端口(例如 10250 和 10255)。 考虑限制对 Kubernetes API 服务器的访问(受信任网络除外)。 恶意用户可以利用对这些端口的访问,在未配置为需要使用 kubelet API 服务器进行身份验证和授权的集群上执行加密货币挖掘。

限制对 Kubernetes 节点的管理访问。 通常需要限制对集群中节点的访问。 通常可以在不直接访问节点的情况下处理调试和其他任务。

9. 启用审核日志记录

确保启用审核日志记录并监视异常、不必要的 API 调用,尤其是身份验证错误。 这些日志条目将显示状态消息“禁止”。 如果身份验证失败,攻击者可能会尝试利用被盗的凭据。 托管 Kubernetes 提供商(包括 GKE)在其云控制台中提供此数据,并允许您配置身份验证失败警报​​。

后续步骤

遵循这些建议以获得更安全的 Kubernetes 集群。 请记住,即使您按照这些提示来安全地配置 Kubernetes 集群,您仍然需要将安全性构建到容器配置及其运行时操作的其他方面。 如果您想提高技术堆栈的安全性,请寻找能够为容器部署提供中央治理点并为容器和云原生应用程序提供持续监控和保护的工具。


2019 KubeCon + CloudNativeCon 中国论坛征集提案(CFP)现已开放

KubeCon + CloudNativeCon 论坛邀请用户和开发者参与可以参加人们和从业者聚集在一起进行面对面的交流和协作。 与会者将包括来自 Kubernetes、Prometheus 和其他云原生计算基金会 (CNCF) 赞助项目的领导者,共同讨论云原生生态系统的发展方向。

2019中国开源峰会提案征集(CFP)现已开放

中国开源峰会将使参与者能够协作和分享信息。 了解最新、最有趣的开源技术,包括 Linux、容器、云技术、网络、微服务等。 获取有关如何驾驭和领导开源社区的信息。

会议日期:

提案征集截止日期:太平洋标准时间 2 月 15 日星期五晚上 11:59

提案征集通知日期:2019年4月1日

会议日程通知日期:2019年4月3日

幻灯片提交截止日期:6月17日星期一

会议活动日期:6月24日 - 2019年2月26日

未经允许不得转载:主机频道 » 每个人都应该遵循的 9 个 Kubernetes 安全最佳实践

评论 抢沙发

评论前必须登录!

 

本站不销售/不代购主机产品,不提供技术支持,仅出于个人爱好分享优惠信息,请遵纪守法文明上网

Copyright © 主机频道 - ZHUJIPINDAO.COM ,本站托管于国外主机商

© 2021-2024   主机频道   网站地图 琼ICP备2022006744号