Amazon ECS 클러스터의 런타임 범위 및 문제 해결 - Amazon GuardDuty

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

Amazon ECS 클러스터의 런타임 범위 및 문제 해결

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

Fargate에서 실행되는 Amazon ECS 클러스터의 경우 런타임 적용 범위는 작업 수준에서 평가됩니다. ECS 클러스터 런타임 범위에는 런타임 모니터링 및 Fargate에 대한 자동 에이전트 구성을 활성화한 후 실행을 시작한 Fargate 작업이 포함됩니다(ECS만 해당). 기본적으로 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 인스턴스Amazon EC2 런타임 적용 범위 문제 해결용 섹션을 참조하세요.

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

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

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

  • 런타임 적용 범위 탭을 선택합니다.

  • ECS 클러스터 런타임 적용 범위 탭에서 클러스터 목록 테이블에서 사용할 수 있는 각 Amazon ECS 클러스터의 적용 범위 상태로 집계된 적용 범위 통계를 볼 수 있습니다.

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

      • 계정 ID

      • 클러스터 이름

      • 에이전트 관리 유형

      • 적용 범위 상태

  • Amazon ECS 클러스터 중 하나라도 적용 범위 상태가 비정상 인 경우 문제 열에는 비정상 상태 이유에 대한 추가 정보가 포함됩니다.

    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/ 콘솔의 설정 페이지를 참조하거나 ListDetectors API.

    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/ 콘솔의 설정 페이지를 참조하거나 ListDetectors API.

    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-Fargate 런타임 적용 범위 문제 해결.

알림을 통한 EventBridge 보장 상태 변경

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

샘플 알림 스키마

EventBridge 규칙에서 사전 정의된 샘플 이벤트 및 이벤트 패턴을 사용하여 적용 범위 상태 알림을 받을 수 있습니다. EventBridge 규칙 생성에 대한 자세한 내용은 Amazon EventBridge 사용 설명서규칙 생성을 참조하세요.

또한 다음 예시 알림 스키마를 사용하여 사용자 지정 이벤트 패턴을 생성할 수 있습니다. 계정에 대한 값을 바꿔야 합니다. Amazon ECS 클러스터의 적용 범위 상태가 에서 Healthy로 변경될 때 알림을 받으려면 Unhealthydetail-typeGuardDuty Runtime Protection Unhealthy. 적용 범위 상태가 에서 Unhealthy로 변경될 때 알림을 받으려면 의 값을 detail-typeHealthy바꿉니다.GuardDuty Runtime Protection 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-Fargate 런타임 적용 범위 문제 해결

Amazon ECS 클러스터의 적용 범위 상태가 비정상 인 경우 문제 열에서 이유를 볼 수 있습니다.

다음 표에는 Fargate(AmazonECS만 해당) 문제에 대한 권장 문제 해결 단계가 나와 있습니다. Amazon EC2 인스턴스 적용 범위에 대한 자세한 내용은 Amazon EC2 인스턴스Amazon EC2 런타임 적용 범위 문제 해결용 섹션을 참조하세요.

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

에이전트가 보고하지 않음

의 작업에 대해 보고하지 않는 에이전트 TaskDefinition - 'TASK_DEFINITION'

Amazon ECS 클러스터 작업의 VPC 엔드포인트가 올바르게 구성되었는지 확인합니다. 자세한 내용은 VPC 엔드포인트 구성 검증 단원을 참조하십시오.

조직에 서비스 제어 정책(SCP)이 있는 경우 권한 경계가 guardduty:SendSecurityTelemetry 권한을 제한하지 않는지 확인합니다. 자세한 내용은 조직 서비스 제어 정책 검증 단원을 참조하십시오.

VPC_ISSUE; for task in TaskDefinition - 'TASK_DEFINITION'

추가 정보에서 VPC 문제 세부 정보를 봅니다.

에이전트 종료됨

ExitCode: 의 EXIT_CODE 작업 TaskDefinition - 'TASK_DEFINITION'

추가 정보에서 문제 세부 정보를 봅니다.

