通过安全增强型 Linux (SELinux) 设置 CloudWatch 代理
如果您的系统启用了安全增强型 Linux (SELinux),则必须应用适当的安全策略来确保 CloudWatch 代理在受限的域中运行。
先决条件
在为代理配置 SELinux 之前,请检查以下先决条件:
完成与 SELinux 搭配使用 CloudWatch 代理的先决条件
安装以下 SELinux 策略开发包(如果还没有执行此操作):
sudo yum update sudo yum install -y selinux-policy-devel policycoreutils-devel rpm-build git
运行以下命令,查看系统的 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 当前处于禁用状态,请执行以下操作:
输入以下命令以打开 SELinux 文件:
sudo vi /etc/selinux/config
将
SELINUX
参数设置为permissive
或enforcing
。例如:SELINUX=enforcing
保存文件,并重新启动系统以应用更改。
sudo reboot
确保 CloudWatch 代理正在作为
systemd
服务运行。这是在受限的 SELinux 域中使用它的必要条件。sudo systemctl status amazon-cloudwatch-agent
如果代理配置正确,则输出应表明其状态为
active (running)
并在启动时为enabled
。
为代理配置 SELinux
完成先决条件后,便可配置 SELinux。
为 CloudWatch 代理配置 SELinux
输入以下命令,克隆适用于 CloudWatch 代理的 SELinux 策略:
git clone https://github.com/aws/amazon-cloudwatch-agent-selinux.git
导航到克隆的存储库,然后输入以下命令以更新脚本权限:
cd amazon-cloudwatch-agent-selinux chmod +x amazon_cloudwatch_agent.sh
输入以下命令以使用
sudo
运行 SELinux 策略安装脚本。执行过程中,脚本会提示您输入y
或n
以允许自动重启。此次重启可确保代理转换到正确的 SELinux 域。sudo ./amazon_cloudwatch_agent.sh
如果 CloudWatch 代理尚未重启,则请将其重启以确保转换到正确的 SELinux 域:
sudo systemctl restart amazon-cloudwatch-agent
输入以下命令,验证 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 代理配置文件。