如何将ip地址添加到云sql acsess列表中,提供对Google Cloud SQL的访问?

Sun*_*arg 1 google-cloud-sql

我试过了

gcloud sql instances patch YOUR_INSTANCE_NAME --authorized-networks my-ip
Run Code Online (Sandbox Code Playgroud)

但是此命令会从访问控制列表中删除所有IP地址,并仅添加我的IP地址.如何添加我的IP地址以保留以前的IP地址?

Nic*_*las 5

正如James所说,可以使用Developers Console轻松完成.使用命令行是可行的,尽管有点棘手.通过"云SDK"搜索显示,似乎无法简单地检索授权网络.

但是,您可以使用describe将返回Cloud SQL实例的所有设置的命令.从这里开始,可以使用一些相当脆弱的命令系列来获得您正在寻找的东西.开始:

首先,获取完整的Cloud SQL实例描述:

gcloud sql instances describe <instance-name>
Run Code Online (Sandbox Code Playgroud)

其次,管道结果通过grep检索后面出现的授权网络的IP地址-.如果您愿意,可以在其他地方找到其他IP地址正则表达式.

| grep -E "\-\s[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+"
Run Code Online (Sandbox Code Playgroud)

第三,管道结果通过cut分开每一行-并保持后一半.

| cut -d '-' -f 2
Run Code Online (Sandbox Code Playgroud)

第四,管道结果cut再次通过分割空白空间上的每一行来移除第一个空白区域

| cut -d ' ' -f 2
Run Code Online (Sandbox Code Playgroud)

然后,管道结果通过tr逗号替换新行

| tr '\n' ','
Run Code Online (Sandbox Code Playgroud)

最后,管道结果通过head删除尾随逗号

| head -c -1
Run Code Online (Sandbox Code Playgroud)

您生成的命令应该是这样的:

gcloud sql instances describe <instance-name> | grep -E "\-\s[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+" | cut -d '-' -f 2 | cut -d ' ' -f 2 | tr '\n' ',' | head -c -1
Run Code Online (Sandbox Code Playgroud)

这是一个非常脆弱的解决方法.此外,它公开证书密钥,上面的特定正则表达式与IPv6地址不匹配或使用CDR表示法匹配子网.这个简单的操作肯定保证功能请求.我强烈建议在Google App Engine公共问题跟踪器上提交一个.