CKS 考试题整理 (16)-Pod安全策略

发布时间 2023-06-16 16:47:47作者: 打工人,打工魂

Task

创建一个名为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

 

参考资料

https://kubernetes.io/zh-cn/docs/reference/command-line-tools-reference/kube-apiserver/#%E9%80%89%E9%A1%B9

https://kubernetes.io/docs/concepts/security/pod-security-policy/

 

解答

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

直接用提供的模板改下比较方便

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