【K8S认证】2023年CKS考题-RBAC权限控制(解析+答案)

题目:RBAC权限控制

Context

绑定到 Pod 的 ServiceAccount 的 Role 授予了过度宽松的权限。请完成以下项目以减少权限集。

Task

一个名为 web-pod 的现有 Pod 已在 namespace db 中运行。编辑绑定到 Pod 的 ServiceAccount service-account-web 的现有 Role,仅允许只对 services 类型的资源执行 get 操作。
在 namespace db 中创建一个名为 role-2 ,并仅允许只对 namespaces 类型的资源执行 delete 操作的新 Role。
创建一个名为 role-2-binding 的新 RoleBinding,将新创建的 Role 绑定到 Pod 的 ServiceAccount。

注意:请勿删除现有的 RoleBinding。

参考

https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/#role-and-clusterole

https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/#一些命令行工具

解答

切换集群

kubectl config use-context KSCH00201

查看 ServiceAccount rolebinding 对应关系

kubectl -n db describe rolebindings

编辑 role-1 权限

kubectl -n db edit role role-1

添加如下内容

rules:
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - get

 添加后如下图所示

【K8S认证】2023年CKS考题-RBAC权限控制(解析+答案)_第1张图片

检查一下

kubectl -n db describe role role-1

【K8S认证】2023年CKS考题-RBAC权限控制(解析+答案)_第2张图片

在db命名空间,创建名为role-2的role,并且通过rolebinding绑定service-account-web,只允许对namespaces做delete操作。

注意: --verb是权限,可能考delete或者update等 --resource是对象,可能考namespaces或者persistentvolumeclaims等。

kubectl -n db create role role-2 --verb=delete --resource=namespaces
kubectl -n db create rolebinding role-2-binding --role=role-2 --serviceaccount=db:service-account-web

检查一下

kubectl -n db describe rolebindings

【K8S认证】2023年CKS考题-RBAC权限控制(解析+答案)_第3张图片

你可能感兴趣的:(K8S,kubernetes,1024程序员节,k8s,cks认证)