CIS 벤치마크

이 문서에서는 CIS Kubernetes 벤치마크 정의, 벤치마크로 규정 준수를 감사하는 방법, 권장사항을 직접 구현할 수 없는 경우 GKE On-Prem으로 구성되는 항목에 대해 설명합니다.

CIS 벤치마크 사용

인터넷 보안 센터(CIS)는 보안 권장 수준을 위한 벤치마크를 출시합니다. CIS Kubernetes 벤치마크는 강력한 보안 수준 지원을 위한 Kubernetes 구성 권장 수준 집합을 제공합니다. 벤치마크는 특정 Kubernetes 출시에 연결됩니다. CIS Kubernetes 벤치마크는 오픈소스 Kubernetes 배포용으로 작성되었으며, 가능한 한 배포 간 범용 적용이 가능하도록 고안되었습니다.

버전

여러 벤치마크는 버전 번호가 동일하지 않을 수 있습니다.

이 문서에서는 다음과 같은 버전이 사용됩니다.

Anthos 버전 Kubernetes 버전 CIS Kubernetes 벤치마크 버전
1.4.0 1.16 1.5.1

CIS Kubernetes 벤치마크

벤치마크 액세스

CIS Kubernetes 벤치마크는 CIS 웹사이트에서 제공됩니다.

권장 수준

CIS Kubernetes 벤치마크에서 권장 수준은 다음과 같습니다.

수준 설명
수준 1

