

# Runtime Monitoring을 사용하여 무단 동작 식별
<a name="ecs-guard-duty-integration"></a>

Amazon GuardDuty는 AWS 환경 내 계정, 컨테이너, 워크로드 및 데이터를 보호하는 데 도움이 되는 위협 감지 서비스입니다. GuardDuty는 기계 학습(ML) 모델, 이상 및 위협 감지 기능을 통해 다양한 로그 소스와 런타임 활동을 지속적으로 모니터링하여 사용자 환경의 잠재적 보안 위험과 악의적 활동을 식별하고 우선순위를 지정합니다.

GuardDuty의 Runtime Monitoring은 AWS 로그 및 네트워킹 활동을 지속적으로 모니터링하여 악의적 동작 또는 무단 동작을 식별함으로써 Fargate 및 EC2 컨테이너 인스턴스에서 실행되는 워크로드를 보호합니다. Runtime Monitoring은 파일 액세스, 프로세스 실행 및 네트워크 연결과 같은 호스트 내 동작을 분석하는 경량의 완전관리형 GuardDuty 보안 에이전트를 사용합니다. 여기에는 권한 에스컬레이션, 노출된 자격 증명 사용 또는 악의적인 IP 주소 및 도메인과의 통신, 그리고 Amazon EC2 인스턴스 및 컨테이너 워크로드에 존재하는 맬웨어 같은 문제가 포함됩니다. 자세한 내용은 **GuardDuty 사용 설명서의 [GuardDuty Runtime Monitoring](https://docs.aws.amazon.com/guardduty/latest/ug/runtime-monitoring.html)을 참조하세요.

보안 관리자는 GuardDuty의 AWS Organizations에서 단일 또는 여러 계정에 대해 Runtime Monitoring을 활성화합니다. 또한 Fargate를 사용할 때 GuardDuty가 GuardDuty 보안 에이전트를 자동으로 배포할지 여부도 선택합니다. 모든 클러스터는 자동으로 보호되며 GuardDuty는 사용자를 대신하여 보안 에이전트를 관리합니다.

다음과 같은 경우에도 GuardDuty 보안 에이전트를 수동으로 구성할 수 있습니다.
+ EC2 컨테이너 인스턴스 사용
+ 클러스터 수준에서 Runtime Monitoring을 활성화하려면 세분화된 제어가 필요합니다.

Runtime Monitoring을 사용하려면 보호되는 클러스터를 구성하고 EC2 컨테이너 인스턴스에 GuardDuty 보안 에이전트를 설치 및 관리해야 합니다.

## Amazon ECS에서 Runtime Monitoring이 작동하는 방식
<a name="ecs-runtime-monitoring-events"></a>

Runtime Monitoring은 애플리케이션의 요청, 액세스 확보, 기본 시스템 리소스 소비 방식에 관한 Amazon ECS 워크로드 활동을 모니터링하는 경량 GuardDuty 보안 에이전트를 사용합니다.

Fargate 작업의 경우 GuardDuty 보안 에이전트는 각 작업의 사이드카 컨테이너로 실행됩니다.

EC2 컨테이너 인스턴스의 경우 GuardDuty 보안 에이전트는 인스턴스에서 프로세스로 실행됩니다.

GuardDuty 보안 에이전트는 다음 리소스에서 데이터를 수집하고, GuardDuty로 데이터를 전송하여 처리합니다. 조사 결과는 GuardDuty 콘솔에서 볼 수 있습니다. 또한 집계 및 문제 해결을 위해 다른 AWS 서비스(예: AWS Security Hub CSPM) 또는 타사 보안 공급업체에 전송할 수도 있습니다. 조사 결과를 보고 관리하는 방법에 대한 자세한 내용은 *Amazon GuardDuty 사용 설명서*의 [Managing Amazon GuardDuty findings](https://docs.aws.amazon.com/guardduty/latest/ug/findings_management.html)를 참조하세요.
+ 다음 Amazon ECS API 직접 호출에서 받은 응답:
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeClusters.html)

    `--include TAGS` 옵션을 사용할 때 응답 파라미터에 Runtime Monitoring 태그(태그가 설정된 경우)가 포함됩니다.
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_DescribeTasks.html)

    Fargate의 경우 응답 파라미터는 GuardDuty 사이드카 컨테이너를 포함합니다.
  + [https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_ListAccountSettings.html)

    응답 파라미터에는 보안 관리자가 설정하는 Runtime Monitoring 계정 설정이 포함됩니다.
