【发布时间】:2020-01-23 13:40:50
【问题描述】:
我正在尝试限制除少数 pod 之外的所有 pod 以特权模式运行。
所以我创建了两个 Pod 安全策略: 一种允许运行特权容器,一种用于限制特权容器。
[root@master01 vagrant]# kubectl get psp
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP READONLYROOTFS VOLUMES
privileged true RunAsAny RunAsAny RunAsAny RunAsAny false *
restricted false RunAsAny RunAsAny RunAsAny RunAsAny false *
创建了可以使用 pod 安全策略“restricted”的集群角色,并将该角色绑定到集群中的所有服务帐户
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: psp-restricted
rules:
- apiGroups: ['policy']
resources: ['podsecuritypolicies']
verbs: ['use']
resourceNames:
- restricted
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: psp-restricted
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: psp-restricted
subjects:
- kind: Group
name: system:serviceaccounts
apiGroup: rbac.authorization.k8s.io
现在我以“特权”模式部署一个 pod。但它正在部署。创建的 pod 注释表明在 pod 创建期间验证了 psp“特权”。这是为什么 ?受限制的 PSP 应该得到验证吗?
apiVersion: v1
kind: Pod
metadata:
name: psp-test-pod
namespace: default
spec:
serviceAccountName: default
containers:
- name: pause
image: k8s.gcr.io/pause
securityContext:
privileged: true
[root@master01 vagrant]# kubectl create -f pod.yaml
pod/psp-test-pod created
[root@master01 vagrant]# kubectl get pod psp-test-pod -o yaml |grep kubernetes.io/psp
kubernetes.io/psp: privileged
Kubernetes 版本:v1.14.5
我在这里错过了什么吗?任何帮助表示赞赏。
【问题讨论】: