

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

# AWS Fargate (Amazon ECS만 해당) 지원을 위한 사전 조건
<a name="prereq-runtime-monitoring-ecs-support"></a>

이 섹션에는 Fargate-Amazon ECS 리소스의 런타임 동작을 모니터링하기 위한 전제 조건이 포함되어 있습니다. 이러한 사전 요구 사항이 충족되면 [GuardDuty 런타임 모니터링 활성화](runtime-monitoring-configuration.md)을 참조하세요.

**Topics**
+ [아키텍처 요구 사항 검증](#validating-architecture-req-ecs)
+ [컨테이너 이미지 액세스를 위한 사전 조건](#before-enable-runtime-monitoring-ecs)
+ [다중 계정 환경에서 조직 서비스 제어 정책 검증](#validate-organization-scp-ecs)
+ [역할 권한 및 정책 권한 경계 검증](#guardduty-runtime-monitoring-ecs-permission-boundary)
+ [CPU 및 메모리 제한](#ecs-runtime-agent-cpu-memory-limits)

## 아키텍처 요구 사항 검증
<a name="validating-architecture-req-ecs"></a>

사용하는 플랫폼이 GuardDuty 보안 에이전트가 Amazon ECS 클러스터로부터 런타임 이벤트를 수신하는 데 있어 GuardDuty를 지원하는 방식에 영향을 미칠 수 있습니다. 확인된 플랫폼 중 하나를 사용하고 있는지 검증해야 합니다.

**초기 고려 사항:**  
Amazon ECS 클러스터의 AWS Fargate 플랫폼은 Linux여야 합니다. 해당 플랫폼 버전은 `1.4.0`, 또는 `LATEST` 이상이어야 합니다. 플랫폼 버전에 대한 자세한 내용은 *Amazon Elastic 컨테이너 서비스 개발자 가이드*에서 [Linux 플랫폼 버전](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform-linux-fargate.html)을 참조하세요.  
Windows 플랫폼 버전은 아직 지원되지 않습니다.

### 검증된 플랫폼
<a name="ecs-verified-platforms-gdu-agent"></a>

OS 배포 및 CPU 아키텍처는 GuardDuty 보안 에이전트가 제공하는 지원에 영향을 미칩니다. 다음 표는 GuardDuty 보안 에이전트를 배포하고 런타임 모니터링을 구성하는 데 있어 검증된 구성을 보여줍니다.


| OS 배포**[1](#runtime-monitoring-ecs-os-support)**  | 커널 지원 | CPU 아키텍처 x64(AMD64) | CPU 아키텍처 Graviton(ARM64) | 
| --- | --- | --- | --- | 
| Linux | eBPF, Tracepoints, Kprobe | 지원됨 | 지원됨 | <a name="runtime-monitoring-ecs-os-support"></a>

1다양한 운영 체제 지원 - GuardDuty는 상기 표에 기재된 운영 체제 배포판에 대한 Runtime Monitoring 지원을 검증했습니다. GuardDuty 보안 에이전트가 위 표에 나열되지 않은 운영 체제에서 실행될 수 있지만 GuardDuty 팀이 예상 보안 값을 보장할 수는 없습니다.

## 컨테이너 이미지 액세스를 위한 사전 조건
<a name="before-enable-runtime-monitoring-ecs"></a>

다음 사전 조건은 Amazon ECR 리포지토리에서 GuardDuty 사이드카 컨테이너 이미지에 액세스하는 데 도움이 됩니다.

### 권한 요구 사항
<a name="ecs-runtime-permissions-requirements"></a>

GuardDuty 보안 에이전트 컨테이너 이미지를 다운로드하려면 작업 실행 역할에 특정 Amazon Elastic Container Registry(Amazon ECR) 권한이 필요합니다.

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

Amazon ECR 권한을 추가로 제한하려면 GuardDuty 보안 에이전트를 호스팅하는 Amazon ECR 리포지토리 URI를 추가할 수 있습니다 AWS Fargate (Amazon ECS만 해당). 자세한 내용은 [Amazon ECR 리포지토리 호스팅 GuardDuty 에이전트](runtime-monitoring-ecr-repository-gdu-agent.md) 단원을 참조하십시오.

[AmazonECSTaskExecutionRolePolicy](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html) 관리형 정책을 사용하거나 `TaskExecutionRole` 정책에 위의 권한을 추가할 수 있습니다.

### 작업 정의 구성
<a name="ecs-runtime-task-definition"></a>

Amazon ECS 서비스를 생성하거나 업데이트할 때 작업 정의에 서브넷 정보를 제공해야 합니다.

*Amazon Elastic Container Service API 참조*에서 [CreateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html) 및 [UpdateService](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_UpdateService.html) API를 실행하려면 서브넷 정보를 전달해야 합니다. 자세한 내용은 *Amazon Elastic 컨테이너 서비스 개발자 가이드*의 [Amazon ECS 작업 정의](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html)를 참조하세요.

### 네트워크 및 연결 요구 사항
<a name="ecs-runtime-network-requirements"></a>

Amazon ECR에서 GuardDuty 컨테이너 이미지를 다운로드하려면 네트워크 연결을 확인해야 합니다. 이 요구 사항은 Amazon ECR을 사용하여 보안 에이전트를 호스팅하기 때문에 GuardDuty에만 해당됩니다. 네트워크 구성에 따라 다음 옵션 중 하나를 구현해야 합니다.

**옵션 1 - 퍼블릭 네트워크 액세스 사용(사용 가능한 경우)**  
Fargate 작업이 아웃바운드 인터넷 액세스가 가능한 서브넷에서 실행되는 경우 추가 네트워크 구성이 필요하지 않습니다.

**옵션 2 - Amazon VPC 엔드포인트 사용(프라이빗 서브넷용)**  
Fargate 태스크가 인터넷 액세스 없이 프라이빗 서브넷에서 실행되는 경우 GuardDuty 보안 에이전트를 호스팅하는 ECR 리포지토리 URI가 네트워크에 액세스할 수 있도록 ECR에 대한 VPC 엔드포인트를 구성해야 합니다. 이러한 엔드포인트가 없으면 프라이빗 서브넷의 태스크가 GuardDuty 컨테이너 이미지를 다운로드할 수 없습니다.  
VPC 엔드포인트 설정 지침은 *Amazon Elastic Container Registry 사용 설명서*의 [Create the VPC endpoints for Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html#ecr-setting-up-vpc-create) 섹션을 참조하세요.

Fargate가 GuardDuty 컨테이너를 다운로드하도록 활성화하는 방법에 대한 자세한 내용은 *Amazon Elastic Container Registry 사용 설명서*에서 [Amazon ECS와 함께 Amazon ECR 이미지 사용](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ECR_on_ECS.html)을 참조하세요.

### 보안 그룹 구성
<a name="ecs-runtime-security-group-requirements"></a>

GuardDuty 컨테이너 이미지는 Amazon ECR에 있으며 Amazon S3 액세스가 필요합니다. 이 요구 사항은 Amazon ECR에서 컨테이너 이미지를 다운로드할 때에만 적용됩니다. 네트워크 액세스가 제한된 작업의 경우 S3에 대한 액세스를 허용하도록 보안 그룹을 구성해야 합니다.

[포트 443의 S3 관리형 접두사 목록(`pl-xxxxxxxx`)](https://docs.aws.amazon.com/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-security)으로의 트래픽을 허용하는 아웃바운드 규칙을 보안 그룹에 추가합니다. 아웃바운드 규칙을 추가하려면 *Amazon VPC 사용 설명서*의 [보안 그룹 규칙 구성](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)을 참조하세요.

콘솔에서 AWS관리형 접두사 목록을 보거나 AWS Command Line Interface (AWS CLI)를 사용하여 설명하려면 *Amazon VPC 사용 설명서*의 [AWS관리형 접두사 목록을](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-aws-managed-prefix-lists.html) 참조하세요.

## 다중 계정 환경에서 조직 서비스 제어 정책 검증
<a name="validate-organization-scp-ecs"></a>

이 섹션에서는 서비스 제어 정책(SCP) 설정을 검증하여 Runtime Monitoring이 조직 전체에서 예상대로 작동하는지 확인하는 방법을 설명합니다.

조직의 권한을 관리하기 위해 하나 이상의 서비스 제어 정책을 설정한 경우 `guardduty:SendSecurityTelemetry` 작업을 거부하지 않는지 확인해야 합니다. SCP 작동 방식에 대한 자세한 내용은 *AWS Organizations 사용 설명서*의 [SCP evaluation](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_evaluation.html)을 참조하세요.

멤버 계정인 경우 연결된 위임된 관리자와 연결합니다. 조직의 SCP 관리에 대한 자세한 내용은 *AWS Organizations 사용 설명서*의 [Service control policies (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)를 참조하세요.

다중 계정 환경에서 설정한 모든 SCP에 대해 다음 단계를 수행합니다.

**SCP에서 `guardduty:SendSecurityTelemetry`가 거부되지 않았는지 확인하려면**

1. [https://console.aws.amazon.com/organizations/](https://console.aws.amazon.com/organizations/)에서 Organizations 콘솔에 로그인합니다. 조직의 관리 계정에서 IAM 역할로 로그인하거나 루트 사용자로 로그인([권장되지 않음](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#lock-away-credentials))해야 합니다.

1. 왼쪽 탐색 창에서 **정책**을 선택합니다. 그런 다음 **지원되는 정책 유형**에서 **서비스 제어 정책**을 선택합니다.

1. **서비스 제어 정책** 페이지에서 검증할 정책의 이름을 선택합니다.

1. 정책의 세부 정보 페이지에서 이 정책의 **내용**을 확인합니다. `guardduty:SendSecurityTelemetry` 작업을 거부하지 않는지 확인합니다.

   다음 SCP 정책은 `guardduty:SendSecurityTelemetry` 작업을 *거부하지 않는* 예입니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
       "Effect": "Allow",
               "Action": [           
                   "guardduty:SendSecurityTelemetry"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

   정책이 이 작업을 거부하는 경우 정책을 업데이트해야 합니다. 자세한 내용은 *AWS Organizations 사용 설명서*의 [서비스 제어 정책(SCP) 업데이트](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy)를 참조하세요.

## 역할 권한 및 정책 권한 경계 검증
<a name="guardduty-runtime-monitoring-ecs-permission-boundary"></a>

다음 단계를 사용하여 역할 및 해당 정책과 연결된 권한 경계가 제한 `guardduty:SendSecurityTelemetry` 작업이 **아닌지** 확인합니다.

**역할 및 해당 정책에 대한 권한 경계를 보려면**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. 왼쪽 탐색 창의 **액세스 관리**에서 **역할**을 선택합니다.

1. **역할** 페이지에서 방금 생성한 역할 {{`TaskExecutionRole`}}을 선택합니다.

1. 선택한 역할 페이지의 **권한** 탭에서 이 역할과 연결된 정책 이름을 확장합니다. 그런 다음 이 정책이 `guardduty:SendSecurityTelemetry`를 제한하지 않는지 확인합니다.

1. **권한 경계**가 설정된 경우 이 섹션을 확장합니다. 그런 다음 각 정책을 확장하여 `guardduty:SendSecurityTelemetry` 작업을 제한하지 않는지 검토합니다. 정책은 이 [Example SCP policy](#ecs-runtime-scp-not-deny-policy-example)과 비슷할 것입니다.

   필요한 경우, 다음 작업 중 하나를 수행하세요.
   + 정책을 수정하려면 **편집**을 선택합니다. 이 정책의 **권한 수정** 페이지의 **정책 편집기**에서 정책을 업데이트합니다. JSON 스키마가 유효한지 확인합니다. 그리고 **다음**을 선택합니다. 그런 다음, 변경 사항을 검토하고 저장할 수 있습니다.
   + 이 권한 경계를 변경하고 다른 경계를 선택하려면 **경계 변경**을 선택합니다.
   + 이 권한 경계를 제거하려면 **경계 제거**를 선택합니다.

   정책 관리에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS Identity and Access Management의 정책 및 권한](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)을 참조하세요.

## CPU 및 메모리 제한
<a name="ecs-runtime-agent-cpu-memory-limits"></a>

Fargate 작업 정의에서 작업 수준에서 CPU 및 메모리 값을 지정해야 합니다. 다음 표에는 작업 수준 CPU 및 메모리 값의 유효한 조합과 GuardDuty 컨테이너에 대한 해당 GuardDuty 보안 에이전트 최대 메모리 제한이 나와 있습니다.



- **256(.25 vCPU)**
  - **메모리 값:** 512 MiB, 1 GB, 2GB
  - **GuardDuty 에이전트 최대 메모리 제한:** 128MB

- **512(.5 vCPU)**
  - **메모리 값:** 1GB, 2GB, 3GB, 4GB

- **1024(1 vCPU)**
  - **메모리 값:**
    - 2GB, 3GB, 4GB
    - 5GB, 6GB, 7GB, 8GB

- **2048(2 vCPU)**
  - **메모리 값:** 4\~16GB(1GB 증분)

- **4096(4 vCPU)**
  - **메모리 값:** 8\~20GB(1GB 증분)

- **8192 (8 vCPU)**
  - **메모리 값:** 16\~28GB(4GB 증분) / **GuardDuty 에이전트 최대 메모리 제한:** 256MB
  - **메모리 값:** 32\~60GB(4GB 증분) / **GuardDuty 에이전트 최대 메모리 제한:** 512MB

- **16384 (16 vCPU)**
  - **메모리 값:** 32\~120GB(8GB 증분)
  - **GuardDuty 에이전트 최대 메모리 제한:** 1GB



런타임 모니터링을 활성화하고 클러스터의 적용 범위 상태가 **정상**인 것으로 평가한 후 컨테이너 인사이트 지표를 설정하고 볼 수 있습니다. 자세한 설명은 [Amazon ECS 클러스터에서 모니터링 설정](runtime-monitoring-setting-cpu-mem-monitoring.md#ecs-runtime-cpu-memory-monitoring-agent) 섹션을 참조하세요.

다음 단계는 런타임 모니터링을 구성하고 보안 에이전트도 구성하는 것입니다.