다음을 통해 공유


포털을 통해 AWS(EKS)에서 Defender for Containers 사용

이 문서에서는 Azure Portal을 통해 Amazon EKS 클러스터에서 컨테이너용 Microsoft Defender를 사용하도록 설정하는 방법을 보여 줍니다. 포괄적인 보호를 위해 모든 보안 기능을 한 번에 사용하도록 설정하거나 요구 사항에 따라 특정 구성 요소를 선택적으로 배포하도록 선택할 수 있습니다.

이 가이드를 사용하는 경우

다음을 수행하려면 이 가이드를 사용합니다.

  • AWS에서 처음으로 Defender for Containers 설정
  • 포괄적인 보호를 위해 모든 보안 기능 사용
  • 특정 구성 요소 선택적으로 배포
  • 기존 배포에 누락된 구성 요소 수정 또는 추가
  • 제어된 선택적 접근 방식을 사용하여 배포
  • 보호에서 특정 클러스터 제외

필수 조건

네트워크 요구 사항

퍼블릭 클라우드 배포에 대한 다음 엔드포인트가 아웃바운드 액세스를 위해 구성되었는지 확인합니다. 아웃바운드 액세스를 위해 구성하면 Defender 센서가 클라우드용 Microsoft Defender에 연결하여 보안 데이터 및 이벤트를 보낼 수 있습니다.

비고

Azure 도메인 및 *.ods.opinsights.azure.com*.oms.opinsights.azure.com 더 이상 아웃바운드 액세스에 필요하지 않습니다. 자세한 내용은 사용 중단 공지 사항을 참조하세요.

Azure 도메인 Azure Government 도메인 21Vianet 도메인에서 운영하는 Azure 항구
*.cloud.defender.microsoft.com N/A N/A 443

Azure Arc 사용 Kubernetes 네트워크 요구 사항의 유효성도 검사해야 합니다.

AWS 관련 요구 사항:

  • 적절한 권한이 있는 AWS 계정
  • 활성 EKS 클러스터(버전 1.19 이상)
  • Amazon ECR의 컨테이너 이미지
  • AWS CLI 설치 및 구성
  • EKS에서 Azure로의 아웃바운드 HTTPS 연결

AWS 커넥터 만들기

  1. Azure Portal에 로그인합니다.

  2. 클라우드용 Microsoft Defender로 이동하세요.

  3. 왼쪽 메뉴에서 환경 설정을 선택합니다.

  4. 환경> 추가Amazon Web Services를 선택합니다.

    클라우드용 Microsoft Defender에서 AWS 환경을 추가하기 위한 선택 항목의 스크린샷.

커넥터 세부 정보 구성

  1. 계정 세부 정보 섹션에서 다음을 입력합니다.

    • 계정 별칭: AWS 계정의 설명이 포함된 이름
    • AWS 계정 ID: 12자리 AWS 계정 식별자
    • 리소스 그룹: 리소스 그룹 선택 또는 만들기

    클라우드용 Microsoft Defender에서 AWS 환경에 대한 계정 세부 정보를 입력하는 양식의 스크린샷.

  2. 다음 선택: 계획을 선택합니다.

