未在Cloud SQL授权网络配置外部IP仍可连接?
为什么删除Cloud SQL授权网络后还能连接?
这事儿我之前帮朋友排查过,给你拆解几个最可能的原因:
gcloud sql connect根本不需要依赖授权网络
这个命令是通过Google Cloud SDK建立的加密隧道来连接的,它认的是你本地gcloud账号的权限(比如有没有cloudsql.instances.connect这个权限),和实例的授权白名单完全没关系。哪怕授权网络是空的,只要你的账号有权限访问这个实例,就能用这个命令连上。已经建立的
mysql长连接还没断开
MySQL默认用的是长连接模式——你之前通过授权IP成功连上后,这个连接不会因为你删了白名单就立刻断掉,会一直保持到连接超时(Cloud SQL默认超时大概8小时)或者你主动退出会话。你可以试试先断开当前的mysql终端(输入quit回车),然后重新用mysql命令连接,这时候应该就会被拒绝了。可能存在私有IP/VPC的访问路径
如果你给Cloud SQL实例开了私有IP,而且你的Mac通过VPN、Cloud Interconnect这类方式接入了对应的VPC网络,那哪怕没有授权外部IP,也能通过私有IP访问实例。可以去实例设置里看看有没有启用私有IP,再确认下本地网络有没有和VPC打通的情况。
小建议:要是想彻底封死外部IP的访问,除了清空授权网络,还可以直接禁用实例的公网IP(在实例配置里把“公网IP”选项关掉),这样就只能通过私有IP或者gcloud sql connect这类内部方式访问了。
内容的提问来源于stack exchange,提问作者Vibhor Jain
相关产品推荐
相关产品推荐

