You need to enable JavaScript to run this app. 如何自动化更新Google Cloud SQL授权网络中的本机公网IP
优惠活动
大模型
产品
解决方案
定价
更多

如何自动化更新Google Cloud SQL授权网络中的本机公网IP

Cloud SQL 动态公网IP白名单自动更新PowerShell方案

前置准备

  • 安装Google Cloud SDK(gcloud CLI),完成身份认证:执行gcloud auth login登录对应项目的所有者账号,执行gcloud config set project [你的GCP项目ID]设置默认项目
  • 提前记录需要操作的Cloud SQL实例ID

实现脚本

脚本逻辑:先拉取现有授权IP列表、获取当前网络公网IP、去重合并后调用更新接口,不会覆盖原有IP

# 替换为你的Cloud SQL实例ID
$INSTANCE_ID = "你的实例ID"

# 获取当前公网IP,转为单IP的CIDR格式
$currentPublicIp = (Invoke-WebRequest -Uri "https://api.ipify.org" -UseBasicParsing).Content.Trim() + "/32"

# 获取实例现有授权网络列表
$existingNetworks = gcloud sql instances describe $INSTANCE_ID --format="csv[no-heading](settings.ipConfiguration.authorizedNetworks.value)" | Where-Object { $_ -ne "" }

# 检查当前IP是否已在白名单中,存在则直接退出避免重复操作
if ($existingNetworks -contains $currentPublicIp) {
    Write-Host "当前IP $currentPublicIp 已在白名单中,无需更新"
    exit 0
}

# 合并新旧IP列表,去重
$updatedNetworks = $existingNetworks + $currentPublicIp | Select-Object -Unique
$networkParam = $updatedNetworks -join ","

# 执行更新
gcloud sql instances patch $INSTANCE_ID --authorized-networks=$networkParam --quiet

if ($LASTEXITCODE -eq 0) {
    Write-Host "白名单更新成功,已添加IP:$currentPublicIp"
} else {
    Write-Host "白名单更新失败,请检查权限和实例ID配置"
    exit 1
}

定时执行配置

可以通过Windows任务计划程序配置定时触发:

  • 触发条件可设置为「系统启动时」、「网络连接变更时」或者每天固定时间执行
  • 操作设置为「启动程序」,程序/脚本选powershell.exe,参数填-ExecutionPolicy Bypass -File "你保存脚本的完整路径.ps1"

注意事项

  • 首次使用前请先手动执行脚本测试,对比执行前后的白名单列表(可执行gcloud sql instances describe $INSTANCE_ID --format="value(settings.ipConfiguration.authorizedNetworks.value)"查看现有列表),确认原有IP未被覆盖
  • 如果需要保留白名单IP的备注信息,可调整gcloud describe的输出格式同时获取备注字段,构造包含name和value的结构体传入patch命令,无备注需求的场景可直接使用当前脚本
  • 建议不要设置低于5分钟的执行频率,避免触发GCP API限流

内容的提问来源于stack exchange,提问作者BOB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 02:24:03