Autopilot 모드의 권한이 있는 워크로드 승인 정보

허용 목록과 정책을 사용하여 Google Kubernetes Engine (GKE) Autopilot 모드에서 실행할 수 있는 권한이 있는 워크로드를 제어할 수 있습니다. 이 문서에서는 Autopilot이 워크로드에 적용하는 기본 제약 조건, Autopilot 모드에서 실행할 수 있는 권한이 있는 워크로드 유형, 권한이 있는 워크로드 승인을 제어하는 방법을 설명합니다.

이 문서는 다음 사용자를 대상으로 합니다.

  • Autopilot 모드에서 다양한 소스의 권한이 있는 GKE 워크로드를 실행하려는 플랫폼 관리자 및 운영자
  • 특정 워크로드를 제외한 모든 권한이 있는 워크로드를 차단하여 조직의 보안 상황을 개선하려는 ID 및 계정 관리자

Autopilot 모드의 권한이 있는 워크로드 정보

보안 상황을 개선하기 위해 Autopilot 모드 클러스터와 노드는 기본적으로 특정 보안 제약 조건을 적용합니다. 예를 들어 Autopilot은 컨테이너에서 spec.securityContext.privileged 필드를 true로 설정하는 대부분의 포드를 거부합니다. Autopilot의 권한이 있는 워크로드는 이러한 기본 제약 조건을 충족하지 않는 워크로드입니다. 기본적으로 Google Cloud 조직의 Autopilot 노드는 권한이 있는 워크로드를 거부합니다.

특정 권한이 있는 워크로드는 클러스터에 해당 워크로드와 일치하는 허용 목록이 있는 경우에만 Autopilot 모드에서 실행할 수 있습니다. 클러스터 관리자는 클러스터를 만들거나 수정할 때 클러스터가 실행할 수 있는 허용 목록의 경로를 지정할 수 있습니다. 기본적으로 모든 Google Cloud 조직은 Autopilot 파트너 및 인증된 오픈소스 프로젝트의 허용 목록을 지원합니다.

조직 관리자는 조직 정책 서비스를 사용하여 다음과 같은 방법으로 이 기본 동작을 수정할 수 있습니다.

  • GKE Autopilot 파트너의 모든 워크로드와 인증된 오픈소스 워크로드를 허용합니다. 이는 모든Google Cloud 조직의 기본 동작입니다.
  • 특정 파트너 워크로드 또는 인증된 오픈소스 워크로드를 허용합니다.
  • 특정 고객 소유 권한이 있는 워크로드만 허용합니다.
  • 모든 권한이 있는 워크로드를 거부합니다.

모두 거부한 후 일부 허용 접근 방식은 GKE 클러스터에서 권한이 상승된 상태로 실행되는 항목을 정확하게 제어할 수 있는 보안 권장사항입니다.

다음과 같은 상황에서 Autopilot 모드의 권한이 있는 워크로드를 제어할 수 있습니다.

권한이 있는 Autopilot 워크로드의 소스

다음 표에서는 Autopilot에서 실행할 수 있는 권한이 있는 워크로드의 유형을 설명합니다.

권한이 있는 워크로드 유형
Autopilot 파트너 워크로드

Google Cloud 파트너의 하위 집합은 Autopilot 모드에 권한이 있는 워크로드를 제공합니다. GKE는 이러한 파트너 워크로드를 확인합니다. 이러한 워크로드는 모든 고객이 사용할 수 있습니다. 기본적으로 모든 고객은 Autopilot 또는 Standard 클러스터에 해당하는 허용 목록을 설치할 수 있습니다.

사용 가능한 파트너 워크로드에 대한 자세한 내용은 Autopilot 파트너를 참고하세요.

오픈소스 워크로드

특정 권한이 있는 오픈소스 워크로드에는 Autopilot 모드에서 이러한 워크로드를 실행할 수 있는 허용 목록이 있습니다. GKE에서 이러한 워크로드를 확인합니다. 기본적으로 모든 고객은 Autopilot 또는 Standard 클러스터에 해당하는 허용 목록을 설치할 수 있습니다.

사용 가능한 오픈소스 워크로드에 대한 자세한 내용은 GKE Autopilot에서 권한이 있는 오픈소스 워크로드 실행을 참고하세요.