Defender for Containers 기능을 활성화

  1. 선택 계획에서 컨테이너를기로 전환합니다.

    클라우드용 Defender 환경 설정의 AWS 커넥터 스크린샷

  2. 설정을 선택하여 계획 구성 옵션에 액세스합니다.

    에이전트 없는 위협 방지가 강조 표시된 클라우드용 Defender 환경 설정의 컨테이너 계획에 대한 설정 스크린샷.

  3. 배포 방법을 선택합니다.

    옵션 A: 모든 구성 요소 사용(권장)

    포괄적인 보호를 위해 모든 기능을 사용하도록 설정합니다.

    • 모든 토글을 기로 설정
    • 이 설정은 EKS 환경에 대한 완전한 보안 범위를 제공합니다.

    옵션 B: 특정 구성 요소 사용

    요구 사항에 따라 필요한 구성 요소만 선택합니다.

  4. 선택한 접근 방식에 따라 사용 가능한 구성 요소를 구성합니다.

    • 에이전트 없는 위협 방지: Kubernetes 감사 로그를 Microsoft Defender로 전송하여 클러스터 컨테이너에 런타임 보호를 제공합니다.

      • 토글을 기로 설정하여 사용하도록 설정
      • 감사 로그에 대한 보존 기간 구성
      • AWS 계정의 모든 EKS 클러스터 검색

      비고

      이 구성을 사용하지 않도록 설정하면 컨트롤 플레인 위협 검색이 비활성화됩니다. 사용 가능한 기능에 대해 자세히 알아봅니다.

    • Kubernetes API 액세스 (Kubernetes에 대한 에이전트 없는 검색): Kubernetes 클러스터의 API 기반 검색을 허용하는 권한을 설정합니다.

      • 토글을 기로 설정하여 사용하도록 설정
      • 인벤토리 및 보안 상태 평가를 제공합니다.
    • 레지스트리 액세스 (에이전트 없는 컨테이너 취약성 평가): ECR에 저장된 이미지의 취약성 평가를 허용하는 권한을 설정합니다.

      • 토글을 기로 설정하여 사용하도록 설정
      • 컨테이너 이미지에서 알려진 취약성을 검사합니다.
    • Azure Arc에 대한 Defender 센서 자동 프로비전 (Defender DaemonSet): 런타임 위협 감지를 위해 Arc 지원 클러스터에 Defender 센서를 자동으로 배포합니다.

      • 토글을 기로 설정하여 사용하도록 설정
      • 워크로드 보호를 위한 실시간 보안 경고 제공

    클라우드용 Microsoft Defender에서 Azure Arc용 Defender 센서를 사용하도록 설정하기 위한 선택 항목의 스크린샷.

    팁 (조언)

    • 프로덕션 환경의 경우 모든 구성 요소를 사용하도록 설정하는 것이 좋습니다.
    • 테스트 또는 점진적 출시를 위해 특정 구성 요소로 시작하고 나중에 더 추가합니다.
    • Kubernetes용 Azure Policy는 Defender 센서를 사용하여 자동으로 배포됩니다.
  5. 계속다음 선택: 액세스 구성

AWS 권한 설정

  1. 액세스 구성 페이지의 지침을 따릅니다.

    클라우드용 Microsoft Defender에서 AWS 환경에 대한 액세스를 구성하기 위한 페이지의 스크린샷.

  2. 포털에서 CloudFormation 템플릿을 다운로드합니다.

  3. AWS에서 CloudFormation 스택을 배포합니다.

    1. AWS CloudFormation 콘솔 열기
    2. 다운로드한 템플릿을 사용하여 새 스택 만들기
    3. 스택 검토 및 만들기
  4. 스택 만들기가 완료되면 스택 출력에서 역할 ARN을 복사합니다.

  5. Azure Portal로 돌아가서 역할 ARN을 붙여넣습니다.

  6. 다음: 검토 및 만들기를 선택합니다.

  7. 구성을 검토하고 만들기를 선택합니다.

모든 구성 요소 배포

비고

이전 섹션의 모든 구성 요소를 사용하도록 선택한 경우 이 섹션의 모든 단계를 수행합니다. 특정 구성 요소를 선택한 경우 선택한 기능과 관련된 단계만 완료합니다.

구성에 따라 보호를 사용하도록 설정하려면 다음 단계를 수행합니다.

컨트롤 플레인 사용 권한 부여

사용하도록 설정한 경우 필수: 에이전트 없는 위협 방지 또는 Kubernetes API 액세스

Kubernetes에 에이전트 없는 검색을 사용하도록 설정한 경우 다음 방법 중 하나를 사용하여 클러스터에 대한 제어 평면 권한을 부여합니다.

  • 옵션 1: Python 스크립트 사용

    EKS 클러스터를 온보딩하려면 이 Python 스크립트 를 실행하여 클라우드용 Defender 역할 MDCContainersAgentlessDiscoveryK8sRoleaws-auth ConfigMap에 추가하세요.

  • 옵션 2: eksctl 사용

    각 Amazon EKS 클러스터에 역할을 부여합니다.MDCContainersAgentlessDiscoveryK8sRole

    eksctl create iamidentitymapping \
        --cluster my-cluster \
        --region region-code \
        --arn arn:aws:iam::account:role/MDCContainersAgentlessDiscoveryK8sRole \
        --group system:masters \
        --no-duplicate-arns
    

    자세한 내용은 Amazon EKS 사용자 가이드에서 EKS 액세스 항목을 사용하여 Kubernetes에 대한 액세스 권한을 IAM 사용자에게 부여를 참조하세요.

