其他
K8s 实践 | 如何解决多租户集群的安全隔离问题?
导读:如何解决多租户集群的安全隔离问题是企业上云的一个关键问题,本文主要介绍 Kubernetes 多租户集群的基本概念和常见应用形态,以及在企业内部共享集群的业务场景下,基于 Kubernetes 原生和 ACK 集群现有安全管理能力快速实现多租户集群的相关方案。
其中软隔离更多的是面向企业内部的多租需求,该形态下默认不存在恶意租户,隔离的目的是为了内部团队间的业务保护和对可能的安全攻击进行防护;
而硬隔离面向的更多是对外提供服务的服务供应商,由于该业务形态下无法保证不同租户中业务使用者的安全背景,我们默认认为租户之间以及租户与 K8s 系统之间是存在互相攻击的可能,因此这里也需要更严格的隔离作为安全保障。
1. 企业内部共享集群的多租户
集群管理员:具有集群的管理能力(扩缩容、添加节点等操作);负责为租户管理员创建和分配命名空间;负责各类策略(RAM/RBAC / networkpolicy / quota...)的 CRUD;
租户管理员:至少具有集群的 RAM 只读权限;管理租户内相关人员的 RBAC 配置;
租户内用户:在租户对应命名空间内使用权限范围内的 K8s 资源。
2. SaaS & KaaS 服务模型下的多租户
1. 访问控制
AuthN & AuthZ & Admission
NetworkPolicy
PodSecurityPolicy
OPA
2. 资源调度相关
Resource Quotas & Limit Range
Pod Priority/Preemption
Dedicated Nodes
3. 敏感信息保护
secrets encryption at REST
开启 Kubernetes 集群的默认安全配置:开启 RBAC 鉴权并实现基于namespace的软隔离;开启 secrets encryption 能力,增强敏感信息保护;基于 CIS Kubernetes benchmarks 进行相应的安全配置;
开启 NodeRestriction、AlwaysPullImages、PodSecurityPolicy 等相关 admission controllers;
通过 PSP 限制 pod 部署的特权模式,同时控制其运行时刻 SecurityContext;
配置 NetworkPolicy;
使用 Resource Quota & Limit Range 限制租户的资源使用配额;
在应用运行时刻遵循权限的最小化原则,尽可能缩小 pod 内容器的系统权限;
Log everything;
对接监控系统,实现容器应用维度的监控。
使用如 OPA 等动态策略引擎进行网络或 Object 级别的细粒度访问控制;
使用安全容器实现容器运行时刻内核级别的安全隔离;
完备的监控、日志、存储等服务的多租隔离方案。
文章来源:阿里巴巴云原生,点击查看原文。
福利
扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!
推荐阅读:
华为组织架调整,Cloud&AI升至第四大BG,打通全球第一款集成5G模组的4K直播编码器网络通信服务;谷歌宣布与IBM合作……
贾扬清感谢信:阿里开源10年,致敬千万开源人
2019全年盘点之一:公链生死战场
鲲鹏之大,何止几千里?