mcpField
K
kubernetes-security-policies

kubernetes-security-policies

github.com/nickcrew安全62101 次安装17 周前更新
代码仓库

关于 kubernetes-security-policies

Kubernetes Security Policies 是关于 Kubernetes 集群安全策略实施的指导技能,面向负责集群加固、审计和合规的运维与安全团队。内容涵盖从 Pod 与网络策略到访问控制、密钥、镜像及运行时安全的实践流程。

主要功能

  1. 01配置 Pod Security Standards
  2. 02设计 Network Policies 网络隔离
  3. 03按最小权限配置 RBAC
  4. 04设置容器 Security Context
  5. 05部署准入控制策略
  6. 06管理密钥、镜像与运行时安全

适用场景

  1. 01加固生产 Kubernetes 集群
  2. 02审查并修复 RBAC 权限
  3. 03实施网络微隔离与准入策略
  4. 04开展 CIS 等合规评估

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/nickcrew/claude-cortex --skill kubernetes-security-policies

安装后在 Claude Code 中输入/kubernetes-security-policies确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
admission-control.md
best-practices.md
image-security.md
network-policies.md
pod-security-standards.md
rbac.md
secrets-management.md
security-contexts.md

详细介绍

Kubernetes 安全策略

有关在 Kubernetes 集群中实施安全策略的全面指南,涵盖 Pod Security Standards、Network Policies、RBAC、安全上下文、准入控制、机密管理和运行时安全,助力构建生产级加固部署。

何时使用此技能

  • 在各命名空间中实施 Pod Security Standards(PSS/PSA)
  • 设计并实施 Network Policies,实现微隔离
  • 配置 RBAC,以最小权限原则控制访问
  • 设置安全上下文以加固容器
  • 部署准入控制器(OPA/Gatekeeper、Kyverno)
  • 安全地管理机密和敏感数据
  • 实施镜像安全和漏洞扫描
  • 实施运行时安全策略和威胁检测
  • 满足合规要求(CIS、NIST、PCI-DSS、SOC2)
  • 开展安全审计和加固评估

核心安全概念

Pod Security Standards(PSS): 通过 Pod Security Admission(PSA)实施的三个逐步加强的安全级别:

  • 特权: 不受限制(默认)
  • 基线: 防止已知的权限提升
  • 受限: Pod 加固最佳实践(生产环境推荐)

Network Policies: 通过标签选择器和命名空间隔离控制 Pod 之间及 Pod 与外部之间流量的零信任微隔离。

RBAC(基于角色的访问控制): 遵循最小权限原则,通过 ServiceAccounts、Roles、RoleBindings 控制命名空间范围的权限,并通过 ClusterRoles 控制集群范围的访问。

安全上下文: 容器和 Pod 级别的安全设置,包括用户/组 ID、功能、seccomp 配置文件和文件系统限制。

准入控制: 在 API 准入时使用 OPA Gatekeeper(Rego)或 Kyverno(YAML)实施策略,以验证、修改或拒绝资源。

机密管理: 集成外部机密存储(Vault、AWS Secrets Manager、Sealed Secrets),而非使用 Kubernetes 原生机密。

镜像安全: 漏洞扫描、签名验证、基于摘要的不可变性,以及私有注册表身份验证。

快速参考

任务加载参考资料
Pod Security Standards(PSS/PSA)skills/kubernetes-security-policies/references/pod-security-standards.md
Network Policiesskills/kubernetes-security-policies/references/network-policies.md
RBAC(Roles、ServiceAccounts)skills/kubernetes-security-policies/references/rbac.md
安全上下文(功能、seccomp)skills/kubernetes-security-policies/references/security-contexts.md
准入控制(OPA、Kyverno)skills/kubernetes-security-policies/references/admission-control.md
机密管理(Vault、ESO)skills/kubernetes-security-policies/references/secrets-management.md
镜像安全(扫描、签名)skills/kubernetes-security-policies/references/image-security.md
最佳实践与合规skills/kubernetes-security-policies/references/best-practices.md