고객 소유 워크로드

Autopilot 노드에서 실행하려는 권한이 있는 워크로드가 있는 적격 고객인 경우 해당 워크로드의 허용 목록을 만들 수 있습니다. 이 기능은 기본적으로 모든 Google Cloud 조직에 사용 중지되어 있습니다. 조직 정책 서비스를 사용하여 특정 워크로드의 허용 목록 경로를 추가한 다음 클러스터를 업데이트하여 해당 허용 목록을 설치합니다.

자세한 내용은 고객 소유 권한 워크로드 섹션을 참고하세요.

권한이 있는 워크로드 승인 제어 작동 방식

Autopilot 노드에서 특정 권한이 있는 워크로드를 실행하려면 각 워크로드에 해당하는 허용 목록을 설치합니다. 이러한 허용 목록은 WorkloadAllowlist Kubernetes 커스텀 리소스입니다. GKE는 클러스터의 WorkloadAllowlists에 대해 워크로드 세부정보를 검증하고 세부정보가 일치하는 경우에만 승인을 허용합니다. 기본적으로 Google Cloud 조직의 모든 Autopilot 또는 Standard 클러스터에서 Autopilot 파트너 워크로드 및 오픈소스 워크로드용 WorkloadAllowlist를 설치할 수 있습니다.

대략적으로 Autopilot 노드에서 권한이 있는 워크로드를 실행하는 단계는 다음과 같습니다.

  1. 조직 관리자는 container.managed.autopilotPrivilegedAdmission 관리 조직 정책 제약 조건이 특정 소스의 허용 목록 설치를 허용하는지 확인합니다. 자세한 내용은 허용 목록의 조직 정책 관리 제약 조건 섹션을 참고하세요.
  2. 고객 소유 권한이 있는 워크로드의 경우 플랫폼 관리자는 권한이 있는 워크로드와 일치하는 허용 목록을 만듭니다. 자세한 내용은 고객 소유 독점 워크로드 섹션을 참고하세요.
  3. 클러스터 관리자는 특정 소스의 허용 목록 설치를 허용하도록 Autopilot 또는 Standard 클러스터를 구성합니다. 자세한 내용은 클러스터 구성 섹션을 참고하세요.
  4. 클러스터 관리자는 허용 목록의 경로를 참조하는 AllowlistSynchronizer를 만듭니다. AllowlistSynchronizer는 허용 목록을 설치하고 허용 목록을 최신 상태로 유지합니다. 자세한 내용은 허용 목록 설치 섹션을 참고하세요.

이 단계를 완료하면 앱 운영자가 클러스터에 권한이 있는 워크로드를 배포할 수 있습니다.

허용 목록의 조직 정책 관리 제약조건

기본적으로 모든 Google Cloud 조직은 container.managed.autopilotPrivilegedAdmission 관리 제약 조건을 기반으로 하는 조직 정책을 적용합니다.

이 관리 제약 조건에는 다음 매개변수가 있습니다.

  • allowAnyGKEPath: 클러스터 관리자가 gke:// 접두사가 있는 경로에서 허용 목록 설치를 위해 클러스터를 구성할 수 있는 불리언 값입니다. 다음 값이 지원됩니다.

    • true: 클러스터 관리자가 GKE 기본 허용 목록 소스, gke://로 시작하는 허용 목록 경로 또는 빈 문자열 (모든 허용 목록 방지)을 사용하여 클러스터를 구성할 수 있습니다. allowAnyGKEPath 매개변수의 기본값입니다.
    • false: 클러스터 관리자가 허용 목록 소스에 빈 문자열을 사용하거나 allowPaths 매개변수의 허용 목록 경로를 사용하여 클러스터를 구성해야 합니다.
  • allowPaths: 클러스터 관리자가 클러스터를 구성할 때 값을 지정할 수 있는 승인된 허용 목록 소스 목록입니다.

조직 관리자는 이 정책의 매개변수를 업데이트하여 Google Cloud 조직에서 실행할 수 있는 권한이 있는 워크로드를 제어할 수 있습니다. 예를 들어 다음 조직 정책 구성을 사용하면 클러스터 관리자가 특정 Google Cloud파트너 워크로드에 대해서만 허용 목록을 설치할 수 있습니다.

