16.4.3. 보안 컨텍스트 제약 조건
RBAC 리소스에서 사용자 액세스를 제어하는 방식과 유사하게 관리자는 SCC(보안 컨텍스트 제약 조건)를 사용하여 Pod에 대한 권한을 제어할 수 있습니다. 이러한 권한은 Pod에서 수행할 수 있는 작업과 액세스할 수 있는 리소스를 결정합니다. SCC를 사용하여 Pod에서 실행해야 하는 조건 집합을 정의할 수 있습니다.
보안 컨텍스트 제약 조건을 통해 관리자는 다음 보안 제약 조건을 제어할 수 있습니다.
-
Pod에서
allowPrivilegedContainer플래그를 사용하여 권한 있는 컨테이너를 실행할 수 있는지 여부 -
Pod가
allowPrivilegeEscalation플래그로 제한되는지 여부 - 컨테이너에서 요청할 수 있는 기능
- 호스트 디렉터리를 볼륨으로 사용
- 컨테이너의 SELinux 컨텍스트
- 컨테이너 사용자 ID
- 호스트 네임스페이스 및 네트워킹 사용
-
Pod 볼륨을 보유한
FSGroup의 할당 - 허용되는 추가 그룹의 구성
- 컨테이너에 루트 파일 시스템에 대한 쓰기 액세스 권한이 필요한지 여부
- 볼륨 유형 사용
-
허용 가능한
seccomp프로필 구성
기본 SCC는 설치 중에 그리고 일부 Operator 또는 기타 구성 요소를 설치할 때 생성됩니다. 클러스터 관리자는 OpenShift CLI(oc)를 사용하여 고유한 SCC를 생성할 수도 있습니다.
기본 보안 컨텍스트 제약 조건에 대한 자세한 내용은 기본 보안 컨텍스트 제약 조건 을 참조하십시오.
기본 SCC를 수정하지 마십시오. 기본 SCC를 사용자 정의하면 일부 플랫폼 Pod 배포 또는 OpenShift Container Platform이 업그레이드되는 경우 문제가 발생할 수 있습니다. 또한 일부 클러스터 업그레이드 중에 기본 SCC 값이 기본값으로 재설정되므로 해당 SCC에 대한 모든 사용자 정의를 삭제합니다.
기본 SCC를 수정하는 대신 필요에 따라 자체 SCC를 생성하고 수정합니다. 자세한 단계는 보안 컨텍스트 제약 조건 생성 을 참조하십시오.
다음 기본 SCC를 사용할 수 있습니다.
-
restricted -
restricted-v2
restricted-v2 SCC는 새 설치에서 제공하는 가장 제한적인 SCC이며 기본적으로 인증된 사용자에게 사용됩니다. 원래 restricted SCC가 덜 제한되므로 PSA(Pod Security Admission) 제한 사항에 맞게 보안을 향상시킵니다. 또한 여러 릴리스에서 원래 SCC에서 v2로 전환하는 데 도움이 됩니다. 결국 원래 SCC는 더 이상 사용되지 않습니다. 따라서 restricted-v2 SCC를 사용하는 것이 좋습니다.
다음 명령을 실행하여 restricted-v2 SCC를 검사할 수 있습니다.
$ oc describe scc restricted-v2
출력 예
Name: restricted-v2
Priority: <none>
Access:
Users: <none>
Groups: <none>
Settings:
Allow Privileged: false
Allow Privilege Escalation: false
Default Add Capabilities: <none>
Required Drop Capabilities: ALL
Allowed Capabilities: NET_BIND_SERVICE
Allowed Seccomp Profiles: runtime/default
Allowed Volume Types: configMap,downwardAPI,emptyDir,ephemeral,persistentVolumeClaim,projected,secret
Allowed Flexvolumes: <all>
Allowed Unsafe Sysctls: <none>
Forbidden Sysctls: <none>
Allow Host Network: false
Allow Host Ports: false
Allow Host PID: false
Allow Host IPC: false
Read Only Root Filesystem: false
Run As User Strategy: MustRunAsRange
UID: <none>
UID Range Min: <none>
UID Range Max: <none>
SELinux Context Strategy: MustRunAs
User: <none>
Role: <none>
Type: <none>
Level: <none>
FSGroup Strategy: MustRunAs
Ranges: <none>
Supplemental Groups Strategy: RunAsAny
Ranges: <none>
restricted-v2 SCC는 명시적으로 허용하는 것을 제외한 모든 것을 명시적으로 거부합니다. 다음 설정은 허용되는 기능 및 보안 제한을 정의합니다.
-
기본 추가 기능: <
none>로 설정합니다. 즉, 기본적으로 Pod에 기능이 추가되지 않습니다. -
필수 드롭 기능:
모두로 설정합니다. 이렇게 하면 Pod의 모든 기본 Linux 기능이 삭제됩니다. -
허용되는 기능:
NET_BIND_SERVICE. Pod는 이 기능을 요청할 수 있지만 기본적으로 추가되지 않습니다. -
허용된
seccomp프로필:runtime/default.
자세한 내용은 보안 컨텍스트 제약 조건 관리를 참조하십시오.