+ 컨테이너 에이전트 내부 검사 데이터. 자세한 내용은 [Amazon ECS 컨테이너 내부 검사](ecs-agent-introspection.md) 섹션을 참조하세요.
+ 컴퓨팅 옵션의 태스크 메타데이터 엔드포인트:
  +  [Amazon ECS 작업 메타데이터 엔드포인트 버전 4](task-metadata-endpoint-v4.md)
  +  [Fargate의 작업에 대한 Amazon ECS 작업 메타데이터 엔드포인트 버전 4](task-metadata-endpoint-v4-fargate.md)

## 고려 사항
<a name="ecs-guard-duty-support"></a>

Runtime Monitoring을 사용할 때는 다음 사항을 고려합니다.
+ Runtime Monitoring에는 관련 비용이 있습니다. 자세한 내용은 [Amazon GuardDuty 요금](https://aws.amazon.com/guardduty/pricing/)을 참조하세요.
+ Amazon ECS Anywhere에서는 Runtime Monitoring이 지원되지 않습니다.
+ Runtime Monitoring은 Windows 운영 체제에서 지원되지 않습니다.
+ Fargate에서 Amazon ECS Exec을 사용하는 경우 GuardDuty 보안 에이전트가 사이드카 컨테이너로 실행되기 때문에 컨테이너 이름을 지정해야 합니다.
+ GuardDuty 보안 에이전트 사이드카 컨테이너에서 Amazon ECS Exec를 사용할 수 없습니다.
+ 클러스터 수준에서 Runtime Monitoring을 제어하는 IAM 사용자는 태그 지정을 위한 적절한 IAM 권한을 보유해야 합니다. 자세한 내용은 *IAM 사용 설명서*의 [IAM 튜토리얼: 태그를 기반으로 AWS 리소스에 액세스할 수 있는 권한 정의](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html)를 참조하세요.
+ Fargate 작업에서는 작업 실행 역할을 사용해야 합니다. 이 역할은 사용자를 대신하여 Amazon ECR 프라이빗 리포지토리에 저장된 GuardDuty 보안 에이전트를 검색, 업데이트 및 관리할 권한을 작업에 부여합니다.
+ Runtime Monitoring은 Amazon ECS 관리형 인스턴스에서 실행되는 애플리케이션에 대해 지원하지 않습니다.

## 리소스 사용률
<a name="ecs-guard-duty-resources"></a>

클러스터에 추가한 태그는 클러스터 태그 할당량 계산에 포함됩니다.

GuardDuty 에이전트 사이드카 컨테이너는 작업 정의 할당량당 컨테이너 수 계산에 포함되지 않습니다.

대부분의 보안 소프트웨어와 마찬가지로 GuardDuty에도 약간의 오버헤드가 있습니다. Fargate 메모리 제한에 대한 자세한 내용은 *GuardDuty 사용 설명서*의 [CPU and memory limits](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ecs-support.html#ecs-runtime-agent-cpu-memory-limits)를 참조하세요. Amazon EC2 메모리 제한에 대한 자세한 내용은 [CPU and memory limit for GuardDuty agent](https://docs.aws.amazon.com/guardduty/latest/ug/prereq-runtime-monitoring-ec2-support.html#ec2-cpu-memory-limits-gdu-agent)를 참조하세요.