题目
创建一个名为restrict-policy的新的PodSecurityPolicy,以防止特权Pod的创建。
创建一个名为restrict-access-role并使用新创建的PodSecurityPolicy restrict-policy的ClusterRole。
在现有的namespace staging中创建一个名为psp-denial-sa的新ServiceAccount。
最后,创建一个名为dany-access-bind的ClusterRoleBinding ,
将新创建的ClusterRole restrict-access-role绑定到新创建的ServiceAccount psp-denial-sa。
你可以在一下位置找到模版清单文件:
/cks/psp/psp.yaml
参考
Pod Security Policies | Kubernetes
步骤
1 确保 /etc/kubernetes/manifests/kube-apiserver.yaml中PodSecurityPolicy是存在的,没有加上重启kubelet
- --enable-admission-plugins=NodeRestriction,PodSecurityPolicy
2 vi /cks/psp/psp.yaml
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:
name: restrict-policy #改下名字
spec:
privileged: false # 修改为false
seLinux:
rule: RunAsAny
supplementalGroups:
rule: RunAsAny
runAsUser:
rule: RunAsAny
fsGroup:
rule: RunAsAny
volumes:
- '*'
3 创建cluserrole和serviceaccount
直接用提供的模板改下比较方便
Pod Security Policies | Kubernetes
也可以用命令行
kubectl create clusterrole restrict-access-role --verb=use --resource=psp --resource-name=restrict-policy
kubectl create sa psp-denial-sa -n staging
kubectl create clusterrolebinding dany-access-bind --clusterrole=restrict-access-role --serviceaccount=staging:psp-denial-sa