컨테이너용 Defender 아키텍처

컨테이너용 Defender는 실행 중인 Kubernetes 환경에 관계없이 각 컨테이너 환경에 대해 다르게 설계됩니다.

  • AKS(Azure Kubernetes Service) - 컨테이너화된 애플리케이션 개발, 배포 및 관리를 위한 Microsoft의 관리형 서비스입니다.

  • 연결된 AWS(Amazon Web Services) 계정의 Amazon EKS(Elastic Kubernetes Service) - 자체 Kubernetes 컨트롤 플레인 또는 노드를 설치, 운영, 유지 관리할 필요 없이 AWS에서 Kubernetes를 실행하기 위한 Amazon 관리되는 서비스입니다.

  • 연결된 GCP(Google Cloud Platform) 프로젝트의 GKE(Google Kubernetes Engine) - GCP 인프라를 사용하여 애플리케이션을 배포, 관리 및 크기 조정하기 위한 Google의 관리 환경입니다.

  • 관리되지 않는 Kubernetes 배포(Azure Arc 지원 Kubernetes 사용) - 온-프레미스 또는 IaaS에서 호스트되는 CNCF(Cloud Native Computing Foundation) 인증 Kubernetes 클러스터입니다.

참고 항목

Arc 지원 Kubernetes 클러스터(AWS EKS 및 GCP GKE)에 대한 컨테이너용 Defender 지원은 미리 보기 기능입니다.

Kubernetes 컨테이너를 보호하기 위해 컨테이너용 Defender는 다음을 수신하고 분석합니다.

  • API 서버의 감사 로그 및 보안 이벤트
  • 컨트롤 플레인의 클러스터 구성 정보
  • Azure Policy의 워크로드 구성
  • 노드 수준의 보안 신호 및 이벤트

지원되는 운영 체제, 기능 가용성, 아웃바운드 프록시와 같은 구현 세부 정보에 대해 자세히 알아보려면 컨테이너용 Defender 기능 가용성을 참조하세요.

각 Kubernetes 환경별 아키텍처

클라우드용 Defender 및 AKS 클러스터의 아키텍처 다이어그램

클라우드용 Defender가 Azure Kubernetes Service에서 호스트되는 클러스터를 보호하는 경우 감사 로그 데이터 컬렉션은 에이전트 없이 이루어지며 추가 비용이나 구성 고려 사항 없이 Azure 인프라를 통해 자동으로 수집됩니다. 컨테이너용 Microsoft Defender에서 제공하는 전체 보호를 받기 위해 필요한 구성 요소는 다음과 같습니다.

  • Defender 센서: 각 노드에 배포되는 DaemonSet는 eBPF 기술을 사용하여 호스트로부터 신호를 수집하고 런타임 보호를 제공합니다. 센서는 Log Analytics 작업 영역에 등록되어 데이터 파이프라인으로 사용됩니다. 그러나 감사 로그 데이터는 Log Analytics 작업 영역에 저장되지 않습니다. Defender 센서는 AKS 보안 프로필로 배포됩니다.
  • Kubernetes에 대한 Azure Policy: 오픈 소스 Gatekeeper v3의 크기를 조정하고 Kubernetes 허용 제어에 대한 웹후크로 등록하여 중앙 집중적이고 일관된 방식으로 클러스터에 대규모 적용 및 보호 조치를 적용할 수 있는 Pod입니다. Kubernetes에 대한 Azure Policy Pod는 AKS 추가 기능으로 배포됩니다. 클러스터의 한 노드에만 설치됩니다. 자세한 내용은 Kubernetes 워크로드 보호Kubernetes에 대한 Azure Policy 클러스터 이해를 참조하세요.

컨테이너용 Microsoft Defender, Azure Kubernetes Service 및 Azure Policy 간의 상호 작용에 대한 개략적인 아키텍처를 보여 주는 다이어그램

Defender 센서 구성 요소 세부 정보

Pod 이름 네임스페이스 종류 간단한 설명 기능 리소스 한계 송신 필요
microsoft-defender-collector-ds-* kube-system DaemonSet Kubernetes 환경에서 인벤토리 및 보안 이벤트 수집에 중점을 둔 컨테이너 집합입니다. SYS_ADMIN,
SYS_RESOURCE,
SYS_PTRACE
메모리: 296Mi

cpu: 360m
아니요
microsoft-defender-collector-misc-* kube-system 배포 특정 노드에 바인딩되지 않은 Kubernetes 환경에서 인벤토리 및 보안 이벤트를 수집하는 데 중점을 둔 컨테이너 집합입니다. 해당 없음 메모리: 64Mi

cpu: 60m
아니요
microsoft-defender-publisher-ds-* kube-system DaemonSet 수집된 데이터를 컨테이너용 Microsoft Defender 백 엔드 서비스에 게시하여 데이터를 처리하고 분석합니다. 해당 없음 메모리: 200Mi

cpu: 60m
Https 443

아웃바운드 액세스 필수 조건에 대해 자세히 알아보기

* 리소스 제한은 구성할 수 없습니다. Kubernetes 리소스 제한에 대해 자세히 알아봅니다.

Azure에서 Kubernetes에 대한 에이전트 없는 검색은 어떻게 작동하나요?

검색 프로세스는 다음과 같은 간격으로 생성된 스냅샷을 기반으로 합니다.

사용 권한 아키텍처 다이어그램

Kubernetes에 대한 에이전트 없는 검색 확장을 사용하도록 설정하면 다음 프로세스가 발생합니다.

  • 만들기:

    • Defender CSPM에서 확장이 사용하도록 설정된 경우 클라우드용 Defender는 CloudPosture/securityOperator/DefenderCSPMSecurityOperator라는 고객 환경에서 ID를 만듭니다.
    • 컨테이너용 Defender에서 확장이 사용하도록 설정된 경우 클라우드용 Defender는 고객 환경에서 CloudPosture/securityOperator/DefenderForContainersSecurityOperator라는 ID를 만듭니다.
  • 할당: 클라우드용 Defender는 구독 범위의 해당 ID에 Kubernetes 에이전트 없는 운영자라는 기본 제공 역할을 할당합니다. 역할에는 다음 권한이 포함됩니다.

    • AKS 읽기(Microsoft.ContainerService/managedClusters/read)
    • 다음 권한이 있는 AKS 신뢰할 수 있는 액세스:
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

    AKS 신뢰할 수 있는 액세스에 대해 자세히 알아봅니다.

  • 검색: 클라우드용 Defender는 시스템 할당 ID를 사용하여 AKS의 API 서버에 대한 API 호출을 사용하여 사용자 환경에서 AKS 클러스터 검색을 수행합니다.

  • 바인딩: AKS 클러스터가 발견되면 클라우드용 Defender는 만들어진 ID와 Kubernetes ClusterRoleaks:trustedaccessrole:defender-containers:microsoft-defender-operator 사이에 ClusterRoleBinding을 만들어 AKS 바인딩 작업을 수행합니다. ClusterRole은 API를 통해 표시되며 클러스터 내부에서 클라우드용 Defender 데이터 평면 읽기 권한을 부여합니다.

참고 항목

복사된 스냅샷은 클러스터와 동일한 지역에 유지됩니다.

다음 단계

이 개요에서는 클라우드용 Microsoft Defender의 컨테이너 보안 아키텍처에 대해 알아보았습니다. 계획을 사용하도록 설정하려면 다음을 참조하세요.