WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Kubernetes · Expert · question 63 of 100

How do you configure and manage Role-Based Access Control (RBAC) for cluster resources in Kubernetes?

📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

Role-Based Access Control (RBAC) is a mechanism in Kubernetes that controls access to cluster resources based on the roles and permissions assigned to users and service accounts. RBAC allows Kubernetes administrators to define fine-grained access control policies that restrict access to sensitive resources and operations.

Here are the steps involved in configuring and managing RBAC in Kubernetes:

Define Roles and RoleBindings: The first step in configuring RBAC is to define Roles and RoleBindings. A Role defines a set of permissions for a specific namespace, while a RoleBinding associates a Role with a user or service account.

For example, a Role might grant read-only access to Pods and Services in a namespace, while a RoleBinding might associate the Role with a user or service account, such as a developer or a CI/CD pipeline.

Here’s an example YAML file for defining a Role that grants read-only access to Pods and Services in the "default" namespace:

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: pod-reader
  namespace: default
rules:
- apiGroups: [""] \# "" indicates the core API group
  resources: ["pods", "services"]
  verbs: ["get", "watch", "list"]

Here’s an example YAML file for defining a RoleBinding that associates the Role with a user or service account:

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: read-pods-services
  namespace: default
subjects:
- kind: User
  name: john@example.com
roleRef:
  kind: Role
  name: pod-reader
  apiGroup: rbac.authorization.k8s.io

Apply Roles and RoleBindings: Once Roles and RoleBindings have been defined, they need to be applied to the Kubernetes cluster using the kubectl apply command.

For example, to apply the Role and RoleBinding YAML files defined above, you can use the following commands:

kubectl apply -f role.yaml
kubectl apply -f rolebinding.yaml

Verify Access: After applying the Roles and RoleBindings, you can verify access to cluster resources using the kubectl auth can-i command.

For example, to verify if a user john@example.com has read access to Pods and Services in the "default" namespace, you can use the following command:

kubectl auth can-i get pods,services --namespace=default --as=john@example.com

This command will return either "yes" or "no" depending on whether the user has the required permissions.

Here are some additional best practices for configuring and managing RBAC in Kubernetes:

Follow the principle of least privilege when defining Roles and RoleBindings. Only grant the minimum level of permissions required for a user or service account to perform their tasks. Regularly audit and review RBAC policies to ensure they are up-to-date and aligned with the organization’s security policies. Use service accounts for applications and workloads that require access to cluster resources. Service accounts can be assigned Roles and RoleBindings, just like users, but have the advantage of being managed and rotated automatically by Kubernetes.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Kubernetes interview — then scores it.
📞 Practice Kubernetes — free 15 min
📕 Buy this interview preparation book: 100 Kubernetes questions & answers — PDF + EPUB for $5

All 100 Kubernetes questions · All topics