随着企业对软件开发的安全意识提高,开发和运维环节中各个团队也开始将安全嵌入他们正在使用或处理的平台或应用程序架构中。不同于各团队把对安全的关注放在自己所处理的环节,首席信息安全官(CISO)需要把握和负责从基础架构团队到应用程序团队等企业内部的所有安全问题。

阅读本文,将带您了解 CISO 需要考虑实施的五项 Kubernetes 安全措施。

可靠的身份验证解决方案

在创建一个 Kubernetes 集群或创建 500 个 Kubernetes 集群的时候,每个 CISO 想到的第一个问题是“工程师和用户将如何对这个 Kubernetes 集群进行身份验证?”。现成可用的解决方案有 RBAC 角色和权限,对用户和系统组件(如服务帐户)进行身份验证,以允许访问特定的 Kubernetes 资源。当然这样做可能还不够,企业需要考虑一些其他因素,比如 Kubernetes 的 oAuth 和 SSO。

根据企业部署 Kubernetes 的位置,有部分解决方案可以在本地运行,而其他解决方案则需要单另实施。举例来说,Azure Kubernetes Service (AKS) 等基于云的 Kubernetes 服务中,工程师能够获得开箱即用的 Azure Active Directory,从而在整个组织的所有 AKS 集群中启用和实施。Active Directory 是一种久经考验的用户身份验证方法,它可以在 AKS 上运行的所有 Kubernetes 集群中良好应用。

如果使用的 Kubernetes 环境没有像 Active Directory 这样的本机解决方案,可以考虑支持 OpenID Connect (OIDC) 的选项。例如,Okta 和 AuthO 已经集成了可用的 Kubernetes 身份验证解决方案。

实施 Kubernetes 时的安全习惯

在首次实施 Kubernetes 时,有很多安全习惯可以帮助缓解大量安全风险。

第一个是单租户和多租户集群。从 Kubernetes 的角度考虑单租户或多租户时,通常会考虑有多少用户可以访问集群以及集群上运行的应用程序的内容。而从用户的角度来看,则更多关注 Kubernetes 集群是不是被设置为只有一个用户能够访问,也就是说每个用户都可以拥有自己的 Kubernetes 集群,从而降低多租户风险。如果需要多租户(很多情况都是如此),那么为用户设置适当的 RBAC 权限至关重要。这样以来,用户就只能访问他们基于自身角色所需要的内容。

对于 Kubernetes,与之交互的所有资源都是 Kubernetes API 的一部分。有 API 的地方就有日志、指标和跟踪。如 Prometheus 和 Grafana,可以从 Kubernetes 集群中检索安全日志,这能够帮助团队有效缓解安全风险。不仅如此,工程团队还可以为这些日志设置警报,以便及时了解和处理。

从隔离的角度来说,从一开始就建立合适的命名空间(Namespace)的习惯非常重要。根据访问级别,用户可能可以跨命名空间部署应用程序和资源,包括 Default 甚至 kube-system,其中包含运行集群所需的核心 Kubernetes Pod。为了避免这个问题,用户和服务帐户应当只有权将应用程序部署到特定的命名空间。

K8s 左移

Kubernetes 左移,以及时发现和缓解相应安全风险,这能为 CISO 及软件工程团队省去不少麻烦。

例如,企业的开发团队正在使用 CI/CD 平台从应用程序构建容器镜像。通过左移场景,可以确保团队正确扫描进入容器镜像的应用程序二进制文件,并且当构建容器镜像完成时,使用 KSOC 等安全平台来扫描部署到 Kubernetes 集群。一旦容器镜像被扫描和验证,它们就可以被部署到 Kubernetes。

  • Kubernetes 左移能够确保:

  • 应用程序二进制文件被扫描

  • 容器镜像被扫描

  • 所有容器镜像都经过验证

这样可以节省团队的时间、精力并省去后续的手动修复,确保应用程序可以在适当的时间范围内部署到 Kubernetes,并满足上市和发布策略周期。

提高合规性审计

随着 Kubernetes、云原生平台、资源平台等技术的飞速发展,捕捉随时可能出现的每一个可能造成安全隐患的问题几乎是不可能完成的任务。因此企业使用外部审计顾问来帮助满足 HIPPA、PCI、PHI 和 SOC2 合规性需求,还是与内部团队成员一起执行审计,或者内外部审计同时进行,都可以为企业的 Kubernetes 环境提供更好的安全保障。

审核可以采用以下形式:

  • 全环境扫描

  • 完整的应用程序扫描

  • 单个 Kubernetes 集群扫描

  • 完整的 Kubernetes 环境扫描

  • Kubernetes 生成的日志

  • 实时 Kubernetes 漏洞分析

上述所有形式

审计并发现漏洞,能够在风险变成更大问题甚至影响整个组织的问题之前,及时并有效降低风险。

多环境的灵活性

最后是关于多环境(multi-environment)的灵活性。随着云原生的不断发展,目前存在三种云环境形式:

  • 多云

  • 混合云

  • 单一云

从单一云的角度来看,CISO 只需要关注和保护一个云中的组件和资源。但是涉及到多云或者混合云环境时,企业资源将位于多个位置,且需要跨网络进行通信。而混合云就是部分基础架构在本地,另一部分则在云上。因此企业需要同时保护基础架构、本地内部网络、云基础架构、云服务以及本地与云之间的通信。对于多云环境,企业不仅要保护每个云中运行的云服务,还要保护云之间的通信。