이유: REASON 의 태스크 TaskDefinition - 'TASK_DEFINITION'

ExitCode: EXIT_CODE 이유 포함: 'EXIT_CODE의 태스크에 대해 ' TaskDefinition - 'TASK_DEFINITION'

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

작업 실행 역할에는 다음과 같은 Amazon Elastic Container Registry(AmazonECR) 권한이 있어야 합니다.

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

자세한 내용은 ECR 권한 및 서브넷 세부 정보 제공 단원을 참조하십시오.

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

문제가 지속되면 섹션을 참조하세요AWS Step Functions 워크플로가 예기치 않게 실패하고 있습니다..

VPC 엔드포인트 생성 실패

프라이빗을 활성화DNS하려면 에 대해 enableDnsSupportenableDnsHostnames VPC 속성을 로 설정해야 true 합니다.vpcId (서비스: ECS, 상태 코드: 400, 요청 ID: a1b2c3d4-5678-90ab-cdef-EXAMPLE11111).

다음 VPC 속성이 true - enableDnsSupport 및 로 설정되어 있는지 확인합니다enableDnsHostnames. 자세한 내용은 DNS 의 속성을 참조하세요VPC.

에서 Amazon VPC 콘솔https://console.aws.amazon.com/vpc/을 사용하여 Amazon 를 생성하는 경우 DNS 호스트 이름 활성화 DNS 해결 활성화를 모두 선택해야 VPC합니다. 자세한 내용은 VPC 구성 옵션 섹션을 참조하세요.

에이전트가 프로비저닝되지 않음

의 태스크(들)에 SERVICE 대한 의 지원되지 않는 호출 TaskDefinition - 'TASK_DEFINITION'

이 작업은 지원되지 SERVICE 않는 에서 호출되었습니다.

지원되지 않는 CPU 아키텍처 'TYPE의 태스크(들)에 대해 ' TaskDefinition - 'TASK_DEFINITION'

이 작업은 지원되지 않는 CPU 아키텍처에서 실행됩니다. 지원되는 CPU 아키텍처에 대한 자세한 내용은 섹션을 참조하세요아키텍처 요구 사항 검증.

TaskExecutionRole 에서 누락 TaskDefinition - 'TASK_DEFINITION'

ECS 작업 실행 역할이 누락되었습니다. 태스크 실행 역할 및 필수 권한 제공에 대한 자세한 내용은 섹션을 참조하세요ECR 권한 및 서브넷 세부 정보 제공.

의 태스크(들)에 대한 네트워크 구성 'CONFIGURATION_DETAILS' 누락 TaskDefinition - 'TASK_DEFINITION'

네트워크 구성 문제는 VPC 구성이 누락되었거나 서브넷이 누락되었거나 비어 있기 때문에 나타날 수 있습니다.

네트워크 구성이 올바른지 확인합니다. 자세한 내용은 ECR 권한 및 서브넷 세부 정보 제공 단원을 참조하십시오.

자세한 내용은 Amazon Elastic Container Service 개발자 안내서의 Amazon ECS 작업 정의 파라미터를 참조하세요.

기타

식별되지 않은 문제, 의 태스크에 대한 TaskDefinition - 'TASK_DEFINITION'

다음 질문을 사용하여 문제의 근본 원인을 식별합니다.

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

    Amazon 에서는 태스크ECS를 변경할 수 없습니다. 실행 중인 Fargate 작업의 런타임 동작을 평가하려면 런타임 모니터링이 이미 활성화되어 있는지 확인한 다음 에 대한 작업을 다시 시작하여 컨테이너 사이드카를 GuardDuty 추가합니다.

  • 런타임 모니터링을 활성화하기 전에 시작된 서비스 배포의 일부입니까?

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

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

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

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

  • 서비스에 이전 형식의 작업이 포함되어 있습니까taskArn?

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

    Amazon 리소스의 Amazon ECS 리소스 이름(ARNs)에 대한 자세한 내용은 Amazon 리소스 이름(ARNs) 및 섹션을 참조하세요IDs.