安全实施工作流

阶段 1:基线评估
  1. 使用 kube-bench 或 kubescape 审计当前安全态势
  2. 识别与 CIS Kubernetes Benchmark 的差距
  3. 记录合规要求(PCI-DSS、NIST、SOC2)
阶段 2:Pod Security Standards
  1. 在所有命名空间中启用 PSA 审计模式
  2. 使用 kubectl get pods -A --show-labels 识别违规项
  3. 修正工作负载,使其符合基线/受限标准
  4. 逐步实施:dev(警告)→ staging(基线)→ prod(受限)
阶段 3:网络分段
  1. 在所有命名空间中部署默认拒绝的 NetworkPolicy
  2. 为必要的流量创建明确的允许规则
  3. 实施数据库隔离策略
  4. 添加监控/可观测性例外规则
阶段 4:访问控制(RBAC)
  1. 使用 kubectl auth can-i --list 审核现有 RBAC
  2. 为每个应用创建专用 ServiceAccount
  3. 定义遵循最小权限原则的 Role,并明确限制资源和操作动词
  4. 默认禁用 automountServiceAccountToken
  5. 尽量减少 ClusterRole 的使用
阶段 5:准入控制
  1. 选择策略引擎:OPA Gatekeeper(Rego)或 Kyverno(YAML)
  2. 实施验证策略:要求设置标签、资源限制,并以非 root 用户运行
  3. 添加变更策略:注入安全上下文和 sidecar 容器
  4. 强制执行镜像策略:禁止使用 latest 标签,要求提供签名
阶段 6:密钥管理
  1. 部署 External Secrets Operator 或 Vault 集成
  2. 将原生 Secrets 迁移到外部密钥存储
  3. 启用 etcd 静态数据加密
  4. 实施密钥轮换策略
阶段 7:镜像安全
  1. 在 CI/CD 中集成漏洞扫描(Trivy、Snyk)
  2. 使用 Sigstore/Cosign 实施镜像签名
  3. 通过准入控制强制验证签名
  4. 使用不可变的镜像摘要,而非标签
阶段 8:运行时安全
  1. 部署 Falco 以检测运行时威胁
  2. 启用 Kubernetes 审计日志
  3. 针对安全事件配置告警
  4. 实施入侵检测策略

常见错误

Pod 安全:

  • 以 root 身份运行容器(始终设置 runAsNonRoot: true)
  • 使用特权容器(除非绝对必要,否则应避免)
  • 根文件系统可写(设置 readOnlyRootFilesystem: true)
  • 未设置资源限制(受限 PSS 要求设置资源限制)

网络策略:

  • 未设置默认拒绝策略(Pod 间流量不受限制)
  • 出站规则过于宽松(允许所有外部流量)
  • 忘记设置 DNS 出站规则(Pod 无法解析名称)
  • 未设置监控/可观测性例外规则

RBAC:

  • ClusterRole 权限过于宽泛(违反最小权限原则)
  • 多个应用共用 ServiceAccount
  • 在 Role 中使用 * 动词或资源
  • 未定期审计 RBAC 权限

密钥:

  • 将密钥提交到 Git 仓库
  • 使用环境变量,而非挂载文件
  • 将 Base64 编码当作加密
  • 未设置密钥轮换策略

准入控制:

  • 未先经过审计阶段就强制执行策略
  • 意外阻止 kube-system 命名空间
  • 未在预发布环境中测试策略
  • 未为系统组件设置豁免

镜像:

  • 使用 latest 标签(不可变性缺失,会破坏可复现性)
  • CI/CD 中未进行漏洞扫描
  • 在生产环境中使用未签名镜像
  • 基础镜像过大(使用 distroless 或 Alpine)

资源

评论

支持 Markdown