권장 수준은 다음과 같습니다.

  • 실용적이고 신중해야 합니다.
  • 명확한 보안 이점을 제공해야 합니다.
  • 허용 범위를 벗어나는 기술 활용성을 제한하지 않아야 합니다.
  • 수준 2

    수준 1 프로필을 확장합니다.

    권장 수준에 다음 특성 중 하나 이상이 포함되어야 합니다.

  • 보안이 매우 중요한 환경 또는 사용 사례용으로 사용됩니다.
  • 심층 방어 수단으로 사용됩니다.
  • 기술 활용성 또는 성능에 부정적 영향을 줄 수 있습니다.
  • 권장 수준 점수

    CIS Kubernetes 벤치마크에서 권장 수준은 다음과 같습니다.

    점수 설명
    점수 있음 이 권장 수준을 준수하지 못하면 최종 벤치마크 점수가 줄어듭니다.
    점수 없음 이 권장 수준을 준수하지 못해도 최종 벤치마크 점수가 줄어들지 않습니다.

    GKE On-Prem에서 평가

    GKE On-Prem에서 Kubernetes 권장 수준 상태를 지정하기 위해 사용되는 값은 다음과 같습니다.

    상태 설명
    통과 벤치마크 권장 수준을 준수합니다.
    실패 벤치마크 권장 수준을 준수하지 않습니다.
    동등 제어 벤치마크 권장 수준의 조항을 정확하게 준수하지 않지만 동등한 보안 제어를 제공하기 위한 다른 메커니즘이 GKE On-Prem에 존재합니다.
    환경에 따라 다름 GKE On-Prem에서 이 권장 수준과 관련된 항목이 구성되지 않습니다. 해당 환경이 벤치마크 권장 수준을 준수하는지 여부는 사용자 구성에 따라 결정됩니다.

    GKE On-Prem 아키텍처

    GKE On-Prem은 '관리자 클러스터'를 사용하여 실제 Kubernetes 워크로드를 실행하는 하나 이상의 '사용자 클러스터'를 관리합니다. 이 아키텍처에 대한 자세한 내용은 GKE On-Prem 개요를 참조하세요. 관리자 클러스터와 사용자 클러스터 모두 아래 벤치마크를 기준으로 평가됩니다.

    GKE On-Prem의 상태

    지정된 버전으로 새 GKE On-Prem 클러스터를 만드는 경우 CIS Kubernetes 벤치마크에 대해 작업을 수행하는 방법은 다음과 같습니다.

    GKE On-Prem 관리자 클러스터의 상태:

    # 권장사항 점수 있음/점수 없음 수준 상태
    1 마스터 노드 보안 구성
    1.1 마스터 노드 구성 파일
    1.1.1 API 서버 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.2 API 서버 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.3 컨트롤러 관리자 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.4 컨트롤러 관리자 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.5 스케줄러 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.6 스케줄러 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.7 etcd Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.8 etcd Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.9 컨테이너 네트워크 인터페이스 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.10 컨테이너 네트워크 인터페이스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.11 etcd 데이터 디렉터리 권한이 700 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.12 etcd 데이터 디렉터리 소유권이 etcd:etcd로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.13 admin.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.14 admin.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.15 scheduler.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.16 scheduler.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.17 controller-manager.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.18 controller-manager.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.19 Kubernetes PKI 디렉터리 및 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.1.20 Kubernetes PKI 인증서 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.21 Kubernetes PKI 키 파일 권한이 600로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.2 API 서버
    1.2.1 --anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.2 --basic-auth-file 인수가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.3 --token-auth-file 매개변수가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.4 --kubelet-https 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.5 --kubelet-client-certificate--kubelet-client-key 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.6 --kubelet-certificate-authority 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.7 --authorization-mode 인수가 AlwaysAllow로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.8 --authorization-mode 인수에 노드가 포함되는지 확인합니다. 점수 있음 L1 통과
    1.2.9 --authorization-mode 인수에 RBAC가 포함되는지 확인합니다. 점수 있음 L1 통과
    1.2.10 허용 제어 플러그인 EventRateLimit가 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.11 허용 제어 플러그인 AlwaysAdmit가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.12 허용 제어 플러그인 AlwaysPullImages가 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.13 PodSecurityPolicy가 사용되지 않은 경우 허용 제어 플러그인 SecurityContextDeny가 설정되었는지 확인합니다. 점수 없음 L1 동등 제어
    1.2.14 허용 제어 플러그인 ServiceAccount가 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.15 허용 제어 플러그인 NamespaceLifecycle이 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.16 허용 제어 플러그인 PodSecurityPolicy가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.17 허용 제어 플러그인 NodeRestriction이 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.18 --insecure-bind-address 인수가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.19 --insecure-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.20 --secure-port 인수가 0로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.21 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.22 --audit-log-path 인수가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.23 --audit-log-maxage 인수가 30 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.24 --audit-log-maxbackup 인수가 10 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.25 --audit-log-maxsize 인수가 100 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.26 --request-timeout 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.27 --service-account-lookup 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.28 --service-account-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.29 --etcd-certfile--etcd-keyfile 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.30 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.31 --client-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.32 --etcd-cafile 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.33 --encryption-provider-config 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.34 암호화 공급자 적합한 값으로 구성되었는지 확인합니다. 점수 없음 L1 경고
    1.2.35 API 서버는 강력한 암호화만 사용합니다. 점수 없음 L1 통과
    1.3 컨트롤러 관리자
    1.3.1 --terminated-pod-gc-threshold 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.3.2 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.3 --use-service-account-credentials 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.4 --service-account-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.5 --root-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.6 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L2 동등 제어
    1.3.7 --bind-address 인수가 127.0.0.1로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.4 스케줄러
    1.4.1 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.4.2 --bind-address 인수가 127.0.0.1로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2 Etcd 노드 구성
    2 Etcd 노드 구성 파일
    2.1 --cert-file--key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.2 --client-cert-auth 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.3 --auto-tls 인수가 true로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    2.4 --peer-cert-file--peer-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.5 --peer-client-cert-auth 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.6 --peer-auto-tls 인수가 true로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    2.7 고유한 인증 기관이 etcd에 사용되었는지 확인합니다. 점수 없음 L2 통과
    3 제어 영역 구성
    3.1 인증 및 승인
    3.1.1 사용자에 대해 클라이언트 인증서 인증을 사용하지 않아야 합니다. 점수 없음 L2 경고
    3.2 Logging
    3.2.1 최소 감사 정책이 생성되었는지 확인합니다. 점수 있음 L1 동등 제어
    3.2.2 감사 정책에 주요 보안 문제가 포함되는지 확인합니다. 점수 없음 L2 동등 제어
    4 워커 노드 보안 구성
    4.1 워커 노드 구성 파일
    4.1.1 kubelet 서비스 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.2 kubelet 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.3 프록시 kubeconfig 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.4 프록시 kubeconfig 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.5 kubelet.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.6 kubelet.conf 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.7 인증 기관 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.8 클라이언트 인증 기관 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.9 kubelet 구성 파일에 644 또는 보다 제한적인 권한으로 설정된 권한이 있는지 확인합니다. 점수 있음 L1 통과
    4.1.10 kubelet 구성 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2 Kubelet
    4.2.1 anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.2 --authorization-mode 인수가 AlwaysAllow로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.3 --client-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.4 --read-only-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패
    4.2.5 --streaming-connection-idle-timeout 인수가 0로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.6 --protect-kernel-defaults 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 실패
    4.2.7 --make-iptables-util-chains 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.8 --hostname-override 인수가 설정되지 않았는지 확인합니다. 점수 없음 L1 통과
    4.2.9 --event-qps 인수가 0 또는 적합한 이벤트 캡처를 보장하는 수준으로 설정되었는지 확인합니다. 점수 없음 L2 경고
    4.2.10 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.2.11 --rotate-certificates 인수가 false로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.12 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.2.13 Kubelet이 강력한 암호화만 사용하는지 확인합니다. 점수 없음 L1 경고
    GKE On-Prem 관리자 클러스터의 오류 및 동등 제어에 관한 설명:
    # 권장사항 점수 있음/점수 없음 수준 상태 근거
    1.1.1 API 서버 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.2 API 서버 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.3 컨트롤러 관리자 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.4 컨트롤러 관리자 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.5 스케줄러 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.6 스케줄러 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.7 etcd Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.8 etcd Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.11 etcd 데이터 디렉터리 권한이 700 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 755 etcd 데이터 디렉터리에는 기본 755 권한이 있지만 하위 디렉터리는 700입니다.
    1.1.12 etcd 데이터 디렉터리 소유권이 etcd:etcd로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 root:root etcd 컨테이너는 root로 실행되며 etcd 데이터 디렉터리는 root:root의 소유입니다.
    1.1.13 admin.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.14 admin.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.15 scheduler.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.16 scheduler.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.17 controller-manager.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.18 controller-manager.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.2.1 --anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 일부 GKE On-Prem 모니터링 구성요소는 익명 인증을 사용하여 상태 확인을 수행합니다.
    1.2.10 허용 제어 플러그인 EventRateLimit가 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 Kubernetes 알파 기능이므로 이벤트 비율 제한 허용 컨트롤러를 지원하지 않습니다.
    1.2.12 허용 제어 플러그인 AlwaysPullImages가 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 AlwaysPullImages 허용 컨트롤러는 전체 클러스터에서 새 Pod를 만들기 위해 Container Registry를 단일 장애점으로 만드는 대신, 비협업 멀티테넌트 클러스터에서 비공개 레지스트리 이미지에 대한 일부 보호를 제공합니다. GKE On-Prem은 AlwaysPullImages 허용 컨트롤러를 사용 설정하지 않으므로 이를 절충하기 위해 허용 정책를 구현하는 것은 클러스터 관리자의 몫입니다.
    1.2.13 PodSecurityPolicy가 사용되지 않은 경우 허용 제어 플러그인 SecurityContextDeny가 설정되었는지 확인합니다. 점수 없음 L1 동등 제어 설정되지 않음 정책 컨트롤러 및 Anthos Config Management를 사용하여 Pod의 보안 설정 정책이 관리됩니다.
    1.2.16 허용 제어 플러그인 PodSecurityPolicy가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 정책 컨트롤러 및 Anthos Config Management를 사용하여 Pod의 보안 설정 정책이 관리됩니다.
    1.2.22 --audit-log-path 인수가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.23 --audit-log-maxage 인수가 30 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.24 --audit-log-maxbackup 인수가 10 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.25 --audit-log-maxsize 인수가 100 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.30 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 --rotate-server-certificates 플래그를 사용하여 kubelet 서버 TLS를 관리합니다.
    1.2.33 --encryption-provider-config 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 아직 보안 비밀의 애플리케이션 레이어 암호화를 지원하지 않습니다.
    1.2.34 암호화 공급자 적합한 값으로 구성되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 아직 보안 비밀의 애플리케이션 레이어 암호화를 지원하지 않습니다.
    1.3.6 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L2 동등 제어 설정되지 않음 GKE On-Prem은 kubelet에서 --rotate-server-certificates=true를 설정하여 Kubelet 인증서 순환을 사용 설정합니다.
    3.1.1 사용자에 대해 클라이언트 인증서 인증을 사용하지 않아야 합니다. 점수 없음 L2 경고 GKE On-Prem은 사용자의 부트스트랩 권한을 위한 관리자 클라이언트 인증서 사용자 인증 정보를 생성합니다.
    3.2.1 최소 감사 정책이 생성되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    3.2.2 감사 정책에 주요 보안 문제가 포함되는지 확인합니다. 점수 없음 L2 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    4.1.3 프록시 kubeconfig 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 kube-proxy는 GKE On-Prem에서 daemonset으로 실행되며 RBAC를 통해 권한이 관리됩니다.
    4.1.4 프록시 kubeconfig 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 kube-proxy는 GKE On-Prem에서 daemonset으로 실행되며 RBAC를 통해 권한이 관리됩니다.
    4.1.5 kubelet.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    4.1.6 kubelet.conf 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    4.2.4 --read-only-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패 10255 일부 GKE On-Prem 모니터링 구성요소는 kubelet 읽기 전용 포트를 사용하여 측정항목을 가져옵니다.
    4.2.6 --protect-kernel-defaults 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 실패 false kubelet은 GKE On-Prem을 사용하여 필요한 커널 설정을 설정할 수 있습니다.
    4.2.9 --event-qps 인수가 0 또는 적합한 이벤트 캡처를 보장하는 수준으로 설정되었는지 확인합니다. 점수 없음 L2 경고 설정되지 않음 이벤트는 etcd에 저장된 Kubernetes 객체입니다. 과도한 etcd를 방지하기 위해 한 시간 동안만 보존되며, 적합한 보안 감사 메커니즘이 아닙니다. 이 제어에 제안된 대로 무제한 이벤트를 허용하면 클러스터가 불필요한 DoS 위험에 노출되고 허용 EventRateLimits 사용 권장 수준과 모순됩니다. 영구 스토리지가 필요한 보안 관련 이벤트는 로그에 전송되어야 합니다.
    4.2.10 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 --rotate-server-certificates 플래그를 사용하여 kubelet 서버 TLS를 관리합니다.
    4.2.12 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 kubelet에서 --rotate-server-certificates=true를 설정하여 Kubelet 인증서 순환을 사용 설정합니다.
    4.2.13 Kubelet이 강력한 암호화만 사용하는지 확인합니다. 점수 없음 L1 경고 Kubelet은 기본 암호화 집합을 사용합니다.

    GKE On-Prem 사용자 클러스터의 상태:

    # 권장사항 점수 있음/점수 없음 수준 상태
    1 마스터 노드 보안 구성
    1.1 마스터 노드 구성 파일
    1.1.1 API 서버 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.2 API 서버 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.3 컨트롤러 관리자 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.4 컨트롤러 관리자 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.5 스케줄러 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.6 스케줄러 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.7 etcd Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.8 etcd Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.9 컨테이너 네트워크 인터페이스 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.10 컨테이너 네트워크 인터페이스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.11 etcd 데이터 디렉터리 권한이 700 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.12 etcd 데이터 디렉터리 소유권이 etcd:etcd로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.13 admin.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.14 admin.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.15 scheduler.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.16 scheduler.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.17 controller-manager.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.18 controller-manager.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.1.19 Kubernetes PKI 디렉터리 및 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.1.20 Kubernetes PKI 인증서 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.1.21 Kubernetes PKI 키 파일 권한이 600로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.2 API 서버
    1.2.1 --anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.2 --basic-auth-file 인수가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.3 --token-auth-file 매개변수가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.4 --kubelet-https 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.5 --kubelet-client-certificate--kubelet-client-key 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.6 --kubelet-certificate-authority 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.7 --authorization-mode 인수가 AlwaysAllow로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.8 --authorization-mode 인수에 노드가 포함되는지 확인합니다. 점수 있음 L1 통과
    1.2.9 --authorization-mode 인수에 RBAC가 포함되는지 확인합니다. 점수 있음 L1 통과
    1.2.10 허용 제어 플러그인 EventRateLimit가 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.11 허용 제어 플러그인 AlwaysAdmit가 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.12 허용 제어 플러그인 AlwaysPullImages가 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.13 PodSecurityPolicy가 사용되지 않은 경우 허용 제어 플러그인 SecurityContextDeny가 설정되었는지 확인합니다. 점수 없음 L1 동등 제어
    1.2.14 허용 제어 플러그인 ServiceAccount가 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.15 허용 제어 플러그인 NamespaceLifecycle이 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.16 허용 제어 플러그인 PodSecurityPolicy가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.17 허용 제어 플러그인 NodeRestriction이 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.18 --insecure-bind-address 인수가 설정되지 않았는지 확인합니다. 점수 있음 L1 실패
    1.2.19 --insecure-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패
    1.2.20 --secure-port 인수가 0로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    1.2.21 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.22 --audit-log-path 인수가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.23 --audit-log-maxage 인수가 30 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.24 --audit-log-maxbackup 인수가 10 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.25 --audit-log-maxsize 인수가 100 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.26 --request-timeout 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.27 --service-account-lookup 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.28 --service-account-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.29 --etcd-certfile--etcd-keyfile 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.30 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    1.2.31 --client-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.32 --etcd-cafile 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.2.33 --encryption-provider-config 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 경고
    1.2.34 암호화 공급자 적합한 값으로 구성되었는지 확인합니다. 점수 없음 L1 경고
    1.2.35 API 서버는 강력한 암호화만 사용합니다. 점수 없음 L1 통과
    1.3 컨트롤러 관리자
    1.3.1 --terminated-pod-gc-threshold 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 통과
    1.3.2 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.3 --use-service-account-credentials 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.4 --service-account-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.5 --root-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.3.6 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L2 동등 제어
    1.3.7 --bind-address 인수가 127.0.0.1로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.4 스케줄러
    1.4.1 --profiling 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    1.4.2 --bind-address 인수가 127.0.0.1로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2 Etcd 노드 구성
    2 Etcd 노드 구성 파일
    2.1 --cert-file--key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.2 --client-cert-auth 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.3 --auto-tls 인수가 true로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    2.4 --peer-cert-file--peer-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.5 --peer-client-cert-auth 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    2.6 --peer-auto-tls 인수가 true로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    2.7 고유한 인증 기관이 etcd에 사용되었는지 확인합니다. 점수 없음 L2 통과
    3 제어 영역 구성
    3.1 인증 및 승인
    3.1.1 사용자에 대해 클라이언트 인증서 인증을 사용하지 않아야 합니다. 점수 없음 L2 경고
    3.2 Logging
    3.2.1 최소 감사 정책이 생성되었는지 확인합니다. 점수 있음 L1 동등 제어
    3.2.2 감사 정책에 주요 보안 문제가 포함되는지 확인합니다. 점수 없음 L2 동등 제어
    4 워커 노드 보안 구성
    4.1 워커 노드 구성 파일
    4.1.1 kubelet 서비스 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.2 kubelet 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.3 프록시 kubeconfig 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.4 프록시 kubeconfig 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.5 kubelet.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.6 kubelet.conf 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.1.7 인증 기관 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.8 클라이언트 인증 기관 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.1.9 kubelet 구성 파일에 644 또는 보다 제한적인 권한으로 설정된 권한이 있는지 확인합니다. 점수 있음 L1 통과
    4.1.10 kubelet 구성 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2 Kubelet
    4.2.1 anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.2 --authorization-mode 인수가 AlwaysAllow로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.3 --client-ca-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.4 --read-only-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패
    4.2.5 --streaming-connection-idle-timeout 인수가 0로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.6 --protect-kernel-defaults 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 실패
    4.2.7 --make-iptables-util-chains 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 통과
    4.2.8 --hostname-override 인수가 설정되지 않았는지 확인합니다. 점수 없음 L1 통과
    4.2.9 --event-qps 인수가 0 또는 적합한 이벤트 캡처를 보장하는 수준으로 설정되었는지 확인합니다. 점수 없음 L2 경고
    4.2.10 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.2.11 --rotate-certificates 인수가 false로 설정되지 않았는지 확인합니다. 점수 있음 L1 통과
    4.2.12 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어
    4.2.13 Kubelet이 강력한 암호화만 사용하는지 확인합니다. 점수 없음 L1 경고
    GKE On-Prem 사용자 클러스터의 오류 및 동등 제어에 대한 설명:
    # 권장사항 점수 있음/점수 없음 수준 상태 근거
    1.1.1 API 서버 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.2 API 서버 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.3 컨트롤러 관리자 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.4 컨트롤러 관리자 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.5 스케줄러 Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.6 스케줄러 Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.7 etcd Pod 사양 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.8 etcd Pod 사양 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.11 etcd 데이터 디렉터리 권한이 700 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 755 etcd 데이터 디렉터리에는 기본 755 권한이 있지만 하위 디렉터리는 700입니다.
    1.1.12 etcd 데이터 디렉터리 소유권이 etcd:etcd로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 root:root etcd 컨테이너는 root로 실행되며 etcd 데이터 디렉터리는 root:root의 소유입니다.
    1.1.13 admin.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.14 admin.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.15 scheduler.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.16 scheduler.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.17 controller-manager.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.1.18 controller-manager.conf 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    1.2.1 --anonymous-auth 인수가 false로 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 일부 GKE On-Prem 모니터링 구성요소는 익명 인증을 사용하여 상태 확인을 수행합니다.
    1.2.10 허용 제어 플러그인 EventRateLimit가 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 Kubernetes 알파 기능이므로 이벤트 비율 제한 허용 컨트롤러를 지원하지 않습니다.
    1.2.12 허용 제어 플러그인 AlwaysPullImages가 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 AlwaysPullImages 허용 컨트롤러는 전체 클러스터에서 새 Pod를 만들기 위해 Container Registry를 단일 장애점으로 만드는 대신, 비협업 멀티테넌트 클러스터에서 비공개 레지스트리 이미지에 대한 일부 보호를 제공합니다. GKE On-Prem은 AlwaysPullImages 허용 컨트롤러를 사용 설정하지 않으므로 이를 절충하기 위해 허용 정책를 구현하는 것은 클러스터 관리자의 몫입니다.
    1.2.13 PodSecurityPolicy가 사용되지 않은 경우 허용 제어 플러그인 SecurityContextDeny가 설정되었는지 확인합니다. 점수 없음 L1 동등 제어 설정되지 않음 정책 컨트롤러 및 Anthos Config Management를 사용하여 Pod의 보안 설정 정책이 관리됩니다.
    1.2.16 허용 제어 플러그인 PodSecurityPolicy가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 정책 컨트롤러 및 Anthos Config Management를 사용하여 Pod의 보안 설정 정책이 관리됩니다.
    1.2.18 --insecure-bind-address 인수가 설정되지 않았는지 확인합니다. 점수 있음 L1 실패 127.0.0.1 사용자 클러스터 kube-apiserver의 metrics-proxy는 현재 HTTP를 사용하여 kube-apiserver pod에서 localhost를 통해 통신합니다.
    1.2.19 --insecure-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패 80 사용자 클러스터 kube-apiserver의 metrics-proxy는 현재 HTTP를 사용하여 kube-apiserver pod에서 localhost를 통해 통신합니다.
    1.2.22 --audit-log-path 인수가 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.23 --audit-log-maxage 인수가 30 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.24 --audit-log-maxbackup 인수가 10 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.25 --audit-log-maxsize 인수가 100 또는 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    1.2.30 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 --rotate-server-certificates 플래그를 사용하여 kubelet 서버 TLS를 관리합니다.
    1.2.33 --encryption-provider-config 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 아직 보안 비밀의 애플리케이션 레이어 암호화를 지원하지 않습니다.
    1.2.34 암호화 공급자 적합한 값으로 구성되었는지 확인합니다. 점수 없음 L1 경고 설정되지 않음 GKE On-Prem은 아직 보안 비밀의 애플리케이션 레이어 암호화를 지원하지 않습니다.
    1.3.6 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L2 동등 제어 설정되지 않음 GKE On-Prem은 kubelet에서 --rotate-server-certificates=true를 설정하여 Kubelet 인증서 순환을 사용 설정합니다.
    3.1.1 사용자에 대해 클라이언트 인증서 인증을 사용하지 않아야 합니다. 점수 없음 L2 경고 GKE On-Prem은 사용자의 부트스트랩 권한을 위한 관리자 클라이언트 인증서 사용자 인증 정보를 생성합니다.
    3.2.1 최소 감사 정책이 생성되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    3.2.2 감사 정책에 주요 보안 문제가 포함되는지 확인합니다. 점수 없음 L2 동등 제어 설정되지 않음 GKE On-Prem은 감사 로그를 캡처하지만 이러한 플래그를 감사에 사용하지 않습니다. 자세한 내용은 GKE On-Prem 감사 정책을 참조하세요.
    4.1.3 프록시 kubeconfig 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 kube-proxy는 GKE On-Prem에서 daemonset으로 실행되며 RBAC를 통해 권한이 관리됩니다.
    4.1.4 프록시 kubeconfig 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 kube-proxy는 GKE On-Prem에서 daemonset으로 실행되며 RBAC를 통해 권한이 관리됩니다.
    4.1.5 kubelet.conf 파일 권한이 644 또는 보다 제한적인 권한으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    4.1.6 kubelet.conf 서비스 파일 소유권이 root:root로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 제어 영역 pod 사양은 관리자 클러스터에서 비슷하게 제한적인 RBAC 승인 정책으로 보호되며 디스크에 파일로 존재하지 않습니다.
    4.2.4 --read-only-port 인수가 0로 설정되었는지 확인합니다. 점수 있음 L1 실패 10255 일부 GKE On-Prem 모니터링 구성요소는 kubelet 읽기 전용 포트를 사용하여 측정항목을 가져옵니다.
    4.2.6 --protect-kernel-defaults 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 실패 false kubelet은 GKE On-Prem을 사용하여 필요한 커널 설정을 설정할 수 있습니다.
    4.2.9 --event-qps 인수가 0 또는 적합한 이벤트 캡처를 보장하는 수준으로 설정되었는지 확인합니다. 점수 없음 L2 경고 설정되지 않음 이벤트는 etcd에 저장된 Kubernetes 객체입니다. 과도한 etcd를 방지하기 위해 한 시간 동안만 보존되며, 적합한 보안 감사 메커니즘이 아닙니다. 이 제어에 제안된 대로 무제한 이벤트를 허용하면 클러스터가 불필요한 DoS 위험에 노출되고 허용 EventRateLimits 사용 권장 수준과 모순됩니다. 영구 스토리지가 필요한 보안 관련 이벤트는 로그에 전송되어야 합니다.
    4.2.10 --tls-cert-file--tls-private-key-file 인수가 적합한 값으로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 --rotate-server-certificates 플래그를 사용하여 kubelet 서버 TLS를 관리합니다.
    4.2.12 RotateKubeletServerCertificate 인수가 true로 설정되었는지 확인합니다. 점수 있음 L1 동등 제어 설정되지 않음 GKE On-Prem은 kubelet에서 --rotate-server-certificates=true를 설정하여 Kubelet 인증서 순환을 사용 설정합니다.
    4.2.13 Kubelet이 강력한 암호화만 사용하는지 확인합니다. 점수 없음 L1 경고 Kubelet은 기본 암호화 집합을 사용합니다.

    벤치마크 감사 방법

    각 권장 수준의 감사를 위한 특정 지침은 관련 CIS 벤치마크의 일부로 제공됩니다. 하지만 해당 환경에서 이러한 제어 확인을 간소화하기 위해 이러한 검사 중 일부를 자동화해야 할 수 있습니다. 아래 나열된 도구가 이에 도움을 줄 수 있습니다.

    CIS Kubernetes 벤치마크 감사 자동화

    오픈소스 도구인 kube-bench를 사용하면 CIS Kubernetes 벤치마크에 대해 클러스터 구성을 테스트할 수 있습니다.

    적합한 버전을 지정해야 합니다. 예를 들면 다음과 같습니다.

    kube-bench node --benchmark cis-1.5