《Kubernetes Rook-Ceph 运维手册 v1.0(生产版)》- 第十章:Rook-Ceph 安全加固与生产合规

本章目标:

  • 建立 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

相关推荐
xianyuCcCcCCCcc3 小时前
Ceph 分布式存储:集群配置与存储池管理
运维·分布式·ceph
人生匆匆5 天前
docker部署ceph集群
ceph·docker·容器
xianyuCcCcCCCcc5 天前
Ceph 分布式存储:核心架构与集群部署
分布式·ceph·架构
梅菲塔亚6 天前
Ceph分布式存储
分布式·ceph
Terry_Tsang8 天前
CephFS 故障分析
ceph
逐流人21 天前
Ceph对象存储与文件系统存储管理:从RADOS网关、S3与Swift到CephFS快照同步
linux·运维·ceph·云原生·云计算·swift·rados
逐流人22 天前
Ceph分布式存储集群配置与池管理:从配置优先级到PG、复本池与纠删码池
运维·分布式·ceph·云原生·云计算·rados
月落汀兰22 天前
建池后类型不可修改!深度拆解 Ceph PG 放置组,副本 / 纠删码池选型,快照与命名空间避坑
运维·ceph
.冰块.22 天前
Ceph 分布式存储实战(二):存储池管理与 cephx 认证授权
分布式·ceph·rados·纠删码·复本池·cephx认证与用户权限
.冰块.22 天前
Ceph 分布式存储实战(一):架构入门与 cephadm 集群部署
分布式·ceph·架构·cephadm