Amazon ECS 클러스터에 대한 적용 범위 - 아마존 GuardDuty

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon ECS 클러스터에 대한 적용 범위

Amazon ECS 클러스터의 런타임 범위에는 Amazon ECS 컨테이너 인스턴스에서 실행되는 AWS Fargate (Fargate) 작업과 Amazon ECS 컨테이너 인스턴스가 포함됩니다. 1

Fargate에서 실행되는 Amazon ECS 클러스터의 경우 런타임 커버리지는 작업 수준에서 평가됩니다. ECS 클러스터 런타임 범위에는 Fargate에 대한 런타임 모니터링 및 자동 에이전트 구성 (ECS만 해당) 을 활성화한 후 실행되기 시작한 Fargate 작업이 포함됩니다. 기본적으로 Fargate 태스크는 변경할 수 없습니다. GuardDuty 이미 실행 중인 작업의 컨테이너를 모니터링하기 위한 보안 에이전트를 설치할 수 없습니다. 이러한 Fargate 작업을 포함하려면 작업을 중지했다가 다시 시작해야 합니다. 관련 서비스가 지원되는지 확인하십시오.

Amazon ECS 컨테이너에 대한 자세한 내용은 용량 생성을 참조하십시오.

적용 범위 통계 검토

사용자 계정 또는 멤버 계정과 관련된 Amazon ECS 리소스의 커버리지 통계는 선택한 모든 Amazon ECS 클러스터에서 정상 Amazon ECS 클러스터가 차지하는 비율입니다. AWS 리전여기에는 Fargate 및 Amazon EC2 인스턴스 모두와 관련된 Amazon ECS 클러스터에 대한 적용 범위가 포함됩니다. 다음 등식은 이를 다음과 같이 나타냅니다.

(정상 클러스터/모든 클러스터)*100

고려 사항

  • ECS 클러스터의 커버리지 통계에는 해당 ECS 클러스터와 관련된 Fargate 작업 또는 ECS 컨테이너 인스턴스의 커버리지 상태가 포함됩니다. Fargate 작업의 적용 범위 상태에는 실행 상태이거나 최근에 실행이 완료된 작업이 포함됩니다.

  • ECS 클러스터 런타임 커버리지 탭에서 컨테이너 인스턴스 커버리지 필드는 Amazon ECS 클러스터와 연결된 컨테이너 인스턴스의 커버리지 상태를 나타냅니다.

    Amazon ECS 클러스터에 Fargate 작업만 포함된 경우 개수는 0/0으로 표시됩니다.

  • Amazon ECS 클러스터가 보안 에이전트가 없는 Amazon EC2 인스턴스와 연결된 경우 Amazon ECS 클러스터도 비정상 커버리지 상태가 됩니다.

    관련 Amazon EC2 인스턴스의 커버리지 문제를 식별하고 해결하려면 Amazon EC2 인스턴스를 적용 범위 문제 해결 참조하십시오.

액세스 방법 중 하나를 선택하여 계정의 적용 범위 통계를 검토합니다.

Console
  • AWS Management Console 로그인하고 https://console.aws.amazon.com/guardduty/ 에서 GuardDuty 콘솔을 엽니다.

  • 탐색 창에서 런타임 모니터링을 선택합니다.

  • 런타임 커버리지 탭을 선택합니다.

  • ECS 클러스터 런타임 커버리지 탭에서 클러스터 목록 테이블에 있는 각 Amazon ECS 클러스터의 커버리지 상태별로 집계된 커버리지 통계를 볼 수 있습니다.

    • 다음 열을 기준으로 클러스터 목록 테이블을 필터링할 수 있습니다.

      • 계정 ID

      • 클러스터 이름

      • 에이전트 관리 유형

      • 적용 범위 상태

  • Amazon ECS 클러스터 중 하나라도 커버리지 상태가 비정상인 경우, Issue 열에는 비정상 상태의 이유에 대한 추가 정보가 포함됩니다.

    Amazon ECS 클러스터가 Amazon EC2 인스턴스와 연결되어 있는 경우, EC2 인스턴스 런타임 커버리지 탭으로 이동하여 클러스터 이름 필드를 기준으로 필터링하여 관련 문제를 확인하십시오.

