implementing-rbac-for-kubernetes-cluster

配置 Kubernetes 基于角色的访问控制(RBAC),对集群资源强制执行最小权限访问。涵盖 Role/ClusterRole 设计、RoleBinding 配置、服务账户安全、命名空间隔离,以及多租户 Kubernetes 环境的审计日志。

9 stars

Best use case

implementing-rbac-for-kubernetes-cluster is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

配置 Kubernetes 基于角色的访问控制(RBAC),对集群资源强制执行最小权限访问。涵盖 Role/ClusterRole 设计、RoleBinding 配置、服务账户安全、命名空间隔离,以及多租户 Kubernetes 环境的审计日志。

Teams using implementing-rbac-for-kubernetes-cluster should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/implementing-rbac-for-kubernetes-cluster/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/implementing-rbac-for-kubernetes-cluster/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/implementing-rbac-for-kubernetes-cluster/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How implementing-rbac-for-kubernetes-cluster Compares

Feature / Agentimplementing-rbac-for-kubernetes-clusterStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

配置 Kubernetes 基于角色的访问控制(RBAC),对集群资源强制执行最小权限访问。涵盖 Role/ClusterRole 设计、RoleBinding 配置、服务账户安全、命名空间隔离,以及多租户 Kubernetes 环境的审计日志。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 为 Kubernetes 集群实施 RBAC

## 概述
配置 Kubernetes 基于角色的访问控制(RBAC),对集群资源强制执行最小权限访问。涵盖 Role/ClusterRole 设计、RoleBinding 配置、服务账户安全、命名空间隔离,以及多租户 Kubernetes 环境的审计日志。

## 目标
- 为多租户集群设计 RBAC 角色层次结构
- 为不同人员创建细粒度的 Role 和 ClusterRole
- 按最小权限原则配置 RoleBinding 和 ClusterRoleBinding
- 保护服务账户并限制其默认权限
- 将 RBAC 与外部身份提供商(OIDC)集成
- 使用 Kubernetes 审计日志审计和监控 RBAC 使用情况

## 关键概念

### RBAC API 对象
1. **Role**:命名空间范围的权限(命名空间内的 pods、services、deployments)
2. **ClusterRole**:集群范围的权限(nodes、namespaces、PVs、CRDs)
3. **RoleBinding**:在命名空间内将 Role 授予用户/组/服务账户
4. **ClusterRoleBinding**:在集群范围内授予 ClusterRole

### Kubernetes RBAC 动词
- `get`、`list`、`watch`:只读操作
- `create`、`update`、`patch`:写操作
- `delete`、`deletecollection`:破坏性操作
- `impersonate`:模拟其他用户身份
- `escalate`:修改 RBAC 角色(高度特权)
- `bind`:创建 RoleBinding(高度特权)

### 基于人员的访问模型
- **集群管理员**:完整的集群管理权限(限制 2-3 人)
- **命名空间管理员**:在分配的命名空间内完整控制
- **开发者**:在分配的命名空间内部署和管理工作负载
- **只读用户**:对命名空间资源的只读访问
- **CI/CD 服务账户**:部署工作负载,管理 configmaps/secrets

## 实施步骤

### 第 1 步:禁用默认宽松设置
1. 确保 API 服务器启用 `--authorization-mode=RBAC`
2. 移除非管理员用户的默认 cluster-admin 绑定
3. 禁用 pods 中服务账户令牌的自动挂载
4. 限制每个命名空间中默认服务账户的访问权限

### 第 2 步:创建自定义角色
```yaml
# 开发者角色 - 命名空间范围
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: app-team
  name: developer
rules:
- apiGroups: ["", "apps", "batch"]
  resources: ["pods", "deployments", "services", "configmaps", "jobs"]
  verbs: ["get", "list", "watch", "create", "update", "patch", "delete"]
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "list"]  # 可读取但限制创建/更新
- apiGroups: [""]
  resources: ["pods/log", "pods/exec"]
  verbs: ["get", "create"]
```

### 第 3 步:将角色绑定到用户/组
```yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: developer-binding
  namespace: app-team
subjects:
- kind: Group
  name: "dev-team"
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: developer
  apiGroup: rbac.authorization.k8s.io
```

### 第 4 步:保护服务账户
- 为每个应用创建专用服务账户
- 为不需要 API 访问的 pods 禁用 automountServiceAccountToken
- 使用带受众和有效期的投影服务账户令牌
- 为每个服务账户绑定最小所需权限

### 第 5 步:OIDC 集成
1. 使用 OIDC 标志配置 API 服务器(issuer-url、client-id、username-claim、groups-claim)
2. 在 RoleBinding 中将 OIDC 组映射到 Kubernetes 组
3. 使用来自 OIDC 提供商的短期令牌
4. 使用 OIDC 认证插件配置 kubectl

