13장. seccomp 프로필 구성


OpenShift Container Platform 컨테이너 또는 Pod는 하나 이상의 잘 정의된 작업을 수행하는 단일 애플리케이션을 실행합니다. 애플리케이션에는 일반적으로 기본 운영 체제 커널 API의 작은 하위 집합만 필요합니다. 보안 컴퓨팅 모드 seccomp는 사용 가능한 시스템 호출의 하위 집합만 사용하여 컨테이너에서 실행되는 프로세스를 제한하기 위해 사용할 수 있는 Linux 커널 기능입니다.

restricted-v2 SCC는 4.15에서 새로 생성된 모든 Pod에 적용됩니다. 기본 seccomp 프로필 runtime/default 는 이러한 Pod에 적용됩니다.

seccomp 프로필은 디스크에 JSON 파일로 저장됩니다.

중요

seccomp 프로필은 권한 있는 컨테이너에 적용할 수 없습니다.

13.1. Pod에 적용되는 기본 seccomp 프로필 확인

OpenShift Container Platform에는 runtime/default 로 참조되는 기본 seccomp 프로필이 포함되어 있습니다. 4.15에서 새로 생성된 Pod에는 SCC(Security Context Constraint)가 restricted-v2 로 설정되어 있고 기본 seccomp 프로필이 Pod에 적용됩니다.

프로세스

  1. 다음 명령을 실행하여 Pod에 설정된 SCC(보안 컨텍스트 제약 조건) 및 기본 seccomp 프로필을 확인할 수 있습니다.

    1. 네임스페이스에서 실행 중인 Pod를 확인합니다.

      $ oc get pods -n <namespace>

      예를 들어, workshop 네임스페이스에서 실행 중인 Pod를 확인하려면 다음을 실행합니다.

      $ oc get pods -n workshop

      출력 예

      NAME                READY   STATUS      RESTARTS   AGE
      parksmap-1-4xkwf    1/1     Running     0          2m17s
      parksmap-1-deploy   0/1     Completed   0          2m22s

    2. Pod를 검사합니다.

      $ oc get pod parksmap-1-4xkwf -n workshop -o yaml

      출력 예

      apiVersion: v1
      kind: Pod
      metadata:
        annotations:
          k8s.v1.cni.cncf.io/network-status: |-
            [{
                "name": "openshift-sdn",
                "interface": "eth0",
                "ips": [
                    "10.131.0.18"
                ],
                "default": true,
                "dns": {}
            }]
          k8s.v1.cni.cncf.io/network-status: |-
            [{
                "name": "openshift-sdn",
                "interface": "eth0",
                "ips": [
                    "10.131.0.18"
                ],
                "default": true,
                "dns": {}
            }]
          openshift.io/deployment-config.latest-version: "1"
          openshift.io/deployment-config.name: parksmap
          openshift.io/deployment.name: parksmap-1
          openshift.io/generated-by: OpenShiftWebConsole
          openshift.io/scc: restricted-v2 1
          seccomp.security.alpha.kubernetes.io/pod: runtime/default 2

      1
      워크로드가 다른 SCC에 액세스할 수 없는 경우 restricted-v2 SCC가 기본적으로 추가됩니다.
      2
      4.15에서 새로 생성된 Pod에는 SCC에서 요구하는 대로 runtime/default 로 seccomp 프로필이 구성됩니다.

13.1.1. 업그레이드된 클러스터

클러스터에서 4.15로 업그레이드된 모든 인증된 사용자는 restrictedrestricted-v2 SCC에 액세스할 수 있습니다.

예를 들어 업그레이드 시 OpenShift Container Platform v4.10 클러스터에서 restricted SCC에 의해 허용된 워크로드는 restricted-v2에 의해 허용될 수 있습니다. restricted-v2restrictedrestricted-v2 간에 더 제한적인 SCC이기 때문입니다.

참고

워크로드는 re complexted-v2 를 사용하여 실행할 수 있어야 합니다.

반대로 privilegeEscalation 이 필요한 워크로드와는 반대로 이 워크로드에서는 인증된 모든 사용자에 대해 제한된 SCC를 계속 사용할 수 있습니다. restricted-v2 에서는 privilegeEscalation 을 허용하지 않기 때문입니다.

13.1.2. 새로 설치된 클러스터

새로 설치된 OpenShift Container Platform 4.11 이상의 클러스터의 경우 restricted-v2 는 인증된 사용자가 사용할 수 있는 SCC로 restricted SCC를 대체합니다. restricted-v2 는 기본적으로 인증된 사용자에게 사용 가능한 유일한 SCC이므로 privilegeEscalation: true 가 클러스터에 허용되지 않습니다.

privilegeEscalation 기능은 restricted으로 허용되지만 restricted-v2로는 허용되지 않습니다. restricted SCC에서 허용하는 것보다 restricted-v2 에서는 더 많은 기능이 거부됩니다.

privilegeEscalation: true 가 있는 워크로드는 새로 설치된 OpenShift Container Platform 4.11 이상 클러스터에 허용될 수 있습니다. RoleBinding을 사용하여 워크로드를 실행하는 ServiceAccount(또는 이 워크로드를 허용할 수 있는 기타 SCC)에 제한된 SCC에 대한 액세스 권한을 부여하려면 다음 명령을 실행합니다.

$ oc -n <workload-namespace> adm policy add-scc-to-user <scc-name> -z <serviceaccount_name>

OpenShift Container Platform 4.15에서 Pod 주석 seccomp.security.alpha.kubernetes.io/pod: runtime/defaultcontainer.seccomp.security.alpha.io/<container_name>: runtime/default 가 더 이상 사용되지 않습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.