API/CLI
  • 고유한 유효한 탐지기 ID, 현재 지역 및 서비스 엔드포인트를 사용하여 ListCoverageAPI를 실행합니다. 이 API를 사용하여 인스턴스 목록을 필터링하고 정렬할 수 있습니다.

    • CriterionKey에 대한 다음 옵션 중 하나를 사용하여 예시 filter-criteria를 변경할 수 있습니다.

      • ACCOUNT_ID

      • ECS_CLUSTER_NAME

      • COVERAGE_STATUS

      • MANAGEMENT_TYPE

    • 다음 옵션을 사용하여 sort-criteria에서 예시 AttributeName을 변경할 수 있습니다.

      • ACCOUNT_ID

      • COVERAGE_STATUS

      • ISSUE

      • ECS_CLUSTER_NAME

      • UPDATED_AT

        필드는 관련 Amazon ECS 클러스터에서 새 작업이 생성되거나 해당 적용 범위 상태가 변경될 때만 업데이트됩니다.

    • max-results를 변경할 수 있습니다(최대 50개).

    • 계정 및 현재 지역에 detectorId 맞는 항목을 찾으려면 https://console.aws.amazon.com/guardduty/ 콘솔의 설정 페이지를 참조하거나 API를 실행하십시오. ListDetectors

    aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "ECS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }' --max-results 5
  • GetCoverageStatisticsAPI를 실행하여 를 기반으로 커버리지 집계 통계를 검색하십시오. statisticsType

    • 다음 옵션 중 하나를 사용하여 예시 statisticsType을 변경할 수 있습니다.

      • COUNT_BY_COVERAGE_STATUS— 커버리지 상태별로 집계된 ECS 클러스터의 커버리지 통계를 나타냅니다.

      • COUNT_BY_RESOURCE_TYPE— 목록에 있는 AWS 리소스 유형에 따라 집계된 커버리지 통계입니다.

      • 명령에서 예시 filter-criteria를 변경할 수 있습니다. CriterionKey에 대해 다음 옵션을 사용할 수 있습니다.

        • ACCOUNT_ID

        • ECS_CLUSTER_NAME

        • COVERAGE_STATUS

        • MANAGEMENT_TYPE

        • INSTANCE_ID

    • 계정과 현재 지역에 detectorId 대한 정보를 찾으려면 https://console.aws.amazon.com/guardduty/ 콘솔의 설정 페이지를 참조하거나 API를 실행하세요. ListDetectors

    aws guardduty --region us-east-1 get-coverage-statistics --detector-id 12abc34d567e8fa901bc2d34e56789f0 --statistics-type COUNT_BY_COVERAGE_STATUS --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"123456789012"}}] }'

커버리지 문제에 대한 자세한 내용은 을 참조하십시오적용 범위 문제 해결.

적용 범위 상태 변경 알림 구성

Amazon ECS 클러스터의 커버리지 상태가 비정상으로 표시될 수 있습니다. 커버리지 상태가 언제 변경되는지 확인하려면 주기적으로 커버리지 상태를 모니터링하고 상태가 비정상으로 바뀌면 문제를 해결하는 것이 좋습니다. 또는 보장 상태가 비정상에서 건강으로 또는 기타 상태로 변경될 때 알림을 받도록 Amazon EventBridge 규칙을 생성할 수 있습니다. 기본적으로 계정의 EventBridge 버스에 이 내용을 GuardDuty 게시합니다.

샘플 알림 스키마

EventBridge 규칙적으로 사전 정의된 샘플 이벤트와 이벤트 패턴을 사용하여 커버리지 상태 알림을 받을 수 있습니다. EventBridge 규칙 생성에 대한 자세한 내용은 Amazon EventBridge 사용 설명서의 규칙 생성을 참조하십시오.

또한 다음 예시 알림 스키마를 사용하여 사용자 지정 이벤트 패턴을 생성할 수 있습니다. 계정에 대한 값을 바꿔야 합니다. Amazon ECS 클러스터의 커버리지 상태가 에서 HealthyUnhealthy 변경될 때 알림을 받으려면 GuardDuty 런타임 보호 detail-type 비정상이어야 합니다. 적용 범위 상태가 에서 Unhealthy 로 변경될 때 알림을 받으려면 의 값을 GuardDuty 런타임 보호 정상 상태로 detail-type 바꾸십시오. Healthy

{ "version": "0", "id": "event ID", "detail-type": "GuardDuty Runtime Protection Unhealthy", "source": "aws.guardduty", "account": "AWS 계정 ID", "time": "event timestamp (string)", "region": "AWS 리전", "resources": [ ], "detail": { "schemaVersion": "1.0", "resourceAccountId": "string", "currentStatus": "string", "previousStatus": "string", "resourceDetails": { "resourceType": "ECS", "ecsClusterDetails": { "clusterName":"", "fargateDetails":{ "issues":[], "managementType":"" }, "containerInstanceDetails":{ "coveredContainerInstances":int, "compatibleContainerInstances":int } } }, "issue": "string", "lastUpdatedAt": "timestamp" } }

