AKS(Azure Kubernetes Service) 배포 보호

AKS(Azure Kubernetes Service) 컨테이너화된 애플리케이션을 배포하고 운영하기 위한 관리되는 Kubernetes 환경을 제공합니다. Microsoft Kubernetes 컨트롤 플레인을 관리하지만 클러스터의 워크로드, 노드 구성, 네트워킹, ID 및 데이터를 보호해야 합니다. AKS를 배포할 때는 보안 모범 사례를 따라 클러스터 수명 주기에서 이 공유 표면을 보호하는 것이 중요합니다.

이 문서에서는 AKS 배포를 보호하는 데 도움이 되는 보안 권장 사항을 제공합니다. 이러한 컨트롤의 대부분은 AKS 자동에서 미리 구성되며, 강화된 기준에서 클러스터를 시작하고 AKS 표준에서 사용하도록 설정하고 관리할 수 있습니다. 빌드-런타임 파이프라인에서 AKS 보안이 작동하는 방식을 포함하여 이러한 컨트롤의 이면 에 있는 개념은 AKS의 애플리케이션 및 클러스터에 대한 보안 개념을 참조하세요.

이 문서의 보안 권장 사항은 제로 트러스트 원칙인 "명시적으로 확인", "최소 권한 액세스 사용" 및 "위반 가정"을 구현합니다. 포괄적인 제로 트러스트 지침은 제로 트러스트 지침 센터를 참조하세요.

서비스별 보안

AKS는 Kubernetes 보안 기본 형식을 Azure 플랫폼 컨트롤과 결합합니다. 다음 권장 사항은 노드 무결성, 이미지 출처 및 워크로드 격리를 포함하여 관리되는 Kubernetes 클러스터를 실행하는 고유한 강화 문제를 해결합니다.

클러스터 및 노드 강화

  • 자동 클러스터 업그레이드를 사용하여 지원되는 Kubernetes 버전에 클러스터 유지: 컨트롤 플레인 및 노드 풀이 수동 개입 없이 알려진 취약성을 수정하는 Kubernetes 패치를 받을 수 있도록 자동 업그레이드 채널에 클러스터를 등록합니다. 자세한 내용은 AKS 클러스터 자동 업그레이드를 참조하세요.
  • 노드 OS 보안 업데이트 자동 적용: 노드가 정의된 주기에서 Linux 및 Windows OS 보안 패치를 수신할 수 있도록 노드 OS 자동 업그레이드 채널을 구성합니다. 자세한 내용은 AKS 클러스터 노드 운영 체제 이미지 자동 업그레이드를 참조하세요.
  • Pod 보안 허용 표준 적용: 네임스페이스 수준에서 기준 또는 제한된 Pod 보안 표준을 적용하여 권한 있는 Pod, 호스트 네임스페이스 공유 및 안전하지 않은 볼륨 탑재를 방지합니다. 자세한 내용은 AKS에서 Pod 보안을 참조하세요.
  • 규제된 워크로드에 대해 FIPS 사용 노드 풀 배포: 워크로드가 FedRAMP 규정 준수와 같은 요구 사항을 충족해야 하는 경우 FIPS 140-3의 유효성이 검사된 암호화 모듈을 사용하는 FIPS 사용 노드 풀을 사용하도록 설정합니다. 자세한 내용은 AKS 노드 풀에 FIPS(Federal Information Process Standard) 사용을 참조하세요.
  • 공유 클러스터에서 적대적인 다중 테넌트 워크로드를 실행하지 마세요. 보안 도메인은 개별 노드가 아닌 전체 클러스터이므로 표준 Kubernetes 클러스터는 신뢰할 수 없는 테넌트 간의 하드 보안 경계가 아닙니다. 강력한 격리가 필요한 워크로드의 경우 물리적으로 격리된 클러스터, 격리된 VM 노드 크기 또는 Pod 샌드박싱을 사용합니다. 자세한 내용은 AKS의 클러스터 격리 모범 사례를 참조하세요.

컨테이너 이미지 및 공급망 보안

  • 신뢰할 수 있는 컨테이너 레지스트리로 배포 제한: Azure Policy 추가 기능을 사용하여 Pod가 프라이빗 Azure Container Registry 같은 승인된 레지스트리에서만 이미지를 끌어올 수 있도록 적용하여 신뢰할 수 없는 공용 이미지를 클러스터에서 실행할 수 없습니다. 자세한 내용은 Azure Policy 사용하여 AKS 클러스터의 보안 설정을 참조하세요.
  • 이미지 클리너를 사용하여 사용하지 않는 취약한 이미지 제거: 이미지 클리너를 사용하여 노드에서 부실 이미지를 자동으로 제거하고 취약한 이미지에 의해 남아 있는 공격 표면을 줄일 수 있습니다. 자세한 내용은 이미지 클리너를 사용하여 AKS에서 취약한 이미지를 정리하는 방법을 참조하세요.
  • 컨테이너에 대한 Microsoft Defender 사용하여 레지스트리 및 실행 중인 워크로드 검사: 배포 전후에 레지스트리 및 클러스터에서 취약한 이미지 및 잘못된 구성을 검색합니다. 자세한 내용은 컨테이너용 Microsoft Defender 개요를 참조하세요.

