本章目标:
- 建立 Kubernetes + Rook-Ceph 生产安全基线
- 防止数据泄露、误操作、权限滥用
- 满足企业安全规范、等保、安全审计要求
- 实现 Ceph、Kubernetes、网络、密钥全链路安全
10.1 Rook-Ceph安全体系总览
生产环境安全模型:
用户
|
Kubernetes API
|
+-----------------+----------------+
| |
RBAC权限 Admission控制
|
|
Rook Operator
|
+-------+---------+---------+
| | | |
MON MGR OSD CSI
|
|
Ceph Authentication
|
|
数据加密
|
|
存储设备
10.2 安全风险分类
| 风险 | 影响 | 防护 |
|---|---|---|
| 管理员权限泄露 | 数据删除 | RBAC |
| Ceph Key泄露 | 存储访问 | Secret管理 |
| 网络攻击 | 数据窃取 | 网络隔离 |
| 误删除PVC | 业务中断 | 备份 |
| 节点入侵 | 数据泄露 | 硬化 |
| 勒索攻击 | 数据损坏 | 不可变备份 |
10.3 Ceph认证体系
Ceph使用:
CephX
认证机制
查看:
ceph auth list
示例:
client.admin
client.rbd
client.cephfs
10.4 禁止使用client.admin
不推荐
应用:
client.admin
原因:
权限:
mon *
osd *
mgr *
等同:
root权限
推荐
创建专用账号:
例如:
ceph auth get-or-create client.k8s-app \
mon 'profile rbd' \
osd 'profile rbd pool=kubernetes-rbd'
查看:
ceph auth get client.k8s-app
10.5 Ceph Key权限最小化
查看:
ceph auth caps client.xxx
示例:
client.app
mon:
allow r
osd:
allow rw pool=app-pool
生产原则:
一个业务
一个Ceph用户
一个Pool
10.6 Kubernetes RBAC安全
10.6.1 查看Cluster管理员
kubectl get clusterrolebinding
危险:
cluster-admin
绑定过多
10.6.2 创建Ceph运维角色
示例:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: rook-ceph-viewer
namespace: rook-ceph
rules:
- apiGroups:
- ""
resources:
- pods
- services
verbs:
- get
- list
10.7 Rook Operator安全
Rook Operator权限很高:
包括:
- 创建Pod
- 修改CRD
- 创建Secret
检查:
kubectl describe sa rook-ceph-operator \
-n rook-ceph
建议:
独立Namespace
rook-ceph
不要:
default
10.8 Kubernetes Secret安全
Rook Secret:
查看:
kubectl get secret \
-n rook-ceph
例如:
rook-ceph-mon
rook-csi-rbd
rook-csi-cephfs
10.8.1 禁止明文保存
禁止:
kubectl get secret -o yaml
直接发送到:
- Git
- Wiki
- 工单
10.9 Secret加密
开启Kubernetes Encryption
配置:
apiVersion: apiserver.config.k8s.io/v1
kind: EncryptionConfiguration
resources:
- resources:
- secrets
providers:
- aescbc:
keys:
- name: key1
secret: BASE64KEY
- identity: {}
重启:
kube-apiserver
验证:
kubectl get secret \
-o yaml
内容:
应该:
k8s:enc:aescbc
10.10 Ceph数据加密
Ceph支持:
1. LUKS磁盘加密
架构:
OSD
|
LUKS
|
BlueStore
2. 应用层加密
例如:
数据库:
TDE
10.11 OSD磁盘安全
磁盘清理
退役:
必须:
ceph osd purge
然后:
sgdisk --zap-all /dev/sdX
禁止:
直接:
rm -rf
10.12 节点安全加固
OS基线
推荐:
Ubuntu 22.04/24.04
或者:
Rocky Linux 9
SSH安全
禁止密码:
PasswordAuthentication no
禁止root:
PermitRootLogin no
10.13 网络安全隔离
推荐网络:
业务网络
10.0.0.0/16
|
|
Kubernetes
|
Ceph Cluster Network
172.16.0.0/16
10.14 NetworkPolicy
限制访问:
示例:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: rook-ceph-only
spec:
podSelector:
matchLabels:
app: rook-ceph-osd
policyTypes:
- Ingress
- Egress
10.15 Ceph TLS安全
查看:
ceph config dump | grep ssl
启用:
ceph config set global ms_cluster_mode secure
验证:
ceph config get global ms_cluster_mode
结果:
secure
10.16 Ceph Dashboard安全
默认:
HTTP
不推荐
开启HTTPS
查看:
ceph mgr services
创建证书:
ceph dashboard create-self-signed-cert
生产:
建议使用:
- 企业CA
- cert-manager
10.17 Dashboard账号管理
查看:
ceph dashboard ac-user-show
创建管理员:
ceph dashboard ac-user-create \
admin \
password \
administrator
禁止:
共享账号
10.18 审计日志
Kubernetes Audit
开启:
apiserver参数:
--audit-policy-file
记录:
包括:
- PVC删除
- Secret读取
- RBAC修改
10.19 Ceph日志审计
查看:
ceph log last
查看:
ceph log dump
输出:
例如:
client.admin deleted pool
10.20 Prometheus安全监控
监控:
OSD
指标:
ceph_osd_up
容量
ceph_cluster_total_used_bytes
权限异常
监控:
secret access
RBAC change
10.21 告警规则
Ceph异常
PrometheusRule:
groups:
- name: ceph
rules:
- alert:
CephHealthError
expr:
ceph_health_status != 0
for:
5m
10.22 Vault集成
企业推荐:
Hashicorp Vault
|
|
Ceph/K8s Secret
用途:
- 保存Ceph Key
- 保存数据库密码
- 自动轮换
10.23 Rook-Ceph Secret轮换
流程:
生成新Key
|
更新Secret
|
滚动CSI
|
验证PVC
查看:
kubectl rollout restart daemonset \
csi-rbdplugin \
-n rook-ceph
10.24 防勒索安全设计
备份隔离
生产:
Ceph
|
Velero
|
MinIO
|
WORM/Object Lock
权限隔离
备份账号:
只允许:
write
禁止:
delete
10.25 等保/企业安全基线
身份认证
| 项目 | 要求 |
|---|---|
| RBAC | 必须 |
| MFA | 推荐 |
| SSH Key | 必须 |
| 密码策略 | 必须 |
数据安全
| 项目 | 要求 |
|---|---|
| 备份 | 必须 |
| 加密 | 推荐 |
| 恢复演练 | 必须 |
运维安全
| 项目 | 要求 |
|---|---|
| 审计日志 | 必须 |
| 操作留痕 | 必须 |
| 权限审批 | 推荐 |
10.26 生产安全检查清单
| 项目 | 状态 |
|---|---|
| 禁用client.admin应用访问 | □ |
| RBAC最小权限 | □ |
| Secret加密 | □ |
| TLS开启 | □ |
| Dashboard HTTPS | □ |
| 网络隔离 | □ |
| Audit开启 | □ |
| 备份隔离 | □ |
| 权限审计 | □ |
| 恢复演练 | □ |
10.27 生产推荐安全架构
用户
|
SSO/MFA
|
Kubernetes RBAC
|
Rook Operator
|
+----------+----------+
| |
CephX TLS
| |
+----------+----------+
|
Ceph Cluster
|
Encrypted Disk
|
Backup System
|
Disaster Site