적용 범위 문제 해결

Amazon ECS 클러스터의 커버리지 상태가 비정상인 경우 Issue 열에서 이유를 확인할 수 있습니다.

다음 표에는 Fargate (Amazon ECS만 해당) 문제에 대한 권장 문제 해결 단계가 나와 있습니다. Amazon EC2 인스턴스 적용 범위 문제에 대한 자세한 내용은 Amazon 적용 범위 문제 해결 EC2 인스턴스를 참조하십시오.

문제 유형 추가 정보 권장 문제 해결 단계

상담원이 신고하지 않음

에이전트가 내 작업에 대해 보고하지 않음 TaskDefinition - 'TASK_DEFINITION'

VPC 엔드포인트 구성이 올바른지 확인합니다.

조직에 SCP (서비스 제어 정책) 가 있는 경우 권한을 거부하지 않는지 확인하세요. guardduty:SendSecurityTelemetry 자세한 정보는 조직 서비스 제어 정책 검증을 참조하세요.

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

추가 정보에서 VPC 문제 세부 정보를 확인하세요.

에이전트가 종료되었습니다.

ExitCode: EXIT_CODE 에 있는 작업의 경우 TaskDefinition - 'TASK_DEFINITION'

추가 정보에서 문제 세부 정보를 확인하세요.

이유: 에서 작업을 수행하는 이유 TaskDefinition - 'TASK_DEFINITION'

ExitCode: 이유 EXIT_CODE 포함: 내 작업의 경우 'EXIT_CODE' TaskDefinition - 'TASK_DEFINITION'

에이전트 종료: 원인:CannotPullContainerError: 풀 이미지 매니페스트가 재시도되었습니다...

작업 실행 역할에는 다음과 같은 Amazon Elastic 컨테이너 레지스트리 (Amazon ECR) 권한이 있어야 합니다.

... "ecr:GetAuthorizationToken", "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", ...

자세한 정보는 ECR 권한 및 서브넷 세부 정보를 제공하십시오.을 참조하세요.

Amazon ECR 권한을 추가한 후에는 작업을 다시 시작해야 합니다.

문제가 지속되면 을 참조하십시오. AWS Step Functions 워크플로가 예기치 않게 실패합니다.

기타 또는 에이전트가 프로비저닝되지 않음

미확인 문제, 작업의 경우 TaskDefinition - 'TASK_DEFINITION'

다음 질문을 사용하여 문제의 근본 원인을 파악하십시오.

  • 런타임 모니터링을 활성화하기 전에 작업이 시작되었나요?

    Amazon ECS에서는 작업을 변경할 수 없습니다. 실행 중인 Fargate 작업의 런타임 동작을 평가하려면 Runtime Monitoring이 이미 활성화되어 있는지 확인한 다음 컨테이너 사이드카를 GuardDuty 추가하기 위해 작업을 다시 시작하십시오.

  • 이 작업은 런타임 모니터링을 활성화하기 전에 시작된 서비스 배포의 일부인가요?

    그렇다면 서비스를 다시 시작하거나 서비스 업데이트의 단계를 forceNewDeployment 사용하여 서비스를 업데이트할 수 있습니다.

    UpdateService또는 를 사용할 수도 AWS CLI있습니다.

  • 런타임 모니터링에서 ECS 클러스터를 제외한 후 작업이 시작되었습니까?

    사전 정의된 GuardDuty 태그를 GuardDutyManaged -에서 true GuardDutyManaged false -로 GuardDuty 변경하면 ECS 클러스터의 런타임 이벤트가 수신되지 않습니다.

  • 작업이 누락되었나요? TaskExecutionRole

    ECR 저장소에서 GuardDuty 컨테이너를 다운로드할 수 있는 권한이 TaskExecutionRole GuardDuty 필요하므로 반드시 추가해야 합니다. 자세한 정보는 ECR 권한 및 서브넷 세부 정보를 제공하십시오.을 참조하세요.

  • 서비스에 이전 형식의 taskArn 작업이 포함되어 있나요?

    GuardDuty 런타임 모니터링은 이전 형식이 다음과 같은 작업에 대한 적용 범위를 지원하지 않습니다taskArn.

    Amazon ECS 리소스의 Amazon 리소스 이름 (ARN) 에 대한 자세한 내용은 Amazon 리소스 이름 (ARN) 및 ID를 참조하십시오.