

# Security-Enhanced Linux (SELinux) で CloudWatch エージェントをセットアップする
<a name="CloudWatch-Agent-SELinux"></a>

システムで Security-Enhanced 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
   ```

   エージェントが正しく設定されている場合、起動時に出力でエージェントが `active (running)` と `enabled` であることが示されます。

## エージェントに 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)」を参照してください。