다음을 통해 공유


포털을 통해 GKE(GCP)에서 Defender for Containers 사용

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

이 가이드를 사용하는 경우

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

  • 처음으로 GCP에서 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 네트워크 요구 사항의 유효성도 검사해야 합니다.

GCP 관련 요구 사항:

  • 적절한 권한이 있는 GCP 프로젝트
  • GKE 클러스터(버전 1.19 이상)
  • Google Container Registry 또는 Artifact Registry의 컨테이너 이미지
  • 필요한 IAM 역할이 있는 서비스 계정
  • Cloud Shell 또는 gcloud CLI가 구성됨

GCP 커넥터 만들기

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

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

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

  4. 환경 추가>Google Cloud Platform을 선택합니다.

    GCP 프로젝트를 Microsoft Defender for Cloud에 연결하는 방법을 보여 주는 스크린샷

    GCP 환경 추가를 보여 주는 스크린샷

  5. 여러 GCP 커넥터가 있는 경우 관련된 커넥터를 선택하세요.

    예제 GCP 커넥터를 보여 주는 스크린샷.

커넥터 세부 정보 구성

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

    • 커넥터 이름: GCP 프로젝트의 설명이 포함된 이름
    • GCP 프로젝트 ID: GCP 프로젝트 식별자
    • 리소스 그룹: 리소스 그룹 선택 또는 만들기

    GCP 계정 세부 정보 구성을 보여 주는 스크린샷

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

Defender for Containers 기능을 활성화

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

    GCP 커넥터에 대해 Defender for Containers를 사용하도록 설정하는 스크린샷

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

    클라우드용 Defender 환경 설정의 컨테이너 계획에 대한 설정 스크린샷.

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

    • 모든 구성 요소 사용 (권장): 포괄적인 보호를 위해 모든 기능을 사용하도록 설정
    • 특정 구성 요소 사용: 필요한 구성 요소만 선택

    사용 가능한 구성 요소:

    • Kubernetes에 대한 에이전트 없는 검색 - 모든 GKE 클러스터 검색
    • 에이전트 없는 컨테이너 취약성 평가 - 레지스트리 이미지 검사
    • Defender DaemonSet - 런타임 위협 감지
    • Kubernetes용 Azure Policy - 보안 권장 사항
  4. 계속다음 선택: 액세스 구성

GCP 권한 설정

  1. 포털에서 설치 스크립트를 다운로드합니다.

  2. gcloud가 구성된 Google Cloud Shell 또는 로컬 터미널을 엽니다.

  3. 설치 스크립트를 실행하여 필요한 서비스 계정 및 권한을 만듭니다.

    # The portal provides a script similar to this
    bash defender-for-containers-setup.sh \
        --project-id <project-id> \
        --workload-identity-pool <pool-name>
    
  4. 스크립트는 다음을 만듭니다.

    • 필요한 IAM 역할이 있는 서비스 계정
    • 워크로드 ID 페더레이션
    • API 활성화
  5. 스크립트 출력에서 서비스 계정 이메일을 복사합니다.

    복사 단추의 위치를 보여 주는 스크린샷.

  6. Azure Portal로 돌아가서 서비스 계정 이메일을 붙여넣습니다.

    GCP 액세스 구성을 보여 주는 스크린샷

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

모든 구성 요소 배포

모든 GKE 클러스터에 대해 포괄적인 보호를 사용하도록 설정하려면 다음 단계를 수행합니다.

Azure Arc에 GKE 클러스터 연결

커넥터를 만든 후:

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

  2. "GKE 클러스터를 Azure Arc에 연결해야 함" 권장 사항을 찾습니다.

  3. 영향을 받는 클러스터를 보려면 권장 사항을 선택합니다.

  4. 수정 단계에 따라 각 클러스터를 연결합니다.

    # Connect GKE cluster to Arc
    az connectedk8s connect \
        --name <cluster-name> \
        --resource-group <resource-group> \
        --location <location>
    

Defender 센서 배포

중요합니다

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

GKE 클러스터를 Azure Arc에 연결한 후:

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

  2. "Arc 지원 Kubernetes 클러스터에 Defender 확장이 설치되어 있어야 함"을 검색합니다.

    권장 사항 검색을 보여 주는 스크린샷.

    Arc 연결 GKE 클러스터에 대한 센서 활성화를 보여 주는 스크린샷

  3. GKE 클러스터를 선택합니다.

  4. 수정을 선택하여 센서를 배포합니다.

    수정 단추의 위치를 보여 주는 스크린샷.