Azure Arc에 EKS 클러스터 연결

사용하도록 설정한 경우 필수: Azure Arc에 대한 Defender 센서 자동 프로비전

EKS 클러스터에 Azure Arc 지원 Kubernetes, Defender 센서 및 Kubernetes용 Azure Policy를 설치하고 실행해야 합니다. 이러한 확장을 설치하기 위한 전용 클라우드용 Defender 권장 사항이 있습니다.

  1. 클라우드용 Microsoft Defender>권장 사항으로 이동합니다.

  2. 권장 사항을 찾습니다. EKS 클러스터에는 Azure Arc용 Microsoft Defender 확장이 설치되어 있어야 합니다.

  3. 권장 사항에서 제공하는 수정 단계를 따릅니다.

    필요한 Defender for Containers 구성 요소를 설치하여 EKS 클러스터 권장 사항을 수정하는 방법을 설명하는 스크린샷

Defender 센서 배포

중요합니다

Helm을 사용하여 Defender 센서 배포: 자동 프로비전되고 자동으로 업데이트되는 다른 옵션과 달리 Helm을 사용하면 Defender 센서를 유연하게 배포할 수 있습니다. 이 방법은 DevOps 및 코드로서의 인프라 시나리오에서 특히 유용합니다. Helm을 사용하면 배포를 CI/CD 파이프라인에 통합하고 모든 센서 업데이트를 제어할 수 있습니다. 미리 보기 및 GA 버전을 수신하도록 선택할 수도 있습니다. Helm을 사용하여 Defender 센서를 설치하는 방법에 대한 지침은 Helm을 사용하여 Defender for Containers 센서 설치를 참조하세요.

사용하도록 설정한 경우 필수: Azure Arc에 대한 Defender 센서 자동 프로비전

EKS 클러스터를 Azure Arc에 연결한 후 Defender 센서를 배포합니다.

  1. 클라우드용 Microsoft Defender>권장 사항으로 이동합니다.

  2. Arc 지원 클러스터에 Defender 확장을 설치하는 방법에 대한 권장 사항을 찾습니다.

  3. 권장 사항을 선택하고 수정 단계를 따릅니다.

  4. 센서는 클러스터에 대한 런타임 위협 검색을 제공합니다.

비고

Helm을 사용하여 배포 구성을 보다 자세히 제어하여 Defender 센서를 배포할 수도 있습니다. Helm 배포 지침은 Helm을 사용하여 Defender 센서 배포를 참조하세요.

ECR 취약성 검사 구성

사용하도록 설정한 경우 필수: 레지스트리 액세스

  1. AWS 커넥터 설정으로 이동합니다.

  2. 컨테이너 계획 옆에 있는 구성 을 선택합니다.

  3. 레지스트리 액세스가 사용하도록 설정되어 있는지 확인합니다.

  4. ECR로 푸시된 이미지는 24시간 이내에 자동으로 검사됩니다.

감사 로깅 사용

사용하도록 설정한 경우 필수: 에이전트 없는 위협 방지

각 EKS 클러스터에 대해 감사 로깅을 사용하도록 설정합니다.

# Enable audit logs
aws eks update-cluster-config \
    --name <cluster-name> \
    --logging '{"clusterLogging":[{"types":["audit","authenticator"],"enabled":true}]}'

권장 사항 및 경고 보기

EKS 클러스터에 대한 경고 및 권장 사항을 보려면 다음을 수행합니다.

  1. 경고, 권장 사항 또는 인벤토리 페이지로 이동합니다.

  2. 필터를 사용하여 리소스 유형 AWS EKS 클러스터를 필터링합니다.

    클라우드용 Microsoft Defender 보안 경고 페이지에서 필터를 사용하여 AWS EKS 클러스터와 관련된 경고를 보기 위한 선택 항목의 스크린샷.

팁 (조언)

이 블로그 게시물의 지침에 따라 컨테이너 경고를 시뮬레이션할 수 있습니다.

특정 구성 요소 배포(선택 사항)

