RBAC资源以允许服务账户获取default命名空间中的Pod
解决方案
按照题目要求,我们需要完成以下步骤:
- 创建服务账户
app-account - 创建角色
app-role-cka并设置权限只能获取default命名空间中的Pod - 创建角色绑定
app-role-binding-cka将角色绑定到服务账户
1. 创建服务账户
kubectl create serviceaccount app-account
2. 创建角色 app-role-cka
创建一个YAML文件 app-role.yaml:
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: app-role-cka
namespace: default
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get"]
应用这个角色:
kubectl apply -f app-role.yaml
3. 创建角色绑定 app-role-binding-cka
创建一个YAML文件 app-role-binding.yaml:
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: app-role-binding-cka
namespace: default
subjects:
- kind: ServiceAccount
name: app-account
namespace: default
roleRef:
kind: Role
name: app-role-cka
apiGroup: rbac.authorization.k8s.io
应用这个角色绑定:
kubectl apply -f app-role-binding.yaml
验证配置
- 验证服务账户已创建:
kubectl get serviceaccount app-account -n default
- 验证角色已创建并具有正确权限:
kubectl get role app-role-cka -n default -o yaml
- 验证角色绑定已正确关联:
kubectl get rolebinding app-role-binding-cka -n default -o yaml
现在,app-account 服务账户将只能获取default命名空间中的Pod资源。

浙公网安备 33010602011771号