

# 보안이 강화된 Linux(SELinux)로 CloudWatch 에이전트 설정
<a name="CloudWatch-Agent-SELinux"></a>

시스템에 보안이 강화된 Linux(SELinux)가 활성화되어 있는 경우 CloudWatch 에이전트가 제한된 도메인에서 실행되도록 적절한 보안 정책을 적용해야 합니다.

## 사전 조건
<a name="CloudWatch-Agent-SELinux-prerequisites"></a>

에이전트에 대해 SELinux를 구성하려면 먼저 다음과 같은 **사전 조건**을 확인하세요.

**SELinux에서 CloudWatch 에이전트를 사용하는 사전 조건을 완료하는 방법**

1. 아직 완료하지 않았다면 다음과 같은 SELinux 정책 개발 패키지를 설치합니다.

   ```
   sudo yum update
   sudo yum install -y selinux-policy-devel policycoreutils-devel rpm-build git
   ```

1. 다음 명령을 실행하여 시스템의 SELinux 상태를 확인합니다.

   ```
   sestatus
   ```

   출력 예시:

   ```
   SELinux status:                 enabled
   SELinuxfs mount:                /sys/fs/selinux
   SELinux root directory:         /etc/selinux
   Loaded policy name:             targeted
   Current mode:                   permissive
   Mode from config file:          permissive
   Policy MLS status:              enabled
   Policy deny_unknown status:     allowed
   Memory protection checking:     actual (secure)
   Max kernel policy version:      33
   ```

   SELinux가 현재 비활성화되어 있다면 다음을 수행합니다.

   1. 다음 명령을 입력하여 SELinux 파일을 엽니다.

      ```
      sudo vi /etc/selinux/config
      ```

   1. `SELINUX` 파라미터를 `permissive` 또는 `enforcing`으로 설정합니다. 예제:

      ```
      SELINUX=enforcing
      ```

   1. 파일을 저장하고 시스템을 재부팅하여 변경 사항을 적용합니다.

      ```
      sudo reboot
      ```

1. CloudWatch 에이전트가 `systemd` 서비스로 실행되고 있는지 확인합니다. 이는 제한된 SELinux 도메인 내에서 사용하는 데 필요합니다.

   ```
   sudo systemctl status amazon-cloudwatch-agent
   ```

   에이전트가 올바르게 구성되었다면 시작 시 출력에 `enabled` 및 `active (running)`가 표시될 것입니다.

## 에이전트에 대한 SELinux 구성
<a name="CloudWatch-Agent-SELinux-configure"></a>

사전 조건을 완료한 후 SELinux를 구성할 수 있습니다.

**CloudWatch 에이전트용 SELinux를 구성하는 방법**

1. 다음 명령을 입력하여 CloudWatch 에이전트에 대한 SELinux 정책을 복제합니다.

   ```
   git clone https://github.com/aws/amazon-cloudwatch-agent-selinux.git
   ```

1. 복제된 리포지토리로 이동한 다음에 다음과 같은 명령을 입력하여 스크립트 권한을 업데이트합니다.

   ```
   cd amazon-cloudwatch-agent-selinux  
   chmod +x amazon_cloudwatch_agent.sh
   ```

1. `sudo`를 사용하여 다음 명령을 입력한 다음에 SELinux 정책 설치 스크립트를 실행합니다. 자동 재시작이 허용되도록 `y` 또는 `n`을 입력하라는 메시지가 스크립트에 실행 도중에 표시됩니다. 이렇게 다시 시작하면 에이전트가 올바른 SELinux 도메인으로 전환됩니다.

   ```
   sudo ./amazon_cloudwatch_agent.sh
   ```

1. CloudWatch 에이전트가 아직 다시 시작되지 않은 경우 올바른 SELinux 도메인으로 전환되도록 다시 시작합니다.

   ```
   sudo systemctl restart amazon-cloudwatch-agent
   ```

1. 다음 명령을 입력하여 제한된 도메인에서 CloudWatch 에이전트가 실행 중인지 확인합니다.

   ```
   ps -efZ | grep amazon-cloudwatch-agent
   ```

   에이전트가 올바르게 제한되었다면 `unconfined_service_t` 대신 SELinux로 제한된 도메인이 출력에 표시되어야 합니다.

   다음은 에이전트가 올바르게 제한되었을 때 출력의 예입니다.

   ```
   system_u:system_r:confined_t:s0 root 1234 1 0 12:00 ? 00:00:10 /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent
   ```

SELinux가 구성되면 에이전트 구성을 진행하여 지표, 로그 및 트레이스를 수집할 수 있습니다. 자세한 내용은 [수동으로 CloudWatch 에이전트 구성 파일 생성 또는 편집](CloudWatch-Agent-Configuration-File-Details.md) 섹션을 참조하세요.