Kubernetes 的 Role-Based Access Control (RBAC) 是一种访问控制机制,用于控制 Kubernetes 资源对用户的访问权限。通过 RBAC,您可以定义不同角色的权限,并将这些角色分配给用户。

RBAC 的基本概念

  • Role (角色): 角色是一组权限的集合。
  • Subject (主体): 主体可以是用户、组或服务账户。
  • Policy (策略): 策略定义了角色可以执行的操作和访问的资源。

RBAC 的使用场景

  • 限制对特定资源的访问:例如,只允许某些用户访问特定的命名空间。
  • 自动化部署:通过为 CI/CD 管道中的服务账户设置适当的权限,自动化部署过程。

RBAC 的配置

要配置 RBAC,您需要创建以下资源:

  • Role:定义角色和权限。
  • RoleBinding:将角色绑定到主体。
  • ClusterRole:集群级别的角色。
  • ClusterRoleBinding:集群级别的角色绑定。

示例

以下是一个简单的 RBAC 配置示例:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: default
  name: reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: reader-binding
  namespace: default
subjects:
- kind: User
  name: alice
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role
  name: reader
  apiGroup: rbac.authorization.k8s.io

扩展阅读

了解更多关于 Kubernetes RBAC 的信息,请访问 Kubernetes RBAC 官方文档


图片

  • Kubernetes RBAC

返回首页