### 第 6 步:审计与监控
- 启用 Kubernetes 审计日志(audit-policy.yaml)
- 记录所有 RBAC 相关事件(角色创建、绑定变更)
- 对 ClusterRoleBinding 的创建/修改发出告警
- 监控权限升级尝试
- 定期审查具有 cluster-admin 访问权限的用户

## 安全控制
| 控制项 | NIST 800-53 | 描述 |
|---------|-------------|------|
| 访问控制 | AC-3 | RBAC 强制执行 |
| 最小权限 | AC-6 | 最小必要 Kubernetes 权限 |
| 账户管理 | AC-2 | 服务账户生命周期 |
| 审计 | AU-3 | Kubernetes 审计日志 |
| 职责分离 | AC-5 | 命名空间隔离 |

## 常见误区
- 向 CI/CD 管道授予 cluster-admin 权限
- 在 ClusterRole 中使用通配符(*)动词或资源
- 未限制 pods/exec(允许容器 shell 访问)
- 保留具有广泛权限的默认服务账户
- 未审计谁可以创建 RoleBinding(权限升级向量)

## 验证清单
- [ ] 所有用户通过 OIDC 认证(无静态令牌/证书)
- [ ] 无不必要的 ClusterRoleBinding 绑定到 cluster-admin
- [ ] 开发者仅限于其分配的命名空间
- [ ] 服务账户使用最小权限角色
- [ ] 默认禁用 automountServiceAccountToken
- [ ] 审计日志记录 RBAC 变更
- [ ] `kubectl auth can-i` 验证每个人员的预期权限

Related Skills

securing-kubernetes-on-cloud

9
from killvxk/cybersecurity-skills-zh

本技能涵盖通过实施 Pod 安全标准(Pod Security Standards)、网络策略、工作负载身份、RBAC 权限控制、镜像准入控制和运行时安全监控,对 EKS、AKS 和 GKE 上的托管 Kubernetes 集群进行加固。涉及云平台特定安全功能,包括 EKS 的 IRSA、GKE 的工作负载身份(Workload Identity)以及 AKS 的托管身份(Managed Identity)。

scanning-kubernetes-manifests-with-kubesec

9
from killvxk/cybersecurity-skills-zh

使用 Kubesec 对 Kubernetes 资源清单执行安全风险分析,识别错误配置、权限提升风险以及与安全最佳实践的偏差。

performing-kubernetes-penetration-testing

9
from killvxk/cybersecurity-skills-zh

Kubernetes 渗透测试(Penetration Testing)通过对 API server、kubelet、etcd、Pod、RBAC、网络策略和密钥模拟攻击者技术,系统性评估集群安全性。使用 kube-hunter、Kubescape、peirates 等工具识别可能导致集群被攻陷的错误配置。

performing-kubernetes-etcd-security-assessment

9
from killvxk/cybersecurity-skills-zh

通过评估静态加密、TLS 配置、访问控制、备份加密和网络隔离,评估 Kubernetes etcd 集群的安全态势。

performing-kubernetes-cis-benchmark-with-kube-bench

9
from killvxk/cybersecurity-skills-zh

使用 kube-bench 对照 CIS Benchmark 审计 Kubernetes 集群安全态势,对控制平面、工作节点和 RBAC 执行自动化检查。

implementing-zero-trust-with-hashicorp-boundary

9
from killvxk/cybersecurity-skills-zh

使用 HashiCorp Boundary 实现具备动态凭据代理、会话录制和 Vault 集成的身份感知零信任基础设施访问管理。

implementing-zero-trust-with-beyondcorp

9
from killvxk/cybersecurity-skills-zh

使用身份感知代理(IAP,Identity-Aware Proxy)、上下文感知访问策略、设备信任验证和 Access Context Manager,部署 Google BeyondCorp Enterprise 零信任访问控制,对 GCP 资源和内部应用强制执行基于身份和安全态势的访问。

implementing-zero-trust-network-access

9
from killvxk/cybersecurity-skills-zh

通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。

implementing-zero-trust-network-access-with-zscaler

9
from killvxk/cybersecurity-skills-zh

使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构

implementing-zero-trust-in-cloud

9
from killvxk/cybersecurity-skills-zh

本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。

implementing-zero-trust-for-saas-applications

9
from killvxk/cybersecurity-skills-zh

使用 CASB、SSPM、条件访问策略、OAuth 应用治理和会话控制,为 SaaS 应用实施零信任访问控制, 对云托管服务强制执行身份验证、设备合规性检查和数据保护。

implementing-zero-trust-dns-with-nextdns

9
from killvxk/cybersecurity-skills-zh

将 NextDNS 实施为零信任 DNS 过滤层,提供加密解析、威胁情报阻断、隐私保护,以及跨所有端点的组织策略执行。