name: organizations/ORGANIZATION_ID/policies/container.managed.autopilotPrivilegedAdmission
spec:
  rules:
  - enforce: true
    parameters:
      allowAnyGKEPath: ALLOW_GKE_PATHS
      allowPaths:
      - PATH1
      - PATH2
      - PATH3

다음을 바꿉니다.

  • ALLOW_GKE_PATHS: GKE 승인 허용 목록을 허용할지 여부입니다. 다음 값 중 하나를 지정합니다.

    • True: GKE 파트너 워크로드 또는 검증된 오픈소스 워크로드로 클러스터를 구성할 수 있습니다. 기본값입니다.
    • False: allowPaths 필드의 경로만 사용하여 클러스터 구성 허용
  • PATH1, PATH2, ...: 클러스터 관리자가 클러스터를 구성할 때 사용할 수 있는 승인된 허용 목록 소스의 경로 목록입니다. 기본적으로 이 매개변수는 비어 있습니다. 이 매개변수의 경로를 지정하는 경우 클러스터 관리자는 클러스터를 만들거나 업데이트할 때 이러한 경로를 0개 이상 지정해야 합니다.

조직 정책에서 권한이 있는 워크로드 승인을 제어하는 방법에 대한 자세한 내용은 조직에서 권한이 있는 GKE 워크로드 제한을 참고하세요.

고객 소유 권한이 있는 워크로드

GKE 고객은 기본 Autopilot 보안 제약 조건에서 허용하는 것보다 클러스터에서 더 많은 권한이 필요한 자체 전문 워크로드를 보유할 수 있습니다. GKE 버전 1.35 이상에서는 허용 목록을 만들어 이러한 워크로드를 기본 Autopilot 제약 조건에서 제외할 수 있습니다.

허용 목록은 WorkloadAllowlist Kubernetes 커스텀 리소스를 정의하는 YAML 파일입니다. WorkloadAllowlist의 사양은 Kubernetes 포드 사양의 다양한 필드와 일치합니다. WorkloadAllowlist를 정의할 때 WorkloadAllowlist의 값을 권한이 있는 워크로드의 사양에 있는 해당 필드와 일치시킵니다. Cloud Storage 버킷에 YAML 파일을 저장합니다.

클러스터에 이러한 고객 소유 허용 목록을 설치하려면 다음 단계를 따라야 합니다.

  1. 조직 관리자가 조직 정책에 Cloud Storage 경로를 추가합니다. 자세한 내용은 조직 정책 관리 제약 조건 정보 섹션을 참고하세요.
  2. 클러스터 구성에 Cloud Storage 경로를 추가합니다. 자세한 내용은 클러스터 구성 섹션을 참고하세요.

자체 WorkloadAllowlist를 만드는 방법에 대한 자세한 내용은 권한이 있는 Autopilot 워크로드의 허용 목록 만들기를 참고하세요.

클러스터 구성

Autopilot 모드에서 권한이 있는 워크로드를 실행하려면 클러스터 관리자가 승인된 허용 목록 경로를 하나 이상 클러스터 구성에 추가합니다. 클러스터에 경로를 추가한 후 앱 운영자는 클러스터에 해당 허용 목록과 권한이 있는 워크로드를 설치할 수 있습니다.

기본적으로 Autopilot 파트너 및 승인된 오픈소스 프로젝트의 허용 목록을 설치할 수 있습니다. 이전 섹션에 설명된 대로 조직 정책으로 인해 허용 목록의 승인된 소스 기본값이 변경될 수 있습니다. 조직 정책에서 승인된 허용 목록 경로를 관리하는 경우 조직 관리자와 협력하여 해당 경로를 식별해야 합니다. 그런 다음 클러스터 구성에서 승인된 경로를 하나 이상 지정할 수 있습니다.

클러스터 구성에 대한 자세한 내용은 Autopilot에서 권한이 있는 워크로드 실행을 참고하세요.

허용 목록 설치

클러스터에 승인된 소스의 허용 목록을 설치하려면 AllowlistSynchronizer라는 Kubernetes 커스텀 리소스를 사용합니다. 포드 및 배포와 같은 다른 Kubernetes 리소스를 만드는 방법과 유사하게 허용 목록 동기화 도구를 정의하고 만듭니다. 각 AllowlistSynchronizer에는 클러스터에 설치할 허용 목록의 경로 목록이 있습니다.

