阿里云安全组动态IP更新工具
用于动态更新阿里云安全组规则的自动化脚本。
核心功能
- ✅ 自动检测公网IP变动
- ✅ 批量更新多安全组规则
- ✅ 智能迁移旧IP规则到新IP
- ✅ 严格验证协议和端口规则
- ✅ 自动记录IP变更历史
系统要求
- 已配置阿里云API访问权限
- 基础工具:
curl、jq
安装指南
1. 安装基础依赖
sudo yum install -y curl jq
2. 安装阿里云CLI(二进制方式)
# 解压安装包
tar -zxvf aliyun-cli-linux-latest-amd64.tgz -C /usr/local/bin/
# 设置执行权限
chmod +x /usr/local/bin/aliyun
# 验证安装
aliyun --version
3. 配置阿里云CLI
aliyun configure
按照提示输入:
- AccessKey ID
- AccessKey Secret
- 默认地域ID(如
cn-beijing) - 输出格式选择
json
脚本配置
编辑 alisg.sh 修改以下参数:
# 必填配置
REGION="cn-beijing" # 您的阿里云地域
SECURITY_GROUP_IDS=("sg-2zebj4i9uydml05xwejg") # 安全组ID数组
LOG_FILE="/var/log/ip-update.log" # 推荐使用绝对路径
# 可选调试参数
# _LAST_IP="142.171.168.162" # 手动指定旧IP
# _CURRENT_IP="115.171.170.151" # 手动指定新IP
使用方法
首次运行(测试模式)
chmod +x alisg.sh
./alisg.sh
生产环境建议
# 1. 创建专用目录
sudo mkdir -p /opt/aliyun_sg
sudo cp alisg.sh /opt/aliyun_sg/
sudo chown root:root /opt/aliyun_sg/alisg.sh
# 2. 设置定时任务(每小时检查)
echo "0 * * * * root /opt/aliyun_sg/alisg.sh >> /var/log/ip-update.log 2>&1" | sudo tee /etc/cron.d/aliyun_sg_update
日志监控
建议定期检查日志文件:
tail -f /var/log/ip-update.log
典型成功日志示例:
[2023-11-15 14:00:01] 检测到IP变更
旧IP:142.171.168.162
新IP:115.171.170.151
安全组 sg-2zebj4i9uydml05xwejg 处理完成:
- 已移除 TCP/22/22 规则
- 已添加 TCP/22/22 规则(新IP)
IP日志已更新
安全建议
- 限制日志文件权限:
sudo chmod 600 /var/log/ip-update.log
-
使用最小权限的AccessKey
-
定期备份安全组规则:
aliyun ecs DescribeSecurityGroupAttribute --RegionId $REGION --SecurityGroupId $SG_ID > sg_backup.json
故障排除
| 错误现象 | 解决方案 |
|---|---|
aliyun: command not found |
检查PATH或使用完整路径 /usr/local/bin/aliyun |
| 权限拒绝错误 | 使用 sudo 或检查AccessKey权限 |
| JSON解析错误 | 安装正确版本的 jq 工具 |
许可证
MIT License - 自由使用和修改
Description
Languages
Shell
100%