由于混合云和多云的应用越来越广泛,未来会有越来越少的企业考虑单一环境。因此,如同考虑跨多个数据中心的环境一样,CISO 同样也需要思考存在多个跨云和混合环境时的情况。

CISO 需考虑的五项 Kubernetes 安全措施的更多相关文章

  1. VS2017十五项新功能体验

    Visual Studio 2017十五项新功能体验 Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP ...

  2. 第十五章 Kubernetes调度器

    一.简介 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: ① 公平:如何保证每个节点都能被分配资源 ② ...

  3. 【Vuejs】397- Vue 3最值得期待的五项重大更新

    作者|Filip Rakowski 译者|王强 编辑|王文婧 最近关于即将发布的 Vue.js 的第 3 个大版本的消息越来越密集.虽然本文所讨论的内容还没有完全确定下来,但作者已经可以肯定它将是对当 ...

  4. SOLID:面向对象设计的前五项原则

    S.O.L.I.D是Robert C. Martin提出的前五个面向对象设计(OOD)原则的首字母缩写,他更为人所熟知的名字是Uncle Bob.   将这些原理结合在一起,可使程序员轻松开发易于维护 ...

  5. Docker与k8s的恩怨情仇(五)——Kubernetes的创新

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上节中我们提到了社区生态的发展使得Kubernetes得到了良性的发展和传播.比起相对封闭的Docker社区 ...

  6. Visual Studio 2017十五项新功能体验

    Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP 2017技术峰会将于这个周末(3.17)在北京举办,由 ...

  7. 十五项指标衡量DevOps是否成功

    DevOps在你的组织内部运行的如何?如果你需要一些帮助来度量它的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解你的团队是如何随着时间的推移而运行的. 在团队内 ...

  8. 国外牛人的五个Kubernetes学习建议

    现在云中存在的许多系统都是建立在基于虚拟机,虚拟磁盘等物理概念的抽象基础之上的,”Heptio的联合创始人兼首席技术官兼Kubernetes在Google的原始开发人员之一的Joe Beda说. “K ...

  9. 三十五、kubernetes NameSpace介绍

    Kubernetes NameSpace 介绍 Kubernetes使用命名空间的概念帮助解决集群中在管理对象时的复杂性问题.命名空间允许将对象分组到一起,便于将它们作为一个单元进行筛选和控制.无论是 ...

  10. 五、kubernetes节点与令牌管理

    Kubernetes节点与令牌管理 一.令牌管理 查看令牌 [root@master ~]# kubeadm token list 删除令牌 [root@master ~]# kubeadm toke ...

随机推荐

  1. 1.参考例5.2.1,设计一个序列检测器。功能是检测出串行输入数据Sin中的4位二进制序列0101(自左至右输入),当检测到该序列时,输入Out=1;没有检测到该序列时,输入Out=0。要求不考虑序列重叠,如010101的序列中只包含一个0101序列。

    设计块: module Detector2 ( input CP,Sin,nCR, output reg Out ); reg [1:0] Current_state,Next_state; para ...

  2. Sealos 私有云正式发布,三倍性能 1/5 成本

    马斯克将推特下云后可以节省 60% 成本,不代表你可以. 但是有了 Sealos 之后,你真的可以! Sealos 私有云正式发布,详情地址:https://sealos.run/zh-Hans/se ...

  3. What is Conjugate complex number(共轭复数)?

    word explain Conjugate 共轭是一个古代汉语词,在农业领域常用, 共轭复数的定义 两个实部相等,虚部互为相反数的复数互为共轭复数. 若Z=a+bi(a,b∈R),则Z*=a-bi( ...

  4. 升级到 Pulsar3.0 后深入了解 JWT 鉴权

    背景 最近在测试将 Pulsar 2.11.2 升级到 3.0.1的过程中碰到一个鉴权问题,正好借着这个问题充分了解下 Pulsar 的鉴权机制是如何运转的. Pulsar 支持 Namespace/ ...

  5. React 中常用技术

    可以少去理解一些不必要的概念,而多去思考为什么会有这样的东西,它解决了什么问题,或者它的运行机制是什么? 1. React 中导出和导入 1.1 ES6 解析 ES6 的模块化的基本规则或特点: 每一 ...

  6. 空间三维模型的编码结构光方法实现:基于EinScan-S软件

      本文介绍基于EinScan-S软件,实现编码结构光方法的空间三维模型重建的具体操作. 目录 1 相关原理 1.1 编码结构光成像原理 1.2 编码结构光编码方式 1.3 编码结构光与侧影轮廓方法比 ...

  7. js根据某属性对json数组分类

    原数据: var arr = [ {name: '张三', age: 23, work: '计算机'}, {name: '王五', age: 29, work: '计算机'}, {name: '张兴' ...

  8. java 405_Http状态405-方法不允许

    解决方法: 删除下列代码. super.doGet(req.resp); super.doPost(req.resp); 分析: 405错误一般指请求method not allowed 错误. 请求 ...

  9. Python批量改文件名

    对以下路径中的文件名批量修改. 一.读取指定路径中的文件名 #导入标准库 import os #读取文件名 filesDir = "路径--" fileNameList = os. ...

  10. idea常用快捷键使用

    idea常用快捷键使用:1.shift+u 大小写2.alt+shift+u 驼峰命名(插件:CamelCase)3.ctrl+alt 点击跳转实现类4.ctrl 点击跳转接口类5.Alt+F7 查看 ...