허용 목록 및 정책을 사용하여 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 모드의 권한이 있는 워크로드를 제어할 수 있습니다.
- Standard 클러스터에서 Autopilot 모드로 워크로드를 실행하고 이러한 노드에서 권한이 있는 워크로드를 실행하려고 합니다.
- 조직, 폴더 또는 프로젝트에서 특정 권한이 있는 워크로드 집합만 실행하도록 허용하려고 합니다.
권한이 있는 Autopilot 워크로드의 소스
다음 표에서는 Autopilot에서 실행할 수 있는 권한이 있는 워크로드 유형을 설명합니다.
| 권한이 있는 워크로드 유형 | |
|---|---|
| Autopilot 파트너 워크로드 | 파트너의 하위 집합은 Autopilot 모드에 권한이 있는 워크로드를 제공합니다. Google Cloud GKE는 이러한 파트너 워크로드를 확인합니다. 이러한 워크로드는 모든 고객이 사용할 수 있습니다. 기본적으로 모든 고객은 모든 Autopilot 또는 Standard 클러스터에 해당 허용 목록을 설치할 수 있습니다. 사용 가능한 파트너 워크로드에 대한 자세한 내용은 Autopilot 파트너를 참조하세요. |
| 오픈소스 워크로드 | 특정 권한이 있는 오픈소스 워크로드에는 Autopilot 모드에서 이러한 워크로드를 실행할 수 있는 허용 목록이 있습니다. GKE 는 이러한 워크로드를 확인합니다. 기본적으로 모든 고객은 모든 Autopilot 또는 Standard 클러스터에 해당 허용 목록을 설치할 수 있습니다. 사용 가능한 오픈소스 워크로드에 대한 자세한 내용은 GKE Autopilot에서 권한이 있는 오픈소스 워크로드 실행을 참조하세요. |
| 고객 소유 워크로드 | Autopilot 노드에서 실행하려는 권한이 있는 워크로드가 있는 적격 고객인 경우 이러한 워크로드의 허용 목록을 만들 수 있습니다. 이 기능은 기본적으로 모든 Google Cloud 조직에서 사용 중지되어 있습니다. 조직 정책 서비스를 사용하여 특정 워크로드의 허용 목록 경로를 추가한 후 클러스터를 업데이트하여 이러한 허용 목록을 설치합니다. 자세한 내용은 고객 소유의 권한이 있는 워크로드 섹션을 참조하세요. |
권한이 있는 워크로드 승인 제어 작동 방식
Autopilot 노드에서 특정 권한이 있는 워크로드를 실행하도록 허용하려면 각 워크로드에 해당하는 허용 목록 을 설치합니다. 이러한 허용 목록은 WorkloadAllowlist Kubernetes 커스텀 리소스입니다. GKE는 클러스터의 WorkloadAllowlist에 대해 워크로드 세부정보를 검증하고 세부정보가 일치하는 경우에만 승인을 허용합니다. 기본적으로 조직의 모든 Autopilot 또는 Standard 클러스터에서는 Autopilot 파트너 워크로드 및 오픈소스 워크로드의 WorkloadAllowlist를 설치할 수 있습니다. Google Cloud
상위 수준에서 Autopilot 노드에서 권한이 있는 워크로드를 실행하는 데는 다음 단계가 포함됩니다.
- 조직 관리자는
container.managed.autopilotPrivilegedAdmission관리형 조직 정책 제약 조건이 특정 소스의 허용 목록 설치를 허용하는지 확인합니다. 자세한 내용은 허용 목록의 조직 정책 관리형 제약 조건 섹션을 참조하세요. - 고객 소유의 권한이 있는 워크로드의 경우 플랫폼 관리자는 권한이 있는 워크로드와 일치하는 허용 목록을 만듭니다. 자세한 내용은 다음 고객 소유의 권한이 있는 워크로드 섹션을 참조하세요.
- 클러스터 관리자는 특정 소스의 허용 목록 설치를 허용하도록 Autopilot 또는 Standard 클러스터를 구성합니다. 자세한 내용은 클러스터 구성 섹션을 참조하세요.
- 클러스터 관리자는 허용 목록의 경로를 참조하는 AllowlistSynchronizer를 만듭니다. AllowlistSynchronizer는 허용 목록을 설치하고 허용 목록을 최신 상태로 유지합니다. 자세한 내용은 허용 목록 설치 섹션을 참조하세요.
이러한 단계가 완료되면 앱 운영자는 클러스터에 권한이 있는 워크로드를 배포할 수 있습니다.
허용 목록의 조직 정책 관리형 제약 조건
기본적으로 모든 Google Cloud 조직은 조직
정책을 적용합니다. 이 정책은
container.managed.autopilotPrivilegedAdmission
관리형 제약 조건을 기반으로 합니다.
이 제약 조건은 GKE 클러스터가 허용 목록을 설치할 수 있는 파일 또는 디렉터리 경로 집합을 정의합니다. 클러스터 구성은 이 제약 조건의 매개변수에서 허용 목록 경로를 사용해야 합니다.
기본적으로 autopilotPrivilegedAdmission 제약 조건은 승인된 GKE 파트너 및 오픈소스 프로젝트가 소유한 모든 허용 목록의 사용을 허용합니다. 이 설정은 이러한 승인된 허용 목록을 설치할 수 있는 GKE 클러스터의 기본 구성과 일치합니다.
조직 정책 관리자는 조직, 폴더 또는 프로젝트의 GKE 클러스터에 적용할 수 있는 허용 목록 경로 집합을 수정할 수 있습니다. 예를 들어 조직이 소유한 커스텀 허용 목록을 사용하도록 허용하려면 해당 허용 목록 경로를 관리형 제약 조건에 추가합니다.
관리형 제약 조건 매개변수
autopilotPrivilegedAdmission 관리형 제약 조건에는 다음과 같은 사양이 있습니다.
spec:
rules:
- enforce: true
parameters:
allowAnyGKEPath: ALLOW_GKE_PATHS
allowPaths:
- PATH1
- PATH2
- PATH3
사양의 다음 필드는 클러스터에서 사용할 수 있는 허용 목록 집합을 제어합니다.
allowAnyGKEPath: 클러스터에서 GKE 승인 허용 목록 경로의 기본 집합을 사용할 수 있는지 여부를 제어하는 불리언 값입니다. 이 매개변수는 다음 값을 지원합니다.True: 클러스터 관리자는gke://로 시작하는 하나 이상의 허용 목록 경로 또는 클러스터의 모든 허용 목록을 사용 중지하는 빈 문자열을 사용하여 허용 목록 구성을 수정하지 않고 클러스터를 구성할 수 있습니다.True는 이 매개변수의 기본값입니다.False: 클러스터 관리자는 허용 목록 소스의 빈 문자열 또는allowPaths매개변수의 허용 목록 경로를 사용하여 클러스터를 구성해야 합니다.
allowPaths: 클러스터 관리자가 클러스터를 구성할 때 값을 지정할 수 있는 승인된 허용 목록 소스 목록입니다. 특정 허용 목록 파일 또는 전체 디렉터리의 경로를 지정할 수 있습니다.
다음 표에서는 이러한 매개변수를 다양한 방법으로 구성한 결과를 설명합니다.
allowAnyGKEPath 값 |
allowPaths 값 |
결과 |
|---|---|---|
True |
비어 있거나 지정되지 않음. | 클러스터 관리자는 클러스터 생성 또는 수정 중에 다음 작업 중 하나를 수행할 수 있습니다.
|
False |
비어 있거나 지정되지 않음. | 클러스터 관리자는 클러스터 허용 목록 구성에 빈 값을 지정해야 합니다. 클러스터 관리자가 허용 목록 경로 구성을 건너뛰면 클러스터 생성 또는 수정이 실패합니다. |
True |
값이 지정됨. | 클러스터 관리자는 클러스터 생성 또는 수정 중에 다음 작업 중 하나를 수행할 수 있습니다.
|
False |
값이 지정됨. | 클러스터 관리자는 클러스터 생성 또는 수정 중에 다음 작업 중 하나를 수행해야 합니다.
|
조직 정책에서 권한이 있는 워크로드 승인을 제어하는 방법에 대한 자세한 내용은 다음 조직에서 권한이 있는 GKE 워크로드 제한을 참조하세요.
고객 소유의 권한이 있는 워크로드
GKE 고객은 기본 Autopilot 보안 제약 조건에서 허용하는 것보다 클러스터에서 더 많은 권한이 필요한 자체 특수 워크로드를 보유할 수 있습니다. GKE 버전 1.35 이상에서는 허용 목록을 만들어 이러한 워크로드를 기본 Autopilot 제약 조건에서 제외할 수 있습니다.
허용 목록은 WorkloadAllowlist Kubernetes 커스텀 리소스를 정의하는 YAML 파일입니다. WorkloadAllowlist의 사양은 Kubernetes 포드 사양의 다양한 필드와 일치합니다. WorkloadAllowlist를 정의할 때 WorkloadAllowlist의 값을 권한이 있는 워크로드 사양의 해당 필드와 일치시킵니다. Cloud Storage 버킷에 YAML 파일을 저장합니다.
클러스터에 이러한 고객 소유의 허용 목록을 설치하려면 다음 단계를 수행해야 합니다.
- 조직 관리자가 Cloud Storage 경로를 조직 정책에 추가합니다. 자세한 내용은 조직 정책 관리형 제약 조건 정보 섹션을 참조하세요.
- Cloud Storage 경로를 클러스터 구성에 추가합니다. 자세한 내용은 클러스터 구성 섹션을 참조하세요.
자체 WorkloadAllowlist를 만드는 방법에 대한 자세한 내용은 권한이 있는 Autopilot 워크로드의 허용 목록 만들기를 참조하세요.
클러스터 구성
Autopilot 모드에서 권한이 있는 워크로드를 실행하려면 클러스터 관리자가 하나 이상의 승인된 허용 목록 경로를 클러스터 구성에 추가합니다. 클러스터에 경로를 추가한 후 앱 운영자는 클러스터에 해당 허용 목록 및 권한이 있는 워크로드를 설치할 수 있습니다.
기본적으로 Autopilot 파트너 및 승인된 오픈소스 프로젝트의 허용 목록을 설치할 수 있습니다. 이전 섹션에서 설명한 대로 조직 정책으로 인해 허용 목록의 승인된 소스 기본 집합이 변경될 수 있습니다. 조직 정책에서 승인된 허용 목록 경로를 제어하는 경우 조직 관리자와 협력하여 이러한 경로를 식별해야 합니다. 그런 다음 클러스터 구성에서 하나 이상의 승인된 경로를 지정할 수 있습니다.
클러스터 구성에 대한 자세한 내용은 Autopilot에서 권한이 있는 워크로드 실행을 참조하세요.
허용 목록 설치
클러스터에서 승인된 소스의 허용 목록을 설치하려면 AllowlistSynchronizer라는 Kubernetes 커스텀 리소스를 사용합니다. 포드 및 배포와 같은 다른 Kubernetes 리소스를 만드는 방법과 유사하게 AllowlistSynchronizer를 정의하고 만듭니다. 각 AllowlistSynchronizer에는 클러스터에 설치하려는 허용 목록의 경로 목록이 있습니다.
AllowlistSynchronizer를 만들면 GKE는 이러한 경로에서 허용 목록을 설치하고 허용 목록을 최신 상태로 유지합니다. GKE는 10분마다 허용 목록 파일의 변경사항을 확인합니다. 업데이트가 있으면 동기화 담당자는 업데이트된 허용 목록을 클러스터에 설치합니다.
GKE가 AllowlistSynchronizer를 기반으로 허용 목록을 설치한 후 클러스터에서 해당 권한이 있는 워크로드를 만들 수 있습니다.
클러스터에 허용 목록을 설치하는 방법에 대한 자세한 내용은 Autopilot에서 권한이 있는 워크로드 실행을 참조하세요.
허용 목록 경로
조직 정책 또는 클러스터에서 허용 목록 지원을 구성할 때 설치를 위해 승인한 하나 이상의 WorkloadAllowlist 경로를 지정합니다. 이러한 경로의 구문은 WorkloadAllowlist를 만든 사용자에 따라 다음과 같이 다릅니다.
특정 Autopilot 파트너 및 승인된 오픈소스 프로젝트:
gke://REPOSITORY_PATH/SELECTOR다음을 바꿉니다.
REPOSITORY_PATH: 워크로드의 허용 목록이 포함된 디렉터리의 경로입니다(예:Grafana/alloy). 이러한 워크로드의 허용 목록 경로에 대한 자세한 내용은 다음 페이지를 참조하세요.SELECTOR: 특정 파일의 이름 또는 해당 디렉터리의 모든 파일을 선택하는*문자입니다.
예를 들어 다음 경로는
Grafana/alloy디렉터리의 모든 허용 목록을 선택합니다.gke://Grafana/alloy/*-
gs://DIRECTORY_PATH/SELECTORDIRECTORY_PATH를 허용 목록 파일이 포함된 Cloud Storage의 디렉터리 경로로 바꿉니다. 여러 경로를 지정할 수 있습니다.
조직 정책 또는 클러스터 구성에서 위의 경로 중 하나 이상을 지정할 수 있습니다. 예를 들어 GKE 파트너 워크로드와 고객 소유의 워크로드를 동일한 구성에 추가할 수 있습니다. * 문자를 사용하여 모든 허용 목록을 선택할 수도 있습니다. 예를 들어 gke://*는 모든 소스의 GKE 승인 허용 목록을 선택합니다.
다음 표에서는 특정 목표를 지원하기 위해 조직 정책 또는 클러스터에 필요한 구성을 설명합니다.
| 목표 | 조직 정책 구성 | 클러스터 구성 |
|---|---|---|
| 모든 GKE 승인 WorkloadAllowlist 허용 | 다음 단계를 따릅니다.
|
다음 중 한 가지 방법을 사용합니다.
|
| 특정 GKE 승인 WorkloadAllowlist만 허용 | 다음 단계를 따릅니다.
|
클러스터를 만들거나 업데이트할 때 특정 GKE 승인 WorkloadAllowlist의 경로를 지정합니다. 조직 정책은 지정할 수 있는 GKE 승인 경로를 제한할 수 있습니다. |
| 고객 관리 WorkloadAllowlist만 허용 | 다음 단계를 따릅니다.
|
클러스터를 만들거나 업데이트할 때 고객 관리 WorkloadAllowlist의 경로를 지정합니다. 지정하는 경로는 조직 정책의
allowPaths 매개변수에 있어야 합니다. |
| WorkloadAllowlist 사용 방지 | 다음 단계를 따릅니다.
|
클러스터를 만들거나 업데이트할 때 빈 문자열 ""을 승인된 경로로 설정합니다. |