CISO 需考虑的五项 Kubernetes 安全措施
随着企业对软件开发的安全意识提高,开发和运维环节中各个团队也开始将安全嵌入他们正在使用或处理的平台或应用程序架构中。不同于各团队把对安全的关注放在自己所处理的环节,首席信息安全官(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 安全措施的更多相关文章
- VS2017十五项新功能体验
Visual Studio 2017十五项新功能体验 Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP ...
- 第十五章 Kubernetes调度器
一.简介 Scheduler 是 kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上.听起来非常简单,但有很多要考虑的问题: ① 公平:如何保证每个节点都能被分配资源 ② ...
- 【Vuejs】397- Vue 3最值得期待的五项重大更新
作者|Filip Rakowski 译者|王强 编辑|王文婧 最近关于即将发布的 Vue.js 的第 3 个大版本的消息越来越密集.虽然本文所讨论的内容还没有完全确定下来,但作者已经可以肯定它将是对当 ...
- SOLID:面向对象设计的前五项原则
S.O.L.I.D是Robert C. Martin提出的前五个面向对象设计(OOD)原则的首字母缩写,他更为人所熟知的名字是Uncle Bob. 将这些原理结合在一起,可使程序员轻松开发易于维护 ...
- Docker与k8s的恩怨情仇(五)——Kubernetes的创新
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 上节中我们提到了社区生态的发展使得Kubernetes得到了良性的发展和传播.比起相对封闭的Docker社区 ...
- Visual Studio 2017十五项新功能体验
Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP 2017技术峰会将于这个周末(3.17)在北京举办,由 ...
- 十五项指标衡量DevOps是否成功
DevOps在你的组织内部运行的如何?如果你需要一些帮助来度量它的运行情况,我们已经准备了一个用于跟踪的关键DevOps指标的列表,这些度量可以帮助了解你的团队是如何随着时间的推移而运行的. 在团队内 ...
- 国外牛人的五个Kubernetes学习建议
现在云中存在的许多系统都是建立在基于虚拟机,虚拟磁盘等物理概念的抽象基础之上的,”Heptio的联合创始人兼首席技术官兼Kubernetes在Google的原始开发人员之一的Joe Beda说. “K ...
- 三十五、kubernetes NameSpace介绍
Kubernetes NameSpace 介绍 Kubernetes使用命名空间的概念帮助解决集群中在管理对象时的复杂性问题.命名空间允许将对象分组到一起,便于将它们作为一个单元进行筛选和控制.无论是 ...
- 五、kubernetes节点与令牌管理
Kubernetes节点与令牌管理 一.令牌管理 查看令牌 [root@master ~]# kubeadm token list 删除令牌 [root@master ~]# kubeadm toke ...
随机推荐
- JVM指令分析
代码: 1 public class AppGo{ 2 public static void test() { 3 boolean flag = true; 4 if (flag) System.ou ...
- Python 之 Numpy 框架入门
NumPy 目录 NumPy 基础使用 基本数据类型 创建基本数组 数组属性 数组生成 zeros.ones.empty 数组生成 numpy.zeros numpy.ones numpy.empty ...
- 【Java】Java中StringBuilder()成员方法append()和toString()
StringBuilder就相当于C++的String长度可变,用于构造字符串对象,内部使用自动扩容的数组操作字符串数据. StringBuilder和StringBuffer使用的是相同的API[区 ...
- Vue源码学习(十七):实现computed计算属性
好家伙,本章我们尝试实现computed属性 0.完整代码已开源 https://github.com/Fattiger4399/analytic-vue.git 1.分析 1.1computed的常 ...
- typora写作
平时写博客,一般采用typora,但是字体颜色和上传到博客园的图片大小和居中问题,总是很糟糕,偶然发现输入法里面还有自定义的短语,能够解决这个问题. <p><img src=&quo ...
- [ABC264Ex] Perfect Binary Tree
Problem Statement We have a rooted tree with $N$ vertices numbered $1,2,\dots,N$. The tree is rooted ...
- TypeError: 'module' object is not callable (pytorch在进行MNIST数据集预览时出现的错误)
在使用pytorch在对MNIST数据集进行预览时,出现了TypeError: 'module' object is not callable的错误: 上报错信息图如下: 从图中可以看出,报错位置为第 ...
- Oracle表空间和数据文件
表空间:tablespace 表空间就是:存放数据库表.索引.等等对象的逻辑空间. oracle数据在安装并创建实例后,默认会自动创建多个表空间. ORACL默认表空间 SYSTEM表空间 存放ora ...
- 安装华企盾DSC加密软件,USB、银行key等驱动加载不了常见处理方法
1.首先打开高级客户端查看客户端的权限是否正确 2.将USB设置成放行 3.修改USB管控的注册表 4.安装6.6.0高版本,并添加便捷式设备的注册表改为1见下图 5.添加flag000如正常则把相关 ...
- 华企盾DSC防泄密系统造成应用程序卡慢、编译卡问题
1.先看看个人模式是否正常,正常则跟进程有关加密nofile.不启用进程水印.不启用文件夹大小缓存(源码文件去掉需慎重)都关掉.允许进程间访问(procmon排查是否有其它进程访问) 2.检查是否与H ...