보안 컨텍스트 제한조건 구성

보안 컨텍스트 제한조건(SCC)을 사용하면 Red Hat® OpenShift® on IBM Cloud® 클러스터 내 팟(Pod)이 수행할 수 있는 조치와 액세스를 제어할 수 있습니다. SCC에 대한 자세한 내용은 서를 Red Hat OpenShift 참조하십시오.

왜 보안 컨텍스트 제약 조건을 설정해야 할까요?
클러스터 관리자인 경우에는 클러스터에서 무슨 일이 발생하는지(특히, 클러스터의 보안 또는 준비에 영향을 주는 조치)를 제어하고자 합니다. 보안 컨텍스트 제한조건은 권한 있는 컨테이너, 루트 네임스페이스, 호스트 네트워킹 및 포트, 볼륨 유형, 호스트 파일 시스템, Linux 권한(예: 읽기 전용) 또는 그룹 ID 등의 사용과 같이 컨테이너의 팟(Pod)이 가진 액세스 권한과 조치를 제어하는 데 도움을 줄 수 있습니다.
SCC에 사용자나 시스템 그룹도 추가할 수 있나요?
클러스터 리소스에 대한 사용자 액세스의 경우 SCC를 사용하지 마십시오. 그 대신, 클러스터 액세스 권한 지정을 참조하여 IBM Cloud IAM 및 인프라 권한을 설정하십시오.
시스템 그룹(예: system:authenticated) 경우, 이러한 그룹은 이미 SCC에 지정되어 있습니다. SCC를 설명하여 SCC에 지정된 그룹을 확인할 수 있습니다. 시스템 그룹이 지정된 SCC를 변경하면, 시스템 그룹에 속하는 기본 컴포넌트는 권한 변경으로 인해 오류가 발생할 수 있습니다.
기본적으로 설정된 SCC가 있나요?
기본적으로, Red Hat OpenShift on IBM Cloud 클러스터에는 Red Hat OpenShift SCC 표준 세트가 포함되어 있습니다. 또한, 클러스터에는 IBM SCC가 포함되어 있으며, 이는 IBM Cloud Kubernetes Service 에 있는 커뮤니티 Kubernetes 클러스터의 Kubernetes 포드 보안 정책과 매우 유사합니다. 이러한 IBM SCC는 Cloud Pak과 같은 IBM Cloud Private 패키지에 대한 이식성 개선을 위해 포함되어 있습니다.
내 리소스에는 기본적으로 어떤 SCC가 적용되나요?
보안 컨텍스트를 지정하지 않으면 Red Hat OpenShift restricted (또는 4.11 이상의 restricted-v2 ) 보안 컨텍스트 제한조건이 기본적으로 적용됩니다. 팟(Pod)의 보안 컨텍스트를 확인하려면 다음 예제에서와 같이 팟(Pod)을 설명하고 SCC 어노테이션을 찾으십시오.
oc describe pod <pod_name>
Name:               <pod_name>
Namespace:          <project_name>
...
Annotations:        openshift.io/...
                    openshift.io/scc=restricted
...
대신 Kubernetes 의 Pod 보안 정책을 사용할 수 있나요?
아니오. Kubernetes 팟(Pod)보안 정책 (SP) 은 원래 Red Hat OpenShift SCC를 기반으로 합니다. 그러나 Red Hat OpenShift는 PSP가 아닌 SCC만 지원합니다.

기본 Red Hat OpenShift SCC는 커뮤니티 Kubernetes 클러스터의 기본 PSP 보다 엄격합니다. 이와 같이, 커뮤니티 Kubernetes 클러스터에서 실행하는 앱 배치를 Red Hat OpenShift에서 실행하하도록 수정해야 할 수 있습니다.

보안 컨텍스트 제한조건 사용자 정의

보안 컨텍스트 제약 조건을 생성, 편집, 열거, 삭제 및 기타 방식으로 관리하려면 서를 Red Hat OpenShift 참조하십시오. clusterroles, clusterrolebindings, rolesrolebindings 와 같은 역할 기반 액세스 제어를 사용하여 사용자 또는 그룹에 기본 보안 컨텍스트 제한조건에 대한 권한을 부여할 수도 있습니다. oc adm policy 하위 명령 (예: oc adm policy add-scc-to-user) 을 사용하여 이러한 설정을 관리할 수도 있습니다. oc 버전은 관리 중인 클러스터의 버전과 동일합니다.

SCC에 대한 액세스를 지정하기 위한 가이드라인

  • 해당 서비스 계정에서 실행 중인 팟 (Pod) 에서 사용할 SCC에 특정 서비스 계정에 권한을 부여하십시오.
  • 서비스 계정에 여러 SCC에 대한 액세스 권한이 필요한 경우, 서비스 계정에서 실행 중인 모든 팟 (Pod) 이 동일한 SCC를 사용할 것으로 예상되도록 추가 서비스 계정 작성을 고려하십시오.
  • restricted (4.10 이하) 또는 restricted-v2 (4.11 이상) SCC 이외의 SCC를 사용하도록 모든 사용자 또는 모든 서비스 계정에 권한을 부여하지 마십시오.
  • openshift-* 네임스페이스에서 서비스 계정에 대한 SCC 권한을 변경하지 마십시오. Red Hat OpenShift 컴포넌트는 특정 SCC에서 실행되도록 디자인되었으며 다른 SCC에서 올바르게 작동하지 않을 수 있습니다.

