Kubernetes安全基础
Kubernetes安全基础 🛡️
RBAC(基于角色的访问控制)👥
RBAC 是一种基于组织中个人用户角色来调节对计算机或网络资源访问的方法。RBAC 授权使用rbac.authorization.k8s.io API 组来驱动授权决策,允许您通过 Kubernetes API 动态配置策略。
RBAC核心对象
RBAC API 声明了四种 Kubernetes 对象:
- Role: 定义在特定命名空间内的权限
- ClusterRole: 可在集群范围内使用的权限
- RoleBinding: 将Role绑定到用户、组或ServiceAccount
- ClusterRoleBinding: 将ClusterRole绑定到用户、组或ServiceAccount
ServiceAccount与Role或ClusterRole绑定后,可以为Pod提供身份标识和访问权限。
Pod Security Policy(Pod安全策略)🚫
⚠️ 注意: PodSecurityPolicy 已在 Kubernetes v1.21 中被弃用,并在 v1.25 中被移除。
取而代之的是 Pod Security Admission(Pod 安全准入控制器)或第三方准入插件来对 Pod 强制执行类似的限制。
Pod Security Admission(Pod安全准入)✅
Pod Security Admission 根据 Pod 安全标准定义的三个级别,对 Pod 的安全上下文和其他相关字段设置要求。这是 Kubernetes 引入的一个功能,用于为 Pod 强制执行清晰一致的隔离级别。
三个安全级别
- Privileged: 无限制,最宽松的安全策略
- Baseline: 最小限度的限制,防止已知的权限提升
- Restricted: 严格限制,最大程度的安全保障
NetworkPolicy(网络策略)🌐
如果您希望在 IP 地址或端口级别(OSI 第 3 层或第 4 层)控制流量,NetworkPolicy 允许您为集群内的流量以及 Pod 与外部世界之间的流量指定规则。
使用前提
您的集群必须使用支持 NetworkPolicy 执行的网络插件。
功能特性
NetworkPolicy 是一组规则,用于确定 Pod 如何相互通信以及与外部服务通信。它提供了集群网络级别的安全控制,可以限制 Pod 之间的网络访问。
典型应用场景
- 限制Pod之间的网络通信
- 控制Pod与外部服务的访问
- 实现网络分段和隔离
- 防止横向移动攻击
注意事项 ⚠️
- 在生产环境中使用前,建议在测试环境充分验证
- 定期更新安全策略以应对新的安全威胁
0