diff --git a/pod-security-policies/README.md b/pod-security-policies/README.md index 5950940..e0ac16f 100644 --- a/pod-security-policies/README.md +++ b/pod-security-policies/README.md @@ -7,3 +7,15 @@ mkdir -p ~/.minikube/files/etc/kubernetes/addons/ cp initial-psp.yaml ~/.minikube/files/etc/kubernetes/addons/psp.yaml minikube start --extra-config=apiserver.enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorageClass,DefaultTolerationSeconds,NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,PodSecurityPolicy ``` + +## Kops + +``` +kops edit cluster kubernetes.newtech.academy --state=s3://... +``` +Add: +``` + kubeAPIServer: + appendAdmissionPlugins: + - PodSecurityPolicy +``` diff --git a/pod-security-policies/restricted-psp.yaml b/pod-security-policies/restricted-psp.yaml new file mode 100644 index 0000000..a4fea6e --- /dev/null +++ b/pod-security-policies/restricted-psp.yaml @@ -0,0 +1,60 @@ +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: restricted +spec: + privileged: false + allowPrivilegeEscalation: false + requiredDropCapabilities: + - ALL + volumes: + - 'configMap' + - 'emptyDir' + - 'projected' + - 'secret' + - 'downwardAPI' + - 'persistentVolumeClaim' + hostNetwork: false + hostIPC: false + hostPID: false + runAsUser: + rule: 'MustRunAsNonRoot' + seLinux: + rule: 'RunAsAny' + supplementalGroups: + rule: 'MustRunAs' + ranges: + # Forbid adding the root group. + - min: 1 + max: 65535 + fsGroup: + rule: 'MustRunAs' + ranges: + # Forbid adding the root group. + - min: 1 + max: 65535 + readOnlyRootFilesystem: false +--- +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: default:restricted +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: psp:restricted +subjects: +- kind: Group + name: system:authenticated + apiGroup: rbac.authorization.k8s.io