AllowlistSynchronizer를 만들면 GKE는 이러한 경로에서 허용 목록을 설치하고 허용 목록을 최신 상태로 유지합니다. GKE는 10분마다 허용 목록 파일의 변경사항을 확인합니다. 업데이트가 있으면 동기화 담당자는 업데이트된 허용 목록을 클러스터에 설치합니다.

GKE가 AllowlistSynchronizer를 기반으로 허용 목록을 설치한 후 클러스터에서 해당 권한이 있는 워크로드를 만들 수 있습니다.

클러스터에 허용 목록을 설치하는 방법에 대한 자세한 내용은 Autopilot에서 권한이 있는 워크로드 실행을 참고하세요.

허용 목록 경로

조직 정책 또는 클러스터에서 허용 목록 지원을 구성할 때 설치가 승인된 하나 이상의 WorkloadAllowlist 경로를 지정합니다. 이러한 경로의 구문은 워크로드 허용 목록을 만든 사용자에 따라 다음과 같이 달라집니다.

  • 특정 Autopilot 파트너 및 승인된 오픈소스 프로젝트:

    gke://REPOSITORY_PATH/SELECTOR
    

    다음을 바꿉니다.

    예를 들어 다음 경로는 Grafana/alloy 디렉터리의 모든 허용 목록을 선택합니다.

    gke://Grafana/alloy/*
    
  • 고객 소유 권한 워크로드:

    gs://DIRECTORY_PATH/SELECTOR
    

    DIRECTORY_PATH을 허용 목록 파일이 포함된 Cloud Storage의 디렉터리 경로로 바꿉니다. 여러 경로를 지정할 수 있습니다.

조직 정책 또는 클러스터 구성에서 위의 경로를 하나 이상 지정할 수 있습니다. 예를 들어 GKE 파트너 워크로드와 고객 소유 워크로드를 동일한 구성에 추가할 수 있습니다. * 문자를 사용하여 모든 허용 목록을 선택할 수도 있습니다. 예를 들어 gke://*는 모든 소스에서 GKE 승인 허용 목록을 선택합니다.

다음 표에서는 특정 목표를 지원하기 위해 조직 정책 또는 클러스터에 필요한 구성을 설명합니다.

목표 조직 정책 구성 클러스터 구성
GKE 승인 워크로드 허용 목록 모두 허용 다음 단계를 따릅니다.
  1. allowAnyGKEPath 매개변수를 True의 기본값으로 설정합니다.
  2. allowPaths 매개변수를 비워 둡니다.
다음 중 한 가지 방법을 사용합니다.
  • 클러스터의 허용 목록을 구성하지 마세요. 기본적으로 모든 클러스터는 GKE 승인 WorkloadAllowlist의 설치를 허용합니다.
  • 클러스터의 허용 목록을 구성할 때 승인된 경로로 gke://*만 지정합니다.
특정 GKE 승인 워크로드 허용 목록만 허용 다음 단계를 따릅니다.
  1. allowAnyGKEPath 매개변수를 False로 설정합니다.
  2. allowPaths 매개변수에서 특정 GKE 승인 WorkloadAllowlists의 경로를 지정합니다.
클러스터를 만들거나 업데이트할 때 GKE 승인 특정 WorkloadAllowlist의 경로를 지정합니다. 조직 정책에 따라 지정할 수 있는 GKE 승인 경로가 제한될 수 있습니다.
고객 관리 워크로드 허용 목록만 허용 다음 단계를 따릅니다.
  1. allowAnyGKEPath 매개변수를 False로 설정합니다.
  2. allowPaths 매개변수에 고객 관리 WorkloadAllowlists의 경로를 지정합니다.
클러스터를 만들거나 업데이트할 때 고객 관리형 WorkloadAllowlist의 경로를 지정합니다. 지정하는 경로는 조직 정책의 allowPaths 매개변수에 있어야 합니다.
WorkloadAllowlists 사용 방지 다음 단계를 따릅니다.
  1. allowAnyGKEPath 매개변수를 False로 설정합니다.
  2. allowPaths 매개변수를 비워 둡니다.
클러스터를 만들거나 업데이트할 때 승인된 경로를 빈 문자열 ""로 설정합니다.

다음 단계