apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: restricted annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: 'docker/default,runtime/default' apparmor.security.beta.kubernetes.io/allowedProfileNames: 'runtime/default' seccomp.security.alpha.kubernetes.io/defaultProfileName: 'runtime/default' apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default' spec: privileged: false # 루트로의 에스컬레이션을 방지하는데 필요하다. allowPrivilegeEscalation: false # 이것은 루트가 아닌 사용자 + 권한 에스컬레이션을 허용하지 않는 것으로 중복이지만, # 심층 방어를 위해 이를 제공한다. requiredDropCapabilities: - ALL # 기본 볼륨 유형을 허용한다. volumes: - 'configMap' - 'emptyDir' - 'projected' - 'secret' - 'downwardAPI' # 클러스터 관리자가 설정한 퍼시스턴트볼륨을 사용하는 것이 안전하다고 가정한다. - 'persistentVolumeClaim' hostNetwork: false hostIPC: false hostPID: false runAsUser: # 루트 권한없이 컨테이너를 실행해야 한다. rule: 'MustRunAsNonRoot' seLinux: # 이 정책은 노드가 SELinux가 아닌 AppArmor를 사용한다고 가정한다. rule: 'RunAsAny' supplementalGroups: rule: 'MustRunAs' ranges: # 루트 그룹을 추가하지 않는다. - min: 1 max: 65535 fsGroup: rule: 'MustRunAs' ranges: # 루트 그룹을 추가하지 않는다. - min: 1 max: 65535 readOnlyRootFilesystem: false