처음에 특정 구성 요소만 사용하도록 선택했고 이제 더 추가하려는 경우 또는 기존 배포와 관련된 문제를 해결해야 하는 경우:

기존 배포에 구성 요소 추가

  1. 환경 설정으로 이동하여 AWS 커넥터를 선택합니다.

  2. 컨테이너 옆의 Defender 플랜>설정을 선택합니다.

  3. 추가하려는 구성 요소에 대해 추가 토글을 사용하도록 설정합니다.

    • 에이전트 없는 위협 방지: 런타임 보호
    • Kubernetes API 액세스: 클러스터 검색용
    • 레지스트리 액세스: ECR 취약성 검사
    • Defender 센서 자동 설정: 워크로드 보호
  4. 변경 내용을 저장하고 새로 사용하도록 설정된 구성 요소에 대한 배포 단계를 따릅니다.

비고

자동 프로비전에서 특정 AWS 클러스터를 제외할 수 있습니다. 센서 배포의 경우 값이 ms_defender_container_exclude_agents인 리소스에 true 태그를 적용합니다. 에이전트 없는 배포의 경우 값이 ms_defender_container_exclude_agentless인 리소스에 true 태그를 적용합니다.

특정 클러스터에 Defender 센서 배포

선택한 EKS 클러스터에만 센서를 배포하려면 다음을 수행합니다.

  1. 특정 클러스터를 Azure Arc에 연결합니다(모든 클러스터가 아님).

  2. 권장 사항으로 이동하여 "Arc 지원 Kubernetes 클러스터에 Defender 확장이 설치되어 있어야 함"을 찾습니다.

  3. 센서를 원하는 클러스터만 선택합니다.

  4. 선택한 클러스터에 대해서만 수정 단계를 수행합니다.

기존 클러스터에 대한 구성 요소 배포

누락되거나 실패한 구성 요소가 있는 클러스터가 있는 경우 다음 단계를 수행합니다.

구성 요소 상태 확인

  1. 인벤토리로 이동하여 AWS 리소스별로 필터링합니다.

  2. 각 EKS 클러스터에서 다음을 확인합니다.

    • Arc 연결 상태
    • Defender 확장 상태
    • 정책 확장 상태

Arc 연결 문제 해결

연결이 끊어진 것으로 표시되는 클러스터의 경우:

  1. Arc 연결 스크립트를 다시 실행합니다.

  2. 클러스터에서 Azure로의 네트워크 연결을 확인합니다.

  3. Arc 에이전트 로그를 확인합니다. kubectl logs -n azure-arc -l app.kubernetes.io/component=cluster-agent

센서 배포 문제 해결

Defender 센서가 누락된 클러스터의 경우:

  1. Arc 연결이 정상인지 확인합니다.

  2. 충돌하는 정책 또는 허용 컨트롤러를 확인합니다.

  3. 필요한 경우 수동으로 배포하십시오: 권장 사항에서 수정을 사용하세요.

특정 레지스트리에 대한 ECR 검사 구성

특정 ECR 레지스트리만 검사하려면 다음을 수행합니다.

  1. 커넥터 구성에서 에이전트 없는 컨테이너 취약성 평가를 사용하도록 설정합니다.

  2. AWS IAM 정책을 사용하여 스캐너 액세스를 특정 레지스트리로 제한합니다.

  3. 스캔에서 포함 또는 제외할 레지스트리를 태그로 지정합니다.

선택적으로 Azure Policy 확장 배포

특정 클러스터에만 정책 평가를 배포하려면 다음을 수행합니다.

  1. Arc 연결 후 정책>정의로 이동합니다.

  2. "Arc 지원 Kubernetes에서 Azure Policy 확장 구성"을 검색합니다.

  3. 특정 리소스 그룹 또는 클러스터로 범위가 지정된 할당을 만듭니다.

  4. 배포 확인: kubectl get pods -n kube-system -l app=azure-policy

특정 클러스터에 대한 감사 로깅 구성

감사 로깅을 선택적으로 사용하도록 설정합니다.

# For specific cluster
aws eks update-cluster-config \
    --name <specific-cluster> \
    --logging '{"clusterLogging":[{"types":["audit"],"enabled":true}]}'

배포 확인

