정책 컨트롤러의 허용 웹훅에서 네임스페이스 제외

이 페이지에서는 면제 가능한 네임스페이스를 구성하는 방법을 설명합니다. 면제 가능한 네임스페이스는 정책 컨트롤러를 사용하여 허용 웹훅 시행에서 네임스페이스를 삭제하지만 모든 위반은 여전히 감사에서 계속 보고됩니다. 네임스페이스를 구성하지 않으면 gatekeeper-system 네임스페이스만 적용에서 면제됩니다.

시작하기 전에

이 페이지의 명령어를 사용하려면 클러스터에 정책 컨트롤러를 설치합니다. 하지만 정책 컨트롤러를 처음 설치할 때 제외 가능한 네임스페이스를 사용 설정할 수도 있습니다.

면제 가능한 네임스페이스 구성

면제 가능한 네임스페이스를 구성하면 admission.gatekeeper.sh/ignore 라벨을 적용할 수 있습니다. 면제 가능한 네임스페이스를 나중에 삭제해도 정책 컨트롤러는 이 라벨의 애플리케이션을 해당 네임스페이스에서 삭제하지 않습니다.

시행에서 네임스페이스 면제

admission.gatekeeper.sh/ignore 라벨을 적용하려면 먼저 정책 컨트롤러를 구성할 때 네임스페이스 이름을 추가해야 합니다.

Console - Anthos

  1. Cloud Console에서 Anthos Config Management 페이지로 이동합니다.

    Anthos Config Management로 이동

  2. 이 기능을 사용 설정할 등록된 클러스터를 선택하고 구성을 클릭합니다.

  3. 클러스터의 ACM 설정을 클릭합니다.

  4. 네임스페이스 면제 필드에 유효한 네임스페이스 목록을 입력합니다. 이 네임스페이스의 객체는 모든 정책에서 무시됩니다. 네임스페이스는 현재 존재하지 않아도 됩니다.

  5. 완료를 클릭합니다.

Console - GKE

  1. Cloud Console에서 Config Management 페이지로 이동합니다.

    Config Management로 이동

  2. 이 기능을 사용 설정하려는 클러스터 옆에 있는 수정을 클릭합니다.

  3. 왼쪽 메뉴에서 정책 컨트롤러를 클릭합니다.

  4. 네임스페이스 면제 필드에 유효한 네임스페이스 목록을 입력합니다. 이 네임스페이스의 객체는 모든 정책에서 무시됩니다. 네임스페이스는 현재 존재하지 않아도 됩니다.

  5. 완료를 클릭합니다.

gcloud

  1. 네임스페이스를 시행에서 면제하려면 spec.policyController.exemptableNamespaces에 네임스페이스 이름을 추가합니다.

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["NAMESPACE_NAME"]
    ...
    

    여러 네임스페이스를 제외할 수도 있습니다. 예를 들어 not-applicablealso-not-applicable 네임스페이스를 제외하려면 다음 매니페스트를 적용합니다.

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      # Set to true to install and enable Policy Controller
      policyController:
        enabled: true
        exemptableNamespaces: ["not-applicable","also-not-applicable"]
    ...
    
  2. 변경사항을 apply-spec.yaml 파일에 적용합니다.

     gcloud beta container hub config-management apply \
         --membership=MEMBERSHIP_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    다음을 바꿉니다.

    • MEMBERSHIP_NAME: 이 구성을 적용할 등록된 클러스터를 추가합니다. Google Cloud Console에 클러스터를 등록한 경우 멤버십 이름은 클러스터 이름과 동일합니다.
    • CONFIG_YAML: apply-spec.yaml 파일의 경로를 추가합니다.
    • PROJECT_ID: 프로젝트 ID를 추가합니다.

네임스페이스에 라벨 지정

이 기능을 사용 설정한 후에는 정책 컨트롤러의 허용 웹훅이 콘텐츠를 시행하지 않도록 네임스페이스에 라벨을 지정합니다.

kubectl label namespace NAMESPACE_NAME "admission.gatekeeper.sh/ignore=true"