9장. SecurityContextConstraints [security.openshift.io/v1]
- 설명
- SecurityContextConstraints는 컨테이너에 적용할 SecurityContext에 영향을 주는 요청을 수행할 수 있는 기능을 제어합니다. 이전 이유로 코어 Kubernetes API 그룹에서 SCC가 노출되었습니다. 이러한 노출은 더 이상 사용되지 않으며 향후 릴리스에서 제거될 예정입니다. 사용자는 security.openshift.io 그룹을 사용하여 SecurityContextConstraints를 관리해야 합니다. 호환성 수준 1: 최소 12 개월 또는 3 개의 마이너 릴리스 (더 긴 버전) 동안 주요 릴리스 내에서 사용할 수 있습니다.
- 유형
-
object
- 필수 항목
-
allowHostDirVolumePlugin
-
allowHostIPC
-
allowHostNetwork
-
allowHostPID
-
allowHostPorts
-
allowPrivilegedContainer
-
readOnlyRootFilesystem
-
9.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| allowHostDirVolumePlugin 정책에서 컨테이너에서 HostDir 볼륨 플러그인을 사용할 수 있는지 여부를 결정합니다. |
|
| AllowHostIPC는 정책이 컨테이너에서 호스트 ipc를 허용하는지 여부를 결정합니다. |
|
| AllowHostNetwork는 정책이 Pod 사양에서 HostNetwork를 사용할 수 있는지 여부를 결정합니다. |
|
| AllowHostPID는 정책이 컨테이너에서 호스트 pid를 허용하는지 여부를 결정합니다. |
|
| AllowHostPorts 정책에서 컨테이너의 호스트 포트를 허용하는지 여부를 결정합니다. |
| `` | allowPrivilegeEscalation은 Pod에서 권한 에스컬레이션을 허용하도록 요청할 수 있는지 여부를 결정합니다. 지정되지 않은 경우 기본값은 true입니다. |
|
| allowPrivilegedContainer는 컨테이너를 권한으로 실행하도록 요청할 수 있는지 여부를 결정합니다. |
| `` | allowedCapabilities는 컨테이너에 추가하도록 요청할 수 있는 기능 목록입니다. 이 필드의 기능은 Pod 작성자의 재량에 따라 추가될 수 있습니다. AllowedCapabilities 및 RequiredDropCapabilities 둘 다에 기능을 나열해서는 안 됩니다. 모든 기능을 허용하려면 '*'를 사용할 수 있습니다. |
| `` | AllowedFlexVolumes는 허용된 Flexvolumes의 화이트리스트입니다. 비어 있거나 nil은 모든 Flexvolume을 사용할 수 있음을 나타냅니다. 이 매개변수는 "Volumes" 필드에서 Flexvolumes를 사용할 수 있는 경우에만 적용됩니다. |
| `` | allowedUnsafeSysctls는 명시적으로 허용되는 안전하지 않은 sysctl 목록으로, 기본값은 none입니다. 각 항목은 일반 sysctl 이름이거나 ""로 끝나며, 이 경우 허용된 sysctl의 접두사로 간주됩니다. 단일 *는 안전하지 않은 sysctl이 모두 허용됨을 의미합니다. kubelet은 거부를 방지하기 위해 명시적으로 허용된 안전하지 않은 sysctl을 모두 허용 목록에 추가해야 합니다. 예: "foo/"는 "foo/bar", "foo/baz" 등을 허용합니다. 예를 들어 "foo.*"는 "foo.bar", "foo.baz" 등을 허용합니다. |
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
| `` | defaultAddCapabilities는 Pod 사양이 구체적으로 기능을 삭제하지 않는 한 컨테이너에 추가할 기본 기능 세트입니다. DefaultAddCapabilities 및 RequiredDropCapabilities 둘 다에 용량을 나열할 수 없습니다. |
| `` | defaultAllowPrivilegeEscalation은 프로세스가 상위 프로세스보다 더 많은 권한을 얻을 수 있는지에 대한 기본 설정을 제어합니다. |
| `` | forbiddenSysctls는 명시적으로 금지된 sysctl 목록으로, 기본값은 none입니다. 각 항목은 일반 sysctl 이름이거나 ""으로 끝나며 금지된 sysctl의 접두사로 간주됩니다. 단일 *는 모든 sysctl이 금지됨을 의미합니다. 예: "foo/"는 "foo/bar", "foo/bar", "foo.*" forbids "foo.bar", "foo.baz" 등을 금지합니다. |
| `` | fsGroup은 SecurityContext에서 사용하는 fs 그룹을 지정하는 전략입니다. |
| `` | 이 보안 컨텍스트 제약 조건을 사용할 수 있는 권한이 있는 그룹 |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 메타데이터입니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
| `` | 우선순위는 사용자 및 그룹 필드의 액세스 권한을 기반으로 지정된 Pod 요청에 대해 먼저 시도할 SCC를 평가할 때 SCC의 정렬 순서에 영향을 미칩니다. int가 높을수록 우선 순위가 높습니다. 설정되지 않은 값은 우선순위가 0으로 간주됩니다. 여러 SCC에 대한 점수가 동일한 경우 가장 제한적인 것에서 최소 제한까지 정렬됩니다. 우선순위와 제한이 모두 동일한 경우 SCC는 이름별로 정렬됩니다. |
|
| readOnlyRootFileSystem 을 true로 설정하면 읽기 전용 루트 파일 시스템으로 컨테이너가 실행되도록 강제 적용합니다. 컨테이너에서 읽기가 불가능한 루트 파일 시스템으로 실행되도록 특별히 요청하는 경우 SCC에서 해당 Pod를 거부해야 합니다. false로 설정하면 원하는 경우 읽기 전용 루트 파일 시스템으로 컨테이너가 실행될 수 있지만 강제 적용되지는 않습니다. |
| `` | requiredDropCapabilities는 컨테이너에서 삭제할 기능입니다. 이를 삭제해야 하며 추가할 수 없습니다. |
| `` | RunAsUser는 SecurityContext에 사용되는 RunAsUser를 지시하는 전략입니다. |
| `` | seLinuxContext는 SecurityContext에 설정할 라벨을 지정하는 전략입니다. |
| `` | SeccompProfiles는 Pod 또는 컨테이너의 seccomp 주석에 설정할 수 있는 허용된 프로필을 나열합니다. 설정되지 않은 (nil) 또는 빈 값은 Pod 또는 컨테이너에서 프로필을 지정할 수 없음을 의미합니다. 와일드카드 '*'는 모든 프로필을 허용하는 데 사용할 수 있습니다. Pod 값을 생성하는 데 사용하면 첫 번째 비wildcard 프로필이 기본값으로 사용됩니다. |
| `` | supplementalGroups는 SecurityContext에서 사용하는 추가 그룹을 지시하는 전략입니다. |
| `` | 이 보안 컨텍스트 제약 조건을 사용할 수 있는 권한이 있는 사용자 |
| `` | volumes는 허용된 볼륨 플러그인의 화이트 목록입니다. fstype은 VolumeSource (azureFile, configMap, emptyDir)의 필드 이름과 직접 일치합니다. 모든 볼륨을 허용하려면 "*"를 사용할 수 있습니다. 볼륨을 허용하지 않으려면 ["none"]로 설정합니다. |