기본 Red Hat OpenShift 보안 컨텍스트 제한조건

Red Hat OpenShift on IBM Cloud 클러스터는 기본적으로 다음 보안 컨텍스트 제한조건과 함께 제공됩니다.

priority, users 또는 groups 필드를 제외하고 기존 Red Hat OpenShift 또는 IBM SCC 설정을 편집하지 마십시오.

기본값 Red Hat OpenShift 보안 컨텍스트 제한조건
SCC 이름 설명
anyuid restricted SCC와 유사한 액세스를 정의하지만 사용자가 UID와 GID로 실행될 수 있게 합니다.
hostaccess 모든 호스트 네임스페이스에 대한 액세스를 허용하지만 여전히 네임스페이스에 할당된 UID와 SELinux 컨텍스트로 팟(Pod)이 실행되어야 합니다.

중요: 네임스페이스, 파일 시스템 및 프로세스 ID에 대한 호스트 액세스가 필요한 신뢰할 수 있는 팟(Pod)에만 이 SCC를 부여하십시오.

hostmount-anyuid restricted SCC와 유사한 액세스를 정의하지만 팟(Pod)을 통해 호스트 마운트 및 UID를 허용합니다. 이 SCC는 주로 지속적 볼륨 리사이클러에서 사용됩니다.

중요: UID 0을 포함하여 UID로 호스트 파일 시스템 액세스가 필요한 팟(Pod)에만 이 SCC를 부여하십시오.

hostnetwork 호스트 네트워킹 및 호스트 포트 사용을 허용하지만 여전히 네임스페이스에 할당된 UID와 SELinux 컨텍스트로 팟(Pod)이 실행되어야 합니다.

중요: 호스트 네트워크 액세스가 필요한 팟(Pod)에만 이 SCC를 부여하십시오.

node-exporter 기본 제공 Prometheus 노드 익스포터에 적절한 액세스를 제공합니다.
nonroot restricted SCC와 유사한 액세스를 정의하지만, 사용자가 루트가 아닌 UID로 실행될 수 있게 합니다. 컨테이너 런타임의 Manifest 또는 사용자가 UID를 지정해야 합니다.
privileged 모든 특권 기능 및 호스트 기능에 대한 액세스 권한을 부여하며, 임의의 사용자, 임의의 그룹, 임의의 fsGroup 설정 및 임의의 SELinux 컨텍스트로 실행할 수 있는 기능을 제공합니다.

중요: 이 SCC는 가능한 한 광범위한 접근 권한이 필요한 클러스터 관리 업무에만 부여하십시오.

restricted 모든 호스트 기능에 대한 액세스를 정의하고 네임스페이스에 할당된 UID와 SELinux 컨텍스트로 팟(Pod)이 실행되어야 합니다. 이는 가장 제한적인 SCC이며 기본적으로 인증된 사용자를 위해 사용됩니다.
hostnetwork-v2 hostnetwork SCC와 유사하지만 팟 (Pod) 보안 표준 Restricted 프로파일과의 차이를 최소화하도록 수정되었습니다.
nonroot-v2 nonroot SCC와 유사하지만 팟 (Pod) 보안 표준 Restricted 프로파일과의 차이를 최소화하도록 수정되었습니다.
restricted-v2 restricted SCC와 유사하지만 팟 (Pod) 보안 표준 Restricted 프로파일을 충족하도록 수정되었습니다.

기본 IBM 보안 컨텍스트 제한조건

Red Hat OpenShift on IBM Cloud 클러스터는 기본적으로 다음 IBM 보안 컨텍스트 제한조건과 함께 제공됩니다.

priority, users 또는 groups 필드를 제외하고 기존 Red Hat OpenShift 또는 IBM SCC 설정을 편집하지 마십시오.

기본 IBM 보안 컨텍스트 제한조건
SCC 이름 설명
ibm-anyuid-hostaccess-scc 팟(Pod)이 UID 및 GID, 볼륨 및 호스트에 대한 전체 액세스로 실행될 수 있게 합니다.

중요: 호스트 및 네트워크에 대한 전체 액세스가 필요한 팟(Pod)에만 이 SCC를 부여하십시오.

ibm-anyuid-hostpath-scc 팟(Pod)이 호스트 경로를 포함해 UID와 GID 및 볼륨으로 실행될 수 있게 합니다.

중요: hostPath 볼륨에 대한 액세스가 필요한 팟(Pod)에만 이 SCC를 부여하십시오.

ibm-anyuid-scc 팟(Pod)이 UID 및 GID로 실행될 수 있게 하지만, 호스트에 대한 액세스는 금지합니다.
ibm-privileged-scc 권한 있는 모든 호스트 기능에 대한 액세스를 부여하고, 팟(Pod)이 UID와 GID 및 볼륨으로 실행될 수 있게 합니다.

중요: 가능한 대부분의 액세스 권한이 필요한 클러스터 관리에만 이 SCC를 부여하십시오.

ibm-restricted-scc 모든 호스트 기능에 대한 액세스를 정의하고 네임스페이스에 할당된 UID와 SELinux 컨텍스트로 팟(Pod)이 실행되어야 합니다. 이 SCC는 가장 제한적인 IBM SCC입니다.