컨테이너에 대한 Defender 대한 네트워크 액세스 및 권한 참조

이 문서에서는 컨테이너에 대한 Microsoft Defender 대한 네트워크 연결 및 권한 요구 사항을 설명합니다.

이 문서의 요구 사항은 사용 가능한 기능 및 컨테이너 워크로드가 실행되는 환경에 따라 달라집니다.

연결 패턴 및계획 구성 요소에 대해 자세히 알아봅니다.

컨테이너 레지스트리에 클라우드용 Microsoft Defender

클라우드용 Microsoft Defender 컨테이너 레지스트리에 연결하여 컨테이너 이미지에서 취약성을 검사합니다. 경우에 따라 컨테이너용 Defender 취약성 평가 결과를 레지스트리에 다시 게시합니다.

ACR(Azure Container Registry)

Network

  • 프라이빗 ACR의 경우 Azure 인프라를 통해 네트워크 액세스가 자동으로 부여됩니다.

권한

  • 역할: Defender Container Registries
  • 권한:
    • Microsoft.ContainerRegistry/registries/pull/read
    • Microsoft.ContainerRegistry/registries/metadata/read
    • Microsoft.ContainerRegistry/registries/read
    • Microsoft.ContainerRegistry/registries/repositories/content/read
    • Microsoft.ContainerRegistry/registries/repositories/metadata/read
    • Microsoft.ContainerRegistry/registries/catalog/read

ECR(Amazon Elastic Container Registry)

Network

  • ECR 엔드포인트는 항상 공개적으로 액세스할 수 있습니다.

권한

  • 역할: CspmMonitorAws (기존 CSPM 역할의 일부)

    • ecr:GetRegistryPolicy
    • ecr:DescribeImages
    • ecr:DescribeRepositories
    • ecr:GetRepositoryPolicy
  • 역할: MDCContainersImageAssessmentRole

    • ecr:PutImage
    • ecr:BatchDeleteImage
    • ecr-public:PutImage
    • ecr-public:BatchDeleteImage

메모

권한은 MDCContainersImageAssessmentRole 제어된 배포를 위해 취약성 평가 결과를 레지스트리에 다시 게시하는 데만 사용됩니다. 클라우드용 Microsoft Defender 고객 컨테이너 이미지를 수정하지 않습니다.

GOOGLE ARTIFACT Registry(GAR)

Network

  • GAR 엔드포인트는 항상 공개적으로 액세스할 수 있습니다.

권한

  • 역할: MDCCspmCustomRole (기존 CSPM 역할의 일부)

    • artifactregistry.repositories.list
    • artifactregistry.repositories.getIamPolicy
    • artifactregistry.dockerimages.list
  • 역할: MDCWritingGarAssessmentsRole

    • artifactregistry.repositories.uploadArtifacts
    • artifactregistry.repositories.deleteArtifacts

메모

권한은 MDCWritingGarAssessmentsRole 제어된 배포를 위해 취약성 평가 결과를 레지스트리에 다시 게시하는 데만 사용됩니다. 클라우드용 Microsoft Defender 고객 컨테이너 이미지를 수정하지 않습니다.

JFrog Artifactory(SaaS)

Network

  • JFrog Artifactory 인스턴스는 인터넷을 통해 공개적으로 액세스할 수 있어야 합니다.

