레거시 포드 보안 정책(PSP)에서 마이그레이션
PodSecurityPolicy
는 Kubernetes 1.211.25
에서 제거되었습니다. 클러스터에서 포드 보안 정책을 사용하는 경우, 워크로드 중단을 방지하기 위해 클러스터를 버전 *1.25
로 업그레이드하기 전에 기본 제공 Kubernetes 포드 보안 표준 (PSS) 또는 코드형 정책 솔루션으로 마이그레이션해야 합니다.* 자주 묻는 질문을 선택하여 자세히 알아보세요.라고 설명합니다.
PodSecurityPolicy
이는 Kubernetes 프로젝트의 업스트림 변경이며 Amazon EKS에서 변경한 내용이 아닙니다. PSP은(는) Kubernetes 1.21
에서 더 이상 사용되지 않고 Kubernetes 1.25
에서 제거되었습니다. Kubernetes 커뮤니티에서 PSP를 포함한 심각한 사용성 문제를 확인했습니다. 여기에는 의도한 것보다 더 광범위한 권한을 실수로 부여하거나 PSPs이(가) 특정 상황에 해당하는 권한을 검사하기 어려운 경우가 포함되었습니다. 이러한 문제는 주요 변경 없이는 해결할 수 없습니다. 이것이 Kubernetes 커뮤니티가 PSP를 제거하기로 결정한
클러스터에서 PSPs를 사용 중인지 확인하려면 다음 명령을 실행하면 확인할 수 있습니다.
kubectl get psp
클러스터의 PSPs가 영향을 주는 Pods를 보려면 다음 명령을 실행합니다. 이 명령은 Pod 이름, 네임스페이스 및 PSPs를 출력합니다.
kubectl get pod -A -o jsonpath='{range.items[?(@.metadata.annotations.kubernetes\.io/psp)]}{.metadata.name}{"\t"}{.metadata.namespace}{"\t"}{.metadata.annotations.kubernetes\.io/psp}{"\n"}'
클러스터를 1.25
로 업그레이드하기 전에 다음 대안 중 하나로 PSPs를 마이그레이션해야 합니다.
-
Kubernetes PSS.
-
Kubernetes 환경에서 제공되는 Policy-as-code 솔루션.
PSP 지원 중단과 처음부터 Pod 보안을 제어해야 하는 지속적인 필요성에 대응하여 Kubernetes 커뮤니티는 PSS
EKS 모범 사례 가이드
Policy-as-code 솔루션은 클러스터 사용자를 안내하고 사전 정의된 자동 제어를 통해 원치 않는 동작을 방지하는 가드레일을 제공합니다. Policy-as-code 솔루션은 일반적으로 Kubernetes 동적 승인 컨트롤러
Kubernetes에 사용할 수 있는 오픈 소스 policy-as-code 솔루션이 몇 가지 있습니다. PSPs를 policy-as-code 솔루션으로 마이그레이션하기 위한 모범 사례를 검토하려면 GitHub의 Pod Security 페이지의 Policy-as-code
Kubernetes 버전 1.13
또는 이후 버전의 Amazon EKS 클러스터에는 eks.privileged
라는 기본 PSP이 있습니다. 이 정책은 1.24
및 이전 클러스터에서 생성됩니다. 1.25
및 이후 클러스터에서는 사용되지 않습니다. Amazon EKS는 이 PSP를 PSS 기반 집행 기관으로 자동 마이그레이션합니다. 사용자는 아무 작업도 수행할 필요가 없습니다.
아니요. 또한 Amazon EKS에서 생성된 PSP인 eks.privileged
이외에도 1.25
로 업그레이드할 때 클러스터의 다른 PSPs에는 변경 사항이 적용되지 않습니다.
아니요. Amazon EKS는 아직 PSP으로 마이그레이션하지 않은 경우 클러스터의 버전 1.25
업데이트를 막지 않습니다.
PSP가 포함된 클러스터를 Kubernetes 버전 1.25
으로 업그레이드하면 API 서버가 1.25
의 PSP 리소스를 인식하지 못합니다. 이로 인해 Pods에 잘못된 보안 범위가 지정될 수 있습니다. 이와 관련된 전체 목록은 PodSecurityPolicy에서 빌트인 PodSecurity Admission Controller로 마이그레이션하기
Windows 워크로드에 대한 구체적인 영향은 예상되지 않습니다. PodSecurityContext에는 Winodws Pods용 PodSpec v1
API에 windowsOptions
라는 필드가 있습니다. 이는 Kubernetes 1.25
의 PSS를 사용합니다. Windows 워크로드용 PSS 적용에 대한 자세한 내용과 모범 사례는 EKS 모범 사례 가이드