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 ...
随机推荐
- 技术向:一文读懂卷积神经网络CNN(转)
目录(?)[-] 卷积神经网络 神经网络 卷积神经网络 1 局部感知 2 参数共享 3 多卷积核 4 Down-pooling 5 多层卷积 ImageNet-2010网络结构 DeepID网络结构 ...
- 浅析KV存储之长尾时延解决办法
本文分享自华为云社区<浅析KV存储之长尾时延问题,华为云 GeminiDB Redis 探寻行业更优解决方案!>,作者:华为云数据库GaussDB NoSQL团队. 目前,KV存储的广泛使 ...
- Vivado生成bitstream时报错[Opt 31-67] Problem: A LUT3 cell in the design is missing a connection on input pin I1, which is used by the LUT equation
这个原因主要是因为有一个引脚没有用到,解决方法. 1.打开Schematic. 2.根据提示的模块去找,比如说我的报错. [Opt 31-67] Problem: A LUT3 cell in the ...
- 在 Ubuntu 22.04 系统上为 SSH 开启基于时间的 TOTP 认证
前言 一次性密码(英语:one-time password,简称OTP),又称动态密码或单次有效密码,是指电脑系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或一段短时间内.基于时间的 ...
- go并发 - channel
概述 并发编程是利用多核心能力,提升程序性能,而多线程之间需要相互协作.共享资源.线程安全等.任何并发模型都要解决线程间通讯问题,毫不夸张的说线程通讯是并发编程的主要问题.go使用著名的CSP(Com ...
- httpclients 和 okhttp 区别
HttpClient使用介绍使用HttpClient发送请求主要分为以下几步骤: 创建 CloseableHttpClient对象或CloseableHttpAsyncClient对象,前者同步,后者 ...
- SQL执行insert into后返回主键ID
1 select @@identity 2 select SCOPE_IDENTITY() 3 select IDENT_CURRENT('table') 注解:@@IDENTITY 返回当前会话的所 ...
- Linux笔记01: Linux简介
1.1 操作系统 计算机系统是由硬件子系统(处理器.内存.硬盘.键盘.鼠标.显示屏等)和软件子系统(如Windows操作系统.Office办公软件等)组成. 操作系统(Operating System ...
- [USACO2007NOVG] Sunscreen
题目描述 To avoid unsightly burns while tanning, each of the$ C (1 ≤ C ≤ 2500) $cows must cover her hide ...
- springBoot——整合junit
spring整合junit复习 springBoot整合junit package com.example.springboot_04; import com.example.springboot_0 ...