implementing-rbac-for-kubernetes-cluster
配置 Kubernetes 基于角色的访问控制(RBAC),对集群资源强制执行最小权限访问。涵盖 Role/ClusterRole 设计、RoleBinding 配置、服务账户安全、命名空间隔离,以及多租户 Kubernetes 环境的审计日志。
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
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/implementing-rbac-for-kubernetes-cluster/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How implementing-rbac-for-kubernetes-cluster Compares
| Feature / Agent | implementing-rbac-for-kubernetes-cluster | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/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
本技能涵盖通过实施 Pod 安全标准(Pod Security Standards)、网络策略、工作负载身份、RBAC 权限控制、镜像准入控制和运行时安全监控,对 EKS、AKS 和 GKE 上的托管 Kubernetes 集群进行加固。涉及云平台特定安全功能,包括 EKS 的 IRSA、GKE 的工作负载身份(Workload Identity)以及 AKS 的托管身份(Managed Identity)。
scanning-kubernetes-manifests-with-kubesec
使用 Kubesec 对 Kubernetes 资源清单执行安全风险分析,识别错误配置、权限提升风险以及与安全最佳实践的偏差。
performing-kubernetes-penetration-testing
Kubernetes 渗透测试(Penetration Testing)通过对 API server、kubelet、etcd、Pod、RBAC、网络策略和密钥模拟攻击者技术,系统性评估集群安全性。使用 kube-hunter、Kubescape、peirates 等工具识别可能导致集群被攻陷的错误配置。
performing-kubernetes-etcd-security-assessment
通过评估静态加密、TLS 配置、访问控制、备份加密和网络隔离,评估 Kubernetes etcd 集群的安全态势。
performing-kubernetes-cis-benchmark-with-kube-bench
使用 kube-bench 对照 CIS Benchmark 审计 Kubernetes 集群安全态势,对控制平面、工作节点和 RBAC 执行自动化检查。
implementing-zero-trust-with-hashicorp-boundary
使用 HashiCorp Boundary 实现具备动态凭据代理、会话录制和 Vault 集成的身份感知零信任基础设施访问管理。
implementing-zero-trust-with-beyondcorp
使用身份感知代理(IAP,Identity-Aware Proxy)、上下文感知访问策略、设备信任验证和 Access Context Manager,部署 Google BeyondCorp Enterprise 零信任访问控制,对 GCP 资源和内部应用强制执行基于身份和安全态势的访问。
implementing-zero-trust-network-access
通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。
implementing-zero-trust-network-access-with-zscaler
使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构
implementing-zero-trust-in-cloud
本技能指导组织按照 NIST SP 800-207 和 Google BeyondCorp 原则在云环境中实施零信任(Zero Trust)架构,涵盖以身份为中心的访问控制、微分段(Micro-Segmentation)、持续验证、设备信任评估,以及部署身份感知代理(Identity-Aware Proxy)以消除 AWS、Azure 和 GCP 环境中的隐式网络信任。
implementing-zero-trust-for-saas-applications
使用 CASB、SSPM、条件访问策略、OAuth 应用治理和会话控制,为 SaaS 应用实施零信任访问控制, 对云托管服务强制执行身份验证、设备合规性检查和数据保护。
implementing-zero-trust-dns-with-nextdns
将 NextDNS 实施为零信任 DNS 过滤层,提供加密解析、威胁情报阻断、隐私保护,以及跨所有端点的组织策略执行。