81·安全进阶

Kubernetes 安全概述

kubernetessecurityconcept

Kubernetes 安全概述

学习目标

  1. 理解 Kubernetes 安全的整体架构
  2. 掌握安全领域的核心组件
  3. 了解安全最佳实践的基本原则

核心概念

一句话解释

Kubernetes 安全是一个多层次、纵深防御的体系,涵盖认证、授权、网络、存储和运行时等多个维度。

安全架构全景

┌─────────────────────────────────────────────────────────────┐
│                    Kubernetes 安全架构                      │
├─────────────────────────────────────────────────────────────┤
│  认证 (Authentication)                                      │
│  ├── 证书认证                                               │
│  ├── Token 认证                                             │
│  └── OpenID Connect                                         │
├─────────────────────────────────────────────────────────────┤
│  授权 (Authorization)                                       │
│  ├── RBAC (基于角色的访问控制)                               │
│  ├── ABAC (基于属性的访问控制)                               │
│  └── Node Authorization                                     │
├─────────────────────────────────────────────────────────────┤
│  准入控制 (Admission Control)                                │
│  ├── ValidatingWebhookConfiguration                         │
│  └── MutatingWebhookConfiguration                           │
├─────────────────────────────────────────────────────────────┤
│  网络安全 (Network Security)                                 │
│  ├── NetworkPolicy                                          │
│  ├── Service Mesh (Istio)                                   │
│  └── Ingress TLS                                           │
├─────────────────────────────────────────────────────────────┤
│  Pod 安全 (Pod Security)                                    │
│  ├── PodSecurityPolicy / Pod Security Standards             │
│  ├── Security Context                                       │
│  └── AppArmor / Seccomp                                     │
├─────────────────────────────────────────────────────────────┤
│  密钥管理 (Secrets Management)                               │
│  ├── Secrets                                                │
│  ├── External Secrets Operator                              │
│  └── HashiCorp Vault                                        │
└─────────────────────────────────────────────────────────────┘

安全层次模型

层次组件作用
集群层API Server 认证授权控制谁能访问集群
命名空间层RBAC、ResourceQuota隔离团队和项目
Pod 层SecurityContext、PSP限制容器权限
网络层NetworkPolicy控制 Pod 间通信
数据层Secrets、Encryption保护敏感数据

核心安全原则

1. 最小权限原则
   - 每个组件只拥有完成任务所需的最小权限
   - 避免使用 cluster-admin 角色

2. 纵深防御
   - 多层安全控制,一层失效不影响整体
   - 认证 + 授权 + 准入控制 + 运行时安全

3. 零信任网络
   - 默认拒绝所有网络流量
   - 显式允许必要的通信

4. 不可变基础设施
   - 容器镜像不可变
   - 配置通过声明式管理

安全组件关系图

用户请求
    │
    ▼
┌─────────────┐
│ API Server  │
│  认证 → 授权 → 准入控制 │
└─────────────┘
    │
    ├── RBAC (谁可以做什么)
    ├── NetworkPolicy (谁能和谁通信)
    ├── PodSecurity (容器能做什么)
    └── Secrets (敏感数据如何存储)

实践练习

练习 1:安全架构理解

回答以下问题:

  1. Kubernetes 安全包含哪几个主要层次?
  2. 认证和授权的区别是什么?
  3. 为什么需要纵深防御?

练习 2:安全审计

检查你的集群,列出以下安全配置:

  1. 是否启用了 RBAC?
  2. 是否配置了 NetworkPolicy?
  3. Secrets 是否加密存储?

常见误解

1. Kubernetes 默认不安全

事实:Kubernetes 提供了安全机制,但需要正确配置
问题:很多集群使用默认配置,未启用安全控制
解决:遵循 CIS Kubernetes Benchmark 进行加固

2. 安全只是一次性工作

事实:安全是持续的过程
问题:配置完成后不再更新
解决:定期审计、更新、扫描漏洞

小结

要点说明
安全架构认证、授权、准入控制、网络安全、Pod 安全、密钥管理
核心原则最小权限、纵深防御、零信任、不可变基础设施
关键组件RBAC、NetworkPolicy、SecurityContext、Secrets
实践建议启用 RBAC、配置网络策略、加密 Secrets、定期审计

练习编辑器

bash
Loading...

继续学习

完成本课后,建议继续学习下一课「RBAC 简介」 以巩固所学知识。