

# Amazon ECS의 Fargate 보안 모범 사례
<a name="security-fargate"></a>

AWS Fargate를 사용할 때 다음 모범 사례를 고려하는 것이 좋습니다. 추가 지침은 [Security overview of AWS Fargate](https://d1.awsstatic.com/whitepapers/AWS_Fargate_Security_Overview_Whitepaper.pdf)를 참조하세요.

## AWS KMS를 사용하여 Fargate를 위한 임시 스토리지 암호화
<a name="security-fargate-ephemeral-storage-encryption"></a>

AWS KMS 또는 고객 관리형 키로 임시 스토리지를 암호화해야 합니다. 기본적으로 플랫폼 버전 `1.4.0` 이상을 사용하여 Fargate에서 호스팅되는 작업은 각각 최소 20GiB 이상의 임시 스토리지를 받습니다. 자세한 내용은 [고객 관리형 키(CMK)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/fargate-storage-encryption.html)를 참조하세요. 임시 스토리지의 총량은 작업 정의에 `ephemeralStorage` 파라미터를 지정하여 최대 200GiB까지 늘릴 수 있습니다. 2020년 5월 28일 이후 시작된 작업의 경우, Fargate에서 관리하는 암호화 키를 사용하는 AES-256 암호화 알고리즘으로 임시 스토리지가 암호화됩니다.

자세한 내용은 [Amazon ECS 작업에 대한 스토리지 옵션](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_data_volumes.html)을 참조하세요.

**예: 임시 스토리지 암호화를 사용하여 Fargate 플랫폼 버전 1.4.0에서 작업 시작**

다음 명령은 Fargate 플랫폼 버전 1.4에서 작업을 시작합니다. 이 작업은 클러스터의 일부로 시작되므로 자동으로 암호화되는 20GiB의 임시 스토리지를 사용합니다.

```
aws ecs run-task --cluster clustername \
  --task-definition {{taskdefinition}}:{{version}} \
  --count 1
  --launch-type "FARGATE" \
  --platform-version 1.4.0 \
  --network-configuration "awsvpcConfiguration={subnets=[{{subnetid}}],securityGroups=[{{securitygroupid}}]}" \ 
  --region region
```

## Fargate를 사용한 커널 시스템 호출 추적을 위한 SYS\_PTRACE 기능
<a name="security-fargate-syscall-tracing"></a>

컨테이너에서 추가되거나 삭제되는 Linux 기능의 기본 구성은 Docker에서 제공됩니다.

Fargate에서 시작된 태스크는 `SYS_PTRACE` 커널 기능 추가만 지원합니다.

다음 비디오는 Sysdig [Falco](https://github.com/falcosecurity/falco) 프로젝트를 통해 이 기능을 사용하는 방법을 보여줍니다.

[![AWS Videos](http://img.youtube.com/vi/OYGKjmFeLqI/0.jpg)](http://www.youtube.com/watch?v=OYGKjmFeLqI)


앞의 비디오에서 설명한 코드는 [여기](https://github.com/paavan98pm/ecs-fargate-pv1.4-falco) GitHub에서 찾을 수 있습니다.

## Fargate Runtime Monitoring과 함께 Amazon GuardDuty 사용
<a name="fargate-runtime-monitoring"></a>

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

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