Role-Based Access Control (RBAC)
Role-Based Access Control (RBAC) is a key security feature in Kubernetes that regulates user and service account permissions.
Core Components:
Role
: Defines permissions within a namespaceClusterRole
: Defines permissions cluster-wideRoleBinding
: Grants a Role to a user/service account within a namespaceClusterRoleBinding
: Grants a ClusterRole cluster-wide
Example Role:
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: default
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
Binding the Role:
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: read-pods
namespace: default
subjects:
- kind: User
name: jane
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io
RBAC helps enforce the principle of least privilege and is essential for securing access to cluster resources.