네트워크 보안

기본적으로 AKS API 서버는 퍼블릭 엔드포인트를 통해 연결할 수 있으며 클러스터 송신은 제한되지 않습니다. 컨트롤 플레인에 대한 인바운드 액세스와 워크로드의 아웃바운드 트래픽을 모두 제한하는 것은 클러스터의 네트워크 공격 노출 영역을 줄이기 위해 수행할 수 있는 가장 효과적인 변경 사항 중 하나입니다.

ID 및 액세스 관리

AKS는 Microsoft Entra ID 통해 클러스터 및 워크로드 ID를 인증하고 Azure RBAC 및 Kubernetes RBAC를 통해 액세스 권한을 부여합니다. 정적 자격 증명 또는 독립 실행형 Kubernetes 계정 대신 관리 ID 및 Entra 지원 권한 부여를 사용합니다.

  • 클러스터에 대한 관리 ID 사용: AKS가 순환해야 하는 정적 서비스 주체 자격 증명 없이 Azure 리소스에 액세스할 수 있도록 관리 ID를 사용하도록 클러스터를 구성합니다. 자세한 내용은 AKS(Azure Kubernetes Service) 관리 ID 사용을 참조하세요.
  • Azure 리소스에 대한 Pod 액세스에 워크로드 ID 사용: Pod가 비밀을 저장하지 않고 Azure 리소스에 대한 토큰을 가져올 수 있도록 Microsoft Entra 워크로드 ID를 사용하여 Kubernetes 서비스 계정을 페더레이션합니다. 자세한 내용은 AKS에서 Microsoft Entra 워크로드 ID 사용을 참조하세요.
  • 클러스터 인증을 Microsoft Entra ID 통합: 사용자와 그룹이 공유 인증서 대신 Entra ID를 사용하여 클러스터에 인증할 수 있도록 Microsoft Entra 통합을 사용하도록 설정합니다. 자세한 내용은 AKS 관리 Microsoft Entra 통합을 참조하세요.
  • Azure RBAC를 사용하여 Kubernetes API 액세스 권한 부여: Kubernetes 권한 부여에 Azure RBAC를 사용하고, 최소 권한 액세스를 부여하기 위해 클러스터 또는 네임스페이스 범위에서 AKS 기본 제공 역할(Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin, Azure Kubernetes Service RBAC Cluster Admin)을 할당합니다. 자세한 내용은 클러스터 권한 부여 개념을 참조하세요.
  • 로컬 Kubernetes 계정 사용 안 함: 모든 클러스터 액세스가 Microsoft Entra ID 통해 흐르고 정적 클러스터 관리자 자격 증명을 사용하여 Entra 지원 권한 부여를 무시할 수 없도록 로컬 계정을 해제합니다. 자세한 내용은 AKS 관리 Microsoft Entra 통합을 사용하여 로컬 계정 관리를 참조하세요.
  • 클러스터 관리자에 대한 조건부 액세스 적용: AKS 클러스터를 생성, 업그레이드 또는 삭제하고 노드 풀, 네트워킹 및 역할 할당을 관리할 수 있는 Entra ID에 대해 다단계 인증 및 규격 디바이스가 필요한 조건부 액세스 정책을 적용합니다. 자세한 내용은 Azure 관리를 위한 MFA 필수 문서를 참조하세요.

데이터 보호

AKS는 기본적으로 관리 디스크의 미사용 데이터를 암호화합니다. 다음 컨트롤을 구성하여 Kubernetes 비밀을 보호하고 규정 준수 요구 사항에서 요구하는 고유한 키를 가져옵니다.

  • 키 관리 서비스를 사용하여 etcd의 Kubernetes 비밀 암호화: KMS 데이터 암호화를 사용하도록 설정하여 kubernetes Secret 개체가 etcd에 기록되기 전에 애플리케이션 계층에서 암호화되도록 하며, 플랫폼 관리형 키 또는 Azure Key Vault 고유한 고객 관리형 키를 사용합니다. 자세한 내용은 AKS의 미사용 데이터 암호화 개념을(를) 참조하세요.
  • 애플리케이션 비밀을 Azure Key Vault에 저장: Secrets Store CSI Driver용 Azure Key Vault 공급자를 사용하여 비밀, 키 및 인증서를 일반 텍스트 Kubernetes Secret으로 저장하는 대신 Key Vault에서 탑재합니다. 자세한 내용은 AKS의 비밀 저장소 CSI 드라이버에 대한 Azure Key Vault 공급자 사용을 참조하세요.
  • 노드 및 데이터 디스크에 고객 관리형 키 사용: 암호화 키 수명 주기를 제어해야 하는 경우 Key Vault 자체 키로 OS 및 데이터 디스크를 암호화합니다. 자세한 내용은 AKS에서 Azure 디스크를 사용하여 BYOK(Bring Your Own Key)를 참조하세요.
  • 호스트 기반 암호화 사용: 호스트 기반 암호화를 켜면 노드 VM의 임시 디스크 및 OS/데이터 디스크 캐시가 호스트에서 미사용 시 암호화됩니다. 자세한 내용은 AKS에서 호스트 기반 암호화를 참조하세요.

