如何通过Mac端AWS CLI筛选指定IP段带特定标签的AWS实例私网IP
Mac系统通过AWS CLI遍历指定IP段筛选符合标签要求的EC2实例方案
该方案不会拉取账号下全量EC2实例做二次过滤,所有查询请求仅针对指定的10.100.0.1~10.100.0.20私网IP段发起,符合使用要求。
操作步骤
- 第一步:生成待校验IP列表文件
打开Mac终端,进入准备存放脚本和结果的目录,执行以下命令自动生成包含10.100.0.1到10.100.0.20所有IP的IP.txt文件,无需手动逐行填写:for i in {1..20}; do echo "10.100.0.$i" >> IP.txt; done - 第二步:执行遍历筛选逻辑
直接在终端执行以下脚本即可,脚本会逐行读取IP.txt中的IP,每次调用AWS CLI仅查询当前IP对应的实例,同时校验实例状态、标签匹配度,符合要求的私网IP会直接打印在终端,同时写入结果文件:> valid_ips.txt while read -r ip; do result=$(aws ec2 describe-instances \ --filters \ "Name=instance-state-name,Values=Running" \ "Name=private-ip-address,Values=$ip" \ "Name=tag:Monitoring,Values=True" \ "Name=tag:Env,Values=Dev" \ --query 'Reservations[].Instances[].PrivateIpAddress' \ --output text) if [[ -n $result && $result != "None" ]]; then echo $result | tee -a valid_ips.txt fi done < IP.txt
注意事项
- 执行前确认本地AWS CLI已完成凭证配置,且绑定的身份拥有
ec2:DescribeInstances权限,如果需要指定区域,在aws ec2 describe-instances后加上--region 你的区域编码即可,例如--region cn-north-1 - 标签匹配为严格大小写匹配,如果你的标签值存在大小写差异,自行调整
Values=后的对应内容 - 筛选完成后,所有符合要求的私网IP会存放在当前目录的
valid_ips.txt文件中
内容的提问来源于stack exchange,提问作者Metro
相关产品推荐
相关产品推荐

