通过安全增强型 Linux (SELinux) 设置 CloudWatch 代理 - Amazon CloudWatch

通过安全增强型 Linux (SELinux) 设置 CloudWatch 代理

如果您的系统启用了安全增强型 Linux (SELinux),则必须应用适当的安全策略来确保 CloudWatch 代理在受限的域中运行。

先决条件

在为代理配置 SELinux 之前,请检查以下先决条件

完成与 SELinux 搭配使用 CloudWatch 代理的先决条件
  1. 安装以下 SELinux 策略开发包(如果还没有执行此操作):

    sudo yum update sudo yum install -y selinux-policy-devel policycoreutils-devel rpm-build git
  2. 运行以下命令,查看系统的 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
    2. SELINUX 参数设置为 permissiveenforcing。例如:

      SELINUX=enforcing
    3. 保存文件,并重新启动系统以应用更改。

      sudo reboot
  3. 确保 CloudWatch 代理正在作为 systemd 服务运行。这是在受限的 SELinux 域中使用它的必要条件。

    sudo systemctl status amazon-cloudwatch-agent

    如果代理配置正确,则输出应表明其状态为 active (running) 并在启动时为 enabled

为代理配置 SELinux

完成先决条件后,便可配置 SELinux。

为 CloudWatch 代理配置 SELinux
  1. 输入以下命令,克隆适用于 CloudWatch 代理的 SELinux 策略:

    git clone https://github.com/aws/amazon-cloudwatch-agent-selinux.git
  2. 导航到克隆的存储库,然后输入以下命令以更新脚本权限:

    cd amazon-cloudwatch-agent-selinux chmod +x amazon_cloudwatch_agent.sh
  3. 输入以下命令以使用 sudo 运行 SELinux 策略安装脚本。执行过程中,脚本会提示您输入 yn 以允许自动重启。此次重启可确保代理转换到正确的 SELinux 域。

    sudo ./amazon_cloudwatch_agent.sh
  4. 如果 CloudWatch 代理尚未重启,则请将其重启以确保转换到正确的 SELinux 域:

    sudo systemctl restart amazon-cloudwatch-agent
  5. 输入以下命令,验证 CloudWatch 代理是否正在受限的域中运行。

    ps -efZ | grep amazon-cloudwatch-agent

    如果代理被正确限制,则输出应指示 Selinux 限制的域,而不是 unconfined_service_t

    以下是代理被正确限制时的输出示例。

    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 代理配置文件