7 步保障 Kubernetes 集群安全( 二 )

以禁用匿名访问:-anonymous-auth=false

  • 使用 -kubelet-client-certificate-kubelet-client-key标志开始 Kube-Episerver 命令 。这可确保 API 服务器对 kubelet 进行身份验证并防止匿名请求 。
  • kubelet 提供了一个只读 API,管理员无需登录即可使用 。这样可能会暴露潜在的敏感集群信息 , 管理员应使用以下命令关闭只读端口:—read-only-port=0
  • 6. 配置命名空间和网络策略命名空间将敏感工作负载与非敏感工作负载区分开来 。处理多个命名空间可能会有些困难,但这使得实现安全控制变得更简单,例如管理性能的网络策略以调节进出 pod 的流量 。
    7. 启用审计日志启用 K8s 审计日志并监督它们是否存在非法行为和可疑的 API 调用 。K8s 可以保存集群活动的详细记录,所以我们可以立即在审核日志中检测到可能的安全问题 。例如,攻击者试图暴力破解密码可能会创建身份验证和授权日志 。如果这些行为反复出现,则可能存在安全问题 。
    要启用审计日志,需使用 K8s 审计策略,允许管理员根据情况配置审计级别:
    • None – 与此规则匹配的事件将不会被记录 。
    • Metadata –记录请求的元数据,例如请求用户、时间戳、资源和动词 。
    • Request –记录事件的元数据以及请求正文 , 但不记录响应正文 。这不适用于对非资源的请求 。
    • RequestResponse – 跟踪事件元数据、请求和响应正文 。这不适用于对非资源的请求 。
    这些信息的大部分由 K8s 审计日志记录,并且与集群 API 的简单结合允许您将这些日志发送到外部日志记录和存储解决方案 。同时还可以生成仪表板、可疑行为警报和事件调查报告 。
    总结依赖 K8s 作为后端的 DevOps 团队必须意识到集群和可以在其中运行的 Docker 容器可能面临的所有风险和攻击 。由于可用的攻击向量种类繁多、技术的不断进步以及该工具的一致、广泛采用,恶意攻击者发现渗透集群能够有效发起攻击并获得利益 。保护 K8s 集群是一项艰巨的任务,密切关注并尽可能检测系统漏洞或恶意攻击行为至关重要 。
    【7 步保障 Kubernetes 集群安全】

    推荐阅读