如何限制EC2实例AMI中的angelo-user使用AWS-CLI?
限制EC2实例中angelo-user使用AWS-CLI的方法
完全可行,可通过限制命令执行权限和阻断凭证获取渠道两个维度实现,具体操作如下:
一、限制angelo-user执行AWS-CLI命令
直接通过系统权限控制,禁止该用户运行aws命令:
- 使用
visudo编辑sudo规则(避免语法错误):visudo -f /etc/sudoers.d/angelo-restrictions - 添加以下规则:
保存退出后,angelo-user将无法通过sudo执行aws命令。angelo-user ALL=(ALL) !/usr/bin/aws - 若要彻底禁止该用户直接执行aws命令,修改命令文件的其他用户执行权限:
chmod o-x /usr/bin/aws
二、阻断angelo-user获取AWS凭证的渠道
EC2实例中AWS-CLI的凭证来源通常是实例元数据(关联IAM角色时)或本地凭证文件,需分别限制:
1. 限制访问实例元数据
实例元数据地址为169.254.169.254,通过iptables规则阻断该用户的访问:
# 添加规则阻止angelo-user访问实例元数据 iptables -A OUTPUT -m owner --uid-owner angelo-user -d 169.254.169.254 -j DROP # 保存规则(不同系统命令略有差异,以RHEL/CentOS为例) iptables-save > /etc/sysconfig/iptables
2. 限制访问本地凭证文件
如果ec2-user使用本地~/.aws/credentials文件存储凭证,确保该文件仅对ec2-user可见:
chmod 700 /home/ec2-user/.aws chmod 600 /home/ec2-user/.aws/*
这样angelo-user将无法读取ec2-user的凭证文件。
验证效果
切换到angelo-user账号,尝试执行aws s3 ls等命令,若提示权限不足或命令无法执行,则配置生效。
内容的提问来源于stack exchange,提问作者Angelo
相关产品推荐
相关产品推荐