비고

Helm을 사용하여 더 많은 제어를 위해 Defender 센서를 배포할 수도 있습니다. 자세한 내용은 Helm을 사용하여 Defender 센서 배포를 참조하세요.

컨테이너 레지스트리 검사 구성

GCR(Google Container Registry) 및 아티팩트 레지스트리의 경우:

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

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

  3. 에이전트 없는 컨테이너 취약성 평가가 사용하도록 설정되어 있는지 확인합니다.

  4. 이미지를 레지스트리에 푸시하면 이미지가 자동으로 검색됩니다.

감사 로깅 사용

런타임 보호를 위해 GKE 감사 로깅을 사용하도록 설정합니다.

# Enable audit logs for existing cluster
gcloud container clusters update <cluster-name> \
    --zone <zone> \
    --enable-cloud-logging \
    --logging=SYSTEM,WORKLOAD,API_SERVER

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

선택적 배포가 필요하거나 기존 배포와 관련된 문제를 해결하려면 다음을 수행합니다.

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

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

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

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

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

  4. 선택한 클러스터에 대한 수정 단계를 따릅니다.

취약성 검사만 활성화

런타임 보호 없이 레지스트리 검사만 사용하도록 설정하려면 다음을 수행합니다.

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

  2. 다른 구성 요소를 사용하지 않도록 설정합니다.

  3. 구성을 저장합니다.

클러스터 유형별 구성

표준 GKE 클러스터

특별한 구성은 필요하지 않습니다. 기본 배포 단계를 따릅니다.

GKE Autopilot

Autopilot 클러스터의 경우:

  1. Defender 센서는 리소스 요청을 자동으로 조정합니다.

  2. 리소스 제한에는 수동 구성이 필요하지 않습니다.

프라이빗 GKE 클러스터

프라이빗 클러스터의 경우:

  1. 클러스터가 Azure 엔드포인트에 연결할 수 있는지 확인합니다.

  2. 필요한 경우 방화벽 규칙을 구성합니다.

    gcloud compute firewall-rules create allow-azure-defender \
        --allow tcp:443 \
        --source-ranges <cluster-cidr> \
        --target-tags <node-tags>
    

제외 항목 구성

자동 프로비저닝에서 특정 GKE 클러스터를 제외하려면 다음을 수행합니다.

  1. GCP 콘솔에서 GKE 클러스터로 이동합니다.

  2. 클러스터에 레이블을 추가합니다.

    • Defender 센서의 경우: ms_defender_container_exclude_agents = true
    • 에이전트 없는 배포의 경우: ms_defender_container_exclude_agentless = true

비고

Arc 연결 클러스터의 경우 Azure 태그를 사용할 수도 있습니다.

  • ms_defender_container_exclude_sensors = true
  • ms_defender_container_exclude_azurepolicy = true

모범 사례

  1. 비프로덕션으로 시작: 선택적 배포를 위해 먼저 개발/테스트 클러스터에서 테스트합니다.
  2. 모든 구성 요소 사용: 가능한 경우 포괄적인 보호를 받습니다.
  3. 워크로드 ID 사용: 워크로드 ID를 사용하여 보안을 강화합니다.
  4. 정기 모니터링: 매주 대시보드에서 결과를 확인합니다.
  5. 이미지 서명: 프로덕션에 대한 이진 권한 부여를 구현합니다.
  6. 문서 제외: 선택적 배포에서 특정 클러스터가 제외되는 이유를 추적합니다.
  7. 증분 배포: 선택적 배포를 사용하는 경우 한 번에 하나의 구성 요소를 추가합니다.
  8. 각 단계 모니터링: 다음 단계로 진행하기 전에 각 구성 요소를 확인합니다.

자원을 정리하세요

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

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

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

  3. 다음 옵션 중 하나를 선택합니다:

    • 컨테이너를해제 상태로 설정하여 플랜을 비활성화합니다.
    • 전체 커넥터를 삭제하여 모든 구성을 제거합니다.
  4. GCP 리소스 정리:

    # Delete service account
    gcloud iam service-accounts delete <service-account-email>
    
    # Disconnect clusters from Arc
    az connectedk8s delete --name <cluster-name> --resource-group <rg>
    

다음 단계