사용 권한 및 구성

  • 전용 그룹(예: mdc-group-{customerTenantId}
  • MDC 그룹의 모든 리포지토리에 대한 읽기 권한이 있는 권한 대상
  • Microsoft Entra ID 통합된 OIDC(OpenID Connect) 공급자
  • Entra에서 발급한 토큰을 사용하여 인증을 허용하는 OIDC ID 매핑

사용되는 API 범위

  • 그룹 액세스: /access/api/v1/scim/v2/Groups
  • 권한 대상: /access/api/v2/permissions (모든 로컬, 원격, 배포에 대한 읽기)
  • OIDC 공급자 및 ID 매핑:
    • /access/api/v1/oidc
    • /access/api/v1/oidc/{oidcName}/identity_mappings

Docker Hub(SaaS)

Network

  • Docker Hub 인터넷을 통해 공개적으로 액세스할 수 있어야 합니다.

권한

  • 읽기 액세스 권한이 있는 고객이 제공한 액세스 토큰

Kubernetes 클러스터에 클라우드용 Microsoft Defender

클라우드용 Microsoft Defender Kubernetes API 엔드포인트에 연결하여 클러스터를 검색하고 자세 및 위험 분석을 위한 구성 데이터를 수집합니다.

AKS(Azure Kubernetes Service)

Network

  • 추가 공용 또는 제한된 퍼블릭 엔드포인트 구성이 필요하지 않습니다. Microsoft Defender Azure 신뢰할 수 있는 액세스를 통해 Kubernetes API에 액세스합니다.

권한

  • 고객 환경에서 만든 관리 ID
  • 기본 제공 역할: Kubernetes 에이전트 없는 연산자
    • Microsoft.ContainerService/managedClusters/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/write
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/read
    • Microsoft.ContainerService/managedClusters/trustedAccessRoleBindings/delete

메모

AKS의 경우 클라우드용 Defender AKS 신뢰할 수 있는 액세스를 사용합니다. 클라우드용 Defender 관리 ID 및 신뢰할 수 있는 액세스 역할 바인딩을 만듭니다. 클러스터가 검색되면 클라우드용 Defender 기본 제공 AKS ClusterRole aks:trustedaccessrole:defender-containers:microsoft-defender-operator Kubernetes ClusterRoleBinding 만들어 클러스터 내에서 읽기 권한을 부여합니다.

Amazon Elastic Kubernetes Service(EKS)

Network

  • Kubernetes API 서버는 다음에서 액세스를 허용해야 합니다.
    • 172.212.245.192/28
    • 48.209.1.192/28
  • 프라이빗 API 엔드포인트의 경우 위의 IP 범위에서 제한된 퍼블릭 엔드포인트를 사용하도록 설정해야 합니다.

프라이빗 EKS 클러스터의 경우 Kubernetes API 서버는 컨테이너 IP 범위에 대해 승인된 Microsoft Defender 액세스할 수 있는 제한된 퍼블릭 엔드포인트를 노출해야 합니다.

권한

  • 역할: MDCContainersAgentlessDiscoveryK8sRole
    • eks:UpdateClusterConfig
    • eks:DescribeCluster
    • eks:CreateAccessEntry
    • eks:ListAccessEntries
    • eks:AssociateAccessPolicy
    • eks:ListAssociatedAccessPolicies

메모

eks:UpdateClusterConfig 컨테이너에 대한 Microsoft Defender 고정 IP CIDR 블록을 EKS 클러스터 공용 액세스 CIDR 허용 목록(ResourcesVpcConfig.PublicAccessCidrs)에 추가하는 데 사용됩니다. 또한 이전 클러스터에서 CONFIG_MAP 액세스 항목 만들기에 필요한 인증 모드를 API_AND_CONFIG_MAP업데이트하는 데도 사용됩니다. 이 권한이 부여되지 않으면 컨테이너에 대한 Defender Kubernetes API 서버에 연결할 수 없으므로 퍼블릭 엔드포인트 액세스가 제한된 클러스터에 대해 인벤토리 수집이 실패합니다. 컨테이너에 대한 Defender 필요한 액세스 항목을 만들 수 없으므로 CONFIG_MAP 전용 인증을 사용하는 클러스터의 경우 인벤토리 수집도 실패합니다. 퍼블릭 엔드포인트가 열려 있는 클러스터의 경우 연결에는 이 권한이 필요하지 않지만 클라우드용 Defender 여전히 구성 업데이트를 시도합니다.

GKE(Google Kubernetes Engine)

Network

  • Kubernetes API 서버는 다음에서 액세스를 허용해야 합니다.
    • 172.212.245.192/28
    • 48.209.1.192/28
  • 프라이빗 API 엔드포인트의 경우 위의 IP 범위에서 제한된 퍼블릭 엔드포인트를 사용하도록 설정해야 합니다.

프라이빗 GKE 클러스터의 경우 Kubernetes API 서버는 컨테이너 IP 범위에 대해 승인된 Microsoft Defender 액세스할 수 있는 제한된 퍼블릭 엔드포인트를 노출해야 합니다.

권한

  • 역할: MDCGkeClusterWriteRole

    • container.clusters.update
    • container.viewer
  • 역할: MDCGkeContainerResponseActionsRole

    • container.pods.update
    • container.pods.delete
    • container.networkPolicies.create
    • container.networkPolicies.update
    • container.networkPolicies.delete
  • 역할: MDCGkeContainerInventoryCollectionRole

    • container.nodes.proxy
    • container.secrets.list

메모

container.clusters.update 컨테이너에 대한 Microsoft Defender 고정 IP CIDR 블록을 GKE 클러스터 마스터 권한 있는 네트워크 구성에 추가하는 데 사용됩니다. 이 권한이 부여되지 않으면 컨테이너에 대한 Defender Kubernetes API 서버에 연결할 수 없으므로 마스터 권한이 부여된 네트워크가 활성화된 클러스터의 인벤토리 수집이 실패합니다. 마스터 권한 있는 네트워크를 사용하지 않는 클러스터의 경우 연결에 이 권한이 필요하지 않습니다.

클라우드용 Microsoft Defender Kubernetes 클러스터

Kubernetes 클러스터는 런타임 보안 데이터를 클라우드용 Microsoft Defender 보냅니다.

아웃바운드 네트워크 요구 사항

  • 프로토콜: HTTPS
  • 포트: 443
  • 도메인: *.cloud.defender.microsoft.com

Defender 센서에서 만든 Kubernetes 권한

Defender 센서는 다음 권한으로 Kubernetes 역할을 만듭니다.

API 그룹 리소스 동사
core("") pod, 노드, 서비스, 이벤트, configmaps get, list, watch, patch
apps 디먼셋, 복제본 세트, 상태 저장 세트, 배포 get, list, watch
배치 / 일괄 jobs, cronjobs get, list, watch
networking.k8s.io 수신 get, list, watch
apiextensions.k8s.io customresourcedefinitions 가져오기, 나열, 조사식, 만들기, 업데이트, 삭제
defender.microsoft.com 모든 리소스(*) 가져오기, 나열, 조사식, 만들기, 업데이트, 삭제

클라우드용 Microsoft Defender 클라우드 인프라(Kubernetes 감사 로그)

컨테이너용 Defender 컨트롤 플레인 위협 탐지를 위해 Kubernetes 감사 로그가 필요합니다.

AKS(Azure Kubernetes Service)

  • 감사 로그는 Azure 인프라를 통해 에이전트 없이 수집됩니다.
  • 프라이빗 AKS 클러스터를 포함하여 추가 네트워크 또는 권한 요구 사항이 적용되지 않습니다.

Amazon Elastic Kubernetes Service(EKS)

  • 감사 로그는 AWS CloudWatch를 통해 수집됩니다.
  • 클라우드용 Defender 고객 계정에 다음 리소스를 만듭니다.
    • Amazon SQS 큐
    • Amazon Kinesis Data Firehose 배달 스트림
    • Amazon S3 버킷

필요한 역할

  • MDCContainersK8sCloudWatchToKinesisRole
  • MDCContainersK8sKinesisToS3Role

GKE(Google Kubernetes Engine)

  • 감사 로그는 GCP 클라우드 로깅을 통해 프로젝트 수준에서 수집됩니다.
  • 클라우드용 Defender 고객 프로젝트에 Pub/Sub 리소스를 만들어 로그를 전달합니다.