커넥터 상태 확인

  1. 환경 설정으로 이동합니다.

  2. AWS 커넥터를 선택합니다.

  3. 다음 확인

    • 상태: 연결됨
    • 마지막 동기화: 최근 타임스탬프
    • 검색된 리소스 수

검색된 리소스 보기

  1. 인벤토리로 이동합니다.

  2. 환경 = AWS별로 필터링합니다.

  3. 다음을 반드시 확인하세요:

    • 모든 EKS 클러스터(또는 선택적으로 배포된 경우 선택한 클러스터만)
    • ECR 레지스트리
    • 컨테이너 이미지

테스트 보안 탐지

테스트 보안 경고를 생성합니다.

# Connect to an EKS cluster
aws eks update-kubeconfig --name <cluster-name> --region <region>

# Trigger a test alert
kubectl run test-alert --image=nginx --rm -it --restart=Never -- sh -c "echo test > /etc/shadow"

Defender for Cloud에서 5~10분 이내에 경고를 확인합니다.

Troubleshooting

배포 문제

구성 요소를 배포하지 못하는 경우:

  1. Arc 연결 확인: 클러스터가 연결된 것으로 표시되는지 확인
  2. IAM 역할 확인: 역할에 필요한 모든 권한이 있는지 확인
  3. 네트워크 검토: 아웃바운드 HTTPS 연결 확인
  4. 할당량 확인: AWS 서비스 할당량이 초과되지 않는지 확인

센서 파드가 시작되지 않음

# Check pod status
kubectl describe pods -n kube-system -l app=microsoft-defender

# Common issues:
# - Image pull errors: Check network connectivity
# - Permission denied: Verify RBAC settings
# - Resource constraints: Check node resources

Arc 확장이 중단됨

# Check extension status
az k8s-extension show \
    --cluster-name <cluster-name> \
    --resource-group <rg> \
    --cluster-type connectedClusters \
    --name microsoft.azuredefender.kubernetes

# If stuck, delete and recreate
az k8s-extension delete \
    --cluster-name <cluster-name> \
    --resource-group <rg> \
    --cluster-type connectedClusters \
    --name microsoft.azuredefender.kubernetes

ECR 검사가 작동하지 않음

  1. IAM 역할에 ECR 권한이 있는지 확인합니다.

  2. 스캐너가 레지스트리에 액세스할 수 있는지 확인합니다.

  3. 이미지가 지원되는 지역에 있는지 확인합니다.

  4. Log Analytics 작업 영역에서 스캐너 로그를 검토합니다.

일반적인 인증 문제

  • 누락된 리소스: 검색을 위해 15-30분 동안 기다립니다.
  • 부분 적용 범위: 제외된 리소스 구성을 확인합니다.
  • 경고 없음: 감사 로깅이 사용하도록 설정되어 있는지 확인합니다.
  • 검사 실패: ECR 권한 및 네트워크 액세스를 확인합니다.

모범 사례

  1. 비프로덕션으로 시작: 선택적 배포를 위해 먼저 개발/테스트 클러스터에서 테스트합니다.
  2. 정기 리뷰: 매주 대시보드를 확인합니다.
  3. 경고 응답: 심각도가 높은 경고를 즉시 조사합니다.
  4. 이미지 위생: 기본 이미지를 정기적으로 검사하고 업데이트합니다.
  5. 준수: CIS 벤치마크 오류를 해결합니다.
  6. 액세스 제어: IAM 역할 및 RBAC 권한을 검토합니다.
  7. 문서 제외: 선택적 배포에서 특정 클러스터가 제외되는 이유를 추적합니다.
  8. 증분 배포: 선택적 배포를 사용하는 경우 한 번에 하나의 구성 요소를 추가합니다.
  9. 각 단계 모니터링: 다음 단계로 진행하기 전에 각 구성 요소를 확인합니다.

자원을 정리하세요

컨테이너용 Defender를 사용하지 않도록 설정하려면 다음 단계를 완료합니다.

  1. AWS 커넥터로 이동합니다.

  2. 다음 중 하나를 선택합니다.

    • 컨테이너를 끄기로 계획을 비활성화하기
    • 전체 커넥터를 삭제하여 모든 구성 제거
  3. AWS 리소스 제거:

    • CloudFormation 스택 삭제
    • Arc에서 클러스터 연결 끊기

다음 단계