로깅 및 모니터링

AKS 클러스터에 대한 위협을 감지하고 조사할 수 있도록 클러스터, 컨트롤 플레인 및 워크로드 원격 분석을 수집합니다.

  • 컨테이너 인사이트를 사용하여 클러스터 모니터링: 컨테이너 인사이트를 사용하여 클러스터에 대한 노드 및 컨테이너 메트릭 및 로그를 Log Analytics 작업 영역으로 수집할 수 있습니다. 자세한 내용은 모니터 AKS(Azure Kubernetes Service) 참조하세요.
  • 진단 설정을 사용하여 제어 평면 감사 로그 수집: 보안 조사를 위해 Kubernetes API 서버 및 감사 로그 범주(kube-audit, kube-audit-admin, guard)를 Log Analytics로 보내도록 진단 설정을 구성합니다. 자세한 내용은 AKS 데이터 참조 모니터링을 참조하세요.
  • Microsoft Defender for Containers로 위협 탐지 사용: Defender for Containers를 켜면 클러스터 노드, 워크로드 및 Kubernetes 컨트롤 플레인에 대한 런타임 위협 탐지 경고를 받을 수 있습니다. 자세한 내용은 컨테이너용 Microsoft Defender 개요를 참조하세요.

규정 준수 및 거버넌스

Azure Policy 사용하여 AKS 클러스터에서 보안 구성을 일관되게 적용하고 비준수 워크로드가 배포되지 않도록 방지합니다.

  • AKS에 대한 Azure Policy 사용하여 클러스터 및 워크로드 구성 적용: Azure Policy 추가 기능을 사용하도록 설정하고 AKS 기본 제공 정책 이니셔티브를 할당하여 승인된 레지스트리, 리소스 제한 및 차단된 권한 있는 컨테이너와 같은 제어를 감사하고 적용합니다. 자세한 내용은 Azure Policy 사용하여 AKS 클러스터의 보안 설정을 참조하세요.
  • Kubernetes 모범 사례에 대한 배포 보호 적용: 배포 보호 기능을 사용하여 경고 또는 적용 모드에서 AKS 모범 사례에 대해 클러스터 리소스의 유효성을 검사할 수 있습니다. 자세한 내용은 배포 보호 장치를 사용하여 AKS에서 모범 사례를 강제 적용을(를) 참조하세요.
  • AKS 기본 제공 정책 정의를 할당하여 특정 컨트롤을 적용합니다. AKS에 대한 기본 제공 Azure Policy 정의를 할당하여 권한 있는 IP 범위 또는 프라이빗 클러스터 요구, 권한 있는 컨테이너 사용 안 됨 및 내부 부하 분산 장치 적용과 같은 개별 컨트롤을 적용합니다. 자세한 내용은 AKS에 대한 Azure Policy 기본 제공 정의를 참조하세요.

백업 및 복구

실수로 인한 삭제, 손상 또는 실패한 업그레이드로부터 복구할 수 있도록 클러스터 상태 및 애플리케이션 데이터를 보호합니다.

  • AKS 백업을 사용하여 클러스터 상태 및 영구 볼륨 백업: 백업 자격 증명 모음과 함께 AKS 백업을 사용하여 Azure 디스크 및 Azure Files(SMB)에서 백업하는 클러스터 리소스 및 영구 볼륨의 백업을 예약하고 네임스페이스 또는 전체 클러스터를 복원합니다. 자세한 내용은 AKS(Azure Kubernetes Service) 백업이란?을 참조하세요.
  • 광범위한 권한 대신 Trusted Access로 백업 액세스 권한 부여: Backup vault가 상시적인 관리자 액세스 없이도 범위가 제한된 권한으로 클러스터에 액세스할 수 있도록 Trusted Access를 사용하도록 설정합니다. 자세한 내용은 Trusted Access를 사용하여 Azure 리소스가 AKS 클러스터에 액세스할 수 있도록 설정을(를) 참조하세요.

다음 단계