CIS Kubernetes 벤치마크

인터넷 보안 센터(Center for Internet Security, CIS )는 ‘ CIS ’ Kubernetes 벤치마크를 발표하고 있습니다. 이 벤치마크는 Kubernetes 를 보다 안전하게 구성하고, 다양한 산업 규제에 부합하는 표준을 준수하기 위한 구체적인 단계별 지침의 틀을 제공합니다.

새 Kubernetes 버전이 지원되는 Red Hat OpenShift 버전의 일부로 릴리스되면, IBM 엔지니어가 벤치마크와 Kubernetes 버전을 실행하는 클러스터의 기본 구성을 비교하고 이 문서에 결과를 공개합니다. Red Hat® OpenShift® on IBM Cloud® 클러스터의 특정 버전이 CIS Kubernetes 벤치마크를 충족하는 방법을 검토할 수 있습니다.

지원되는 벤치마크 버전

이 목록을 참고하여 지원되는 버전에 대한 CIS Kubernetes 벤치마크 결과를 확인하십시오.

벤치마크 사용

보안 관리자 또는 감사자는 회사의 내부 표준 및 외부 규제 요구사항을 CIS Kubernetes 벤치마크와 비교하려고 할 수 있습니다. 벤치마크 권장사항은 IBM이 아닌 인터넷 보안 센터에서 제공합니다. IBM은 모든 권장사항을 충족시키는 방식으로 기본 설정을 구성하지 않을 수 있지만 검토에 도움이 되도록 권장사항의 충족 여부를 문서화합니다. 예를 들어, 기본 보안 조치가 적용 중인지 여부를 확인하고 보안을 강화할 수 있는 위치를 식별하기 위해 감사 중에 벤치마크를 사용할 수 있습니다.

이 벤치마크는 어떤 내용을 다루나요?

벤치마크에는 마스터 컴포넌트, etcd, 제어 플레인 구성, 작업자 노드, 정책(사용자, 네트워크 및 팟(Pod) 보안)에 대한 권장사항이 포함됩니다.

벤치마크 권장 사항은 무엇을 의미하나요?

벤치마크 권장사항에는 다음과 같은 점수 매김, 레벨, 결과 상태 및 책임이 포함됩니다.

  • 스코어링
    • 스코어링됨: 권장사항이 충족되었는지 여부에 따라 전체 벤치마크 점수가 증가하거나 감소합니다.
    • 스코어링되지 않음: 전체 벤치마크 점수가 권장사항이 충족되었는지 여부에 영향을 받지 않습니다.
  • 레벨
    • 레벨 1: 서비스를 저하시키지 않고 구성될 수 있는 실제 보안 조치입니다.
    • 레벨 2: 서비스의 성능 또는 기능을 저하시킬 수 있는 좀 더 심층적인 보안 조치입니다.
  • 결과
    • 패스: 서비스가 벤치마크 권장사항을 준수합니다.
    • 실패: 기본적으로 서비스는 벤치마크 권장사항을 준수하지 않습니다. 벤치마크 권장사항을 준수하기 위해 수행할 수 있는 가능한 조치와 설명은 권장사항 절을 참조하십시오.
  • 책임
    • IBM: IBM은 벤치마크에서 권장하는 설정을 구성할 책임이 있습니다.
    • 공유: 사용자와 IBM은 벤치마크에서 권장하는 설정을 구성할 책임을 공유합니다.

벤치마크에서 제가 담당해야 할 부분은 무엇입니까?

Red Hat OpenShift on IBM Cloud가 관리 오퍼링이므로 IBM은 이미 사용자에 맞게 많은 보안 설정을 구성했습니다. 예를 들어, IBM이 관리하고 자동으로 업데이트를 클러스터 마스터에 적용합니다. 작업자 노드의 경우 IBM은 보안 및 버전 업데이트를 제공하지만 사용자는 업데이트를 적용해야 합니다. 워크로드 애플리케이션 및 데이터에 대한 책임도 사용자에게 있습니다. 자세한 정보는 Red Hat OpenShift on IBM Cloud 사용 시 사용자의 책임을 참조하십시오.

서비스의 일부가 권고 사항을 준수하지 못하면 어떻게 될까요?

먼저, 권장사항 단계에서 발생하는 실패에 대한 설명을 확인하십시오.

그런 다음, 해당 실패가 보안 요구사항에 따라 허용 가능한지 여부를 판별하십시오. 예를 들어, 일부 권장사항은 특정 프로세스 또는 표준에 필요한 요구사항보다 더욱 심층적인 구성 요구사항이 될 수 있습니다. 또한 일부 권장사항은 스코어링되지 않으며 전체 벤치마크 점수에 영향을 주지 않습니다.

그런 다음 컴포넌트가 책임에 포함되는지 확인하십시오. 해당되는 경우 컴포넌트의 구성 방법을 변경해야 할 수 있습니다. 예를 들어, 모든 앱 배치를 위해 보안 컨텍스트 제한조건을 구성할 수 있습니다. 책임에 직접 포함되어 있지 않은 컴포넌트의 경우 권장사항을 충족시키는 데 다른 IBM Cloud 서비스를 사용할 수 있는지 여부를 평가하십시오.

클러스터의 보안 및 규정 준수를 강화하기 위해 또 어떤 조치를 취할 수 있을까요?

Red Hat OpenShift on IBM Cloud에 대한 보안을 참조하십시오.

작업자 노드 CIS Kubernetes 벤치마크 실행

섹션 4: 작업자 노드 보안 구성에 대한 CIS Kubernetes 벤치마크 결과를 검토하려면 테스트를 직접 실행할 수 있습니다. 작업자 노드를 소유하고 있고 규제 준수에 대한 부분적 책임이 있으므로 유효성 검증할 구성을 변경할 수 있습니다.

이러한 단계는 Red Hat OpenShift 버전 4.5 이상만 실행하는 클러스터에 적용됩니다.

시작하기 전에: 계정에 로그인하십시오. If applicable, target the appropriate resource group. 클러스터에 대한 컨텍스트를 설정하십시오.

  1. 리소스에 대한 프로젝트를 작성하여 벤치마크를 실행하십시오.

    oc create ns ibm-kube-bench-test
    
  2. kube-samples GitHub 저장소에 있는 confignode 구성 파일을 사용하여 ConfigMap 를 생성합니다.

    1. confignode 구성 파일을 ibm 라는 로컬 디렉터리에 다운로드하십시오. 또한 저장소를 복제하고 ibm 디렉토리로 이동할 수도 있습니다.
    2. --from-file 옵션을 사용하여 구성 파일을 다운로드한 ibm 디렉터리를 지정함으로써 ConfigMap 를 생성합니다.
        oc create cm kube-bench-node -n ibm-kube-bench-test --from-file ibm
        ```
    
  3. 이전에 작성한 구성을 기반으로 벤치마크 테스트를 실행할 작업을 작성하십시오.

    oc apply -n ibm-kube-bench-test -f https://raw.githubusercontent.com/IBM-Cloud/kube-samples/master/cis-kube-benchmark/cis-1.5/ibm/job-node.yaml
    
  4. 작업이 완료되었는지 확인하십시오.

    oc get pods -n ibm-kube-bench-test -l job-name=kube-bench-node
    

    출력 예

    NAME                    READY   STATUS      RESTARTS   AGE
    kube-bench-node-hlvhc   0/1     Completed   0          23s
    
  5. 팟(Pod) 로그를 확인하여 작업자 노드에 대한 CIS Kubernetes 벤치마크 결과를 검토하십시오.

    oc logs -n ibm-kube-bench-test -l job-name=kube-bench-node --tail=-1
    

    출력 예

    == Summary ==
    20 checks PASS
    2 checks FAIL
    1 checks WARN
    0 checks INFO
    
  6. 선택사항: 결과를 검토한 후 작성한 리소스를 삭제하십시오.

    oc delete ns ibm-kube-bench-test