Cloud SQL剛推出時,最讓人詬病的就是,它只能用外部IP讓人存取。
這句話感覺好像沒什麼,畢章在雲端嘛,還是要用外部IP啊!
安全性部分有改善,可以限定存取的IP位址或範圍:
但重點是,連在GCP上的服務,要存取Cloud SQL都要透過外部!!
也就是說,我在GCP上開一台VM,要去Cloud SQL,我不能從GCP的內網去連Cloud SQL,要走外部IP,這樣就有外部的流量費用,而且連線沒有效率。
後來Cloud SQL進步了,可以允許內網過去了,如下圖:
Private IP指的是在GCP上的VM (Compute Engine)在VPC網路上的IP,也就是GCP的內網IP。
Default不是指什麼預設值之類的,它是每一個GCP專案建立時,系統先給你一個內網(VPC網路),這個網路的名字叫做”Default”。
PS.一個GCP專案可以開5個VPC網路,它可以切割不同的subnet橫跨全球各Data Center (Region)
只要開放Private IP,VM就能從內網去連。
但如果從GCP以外的地方連,除了限定IP之外,怎麼做才更安全呢?
這時就就要帶key了!
在Cloud SQL編輯頁面,設定只允許使用SSL連線:
設定完要建立Certificate,並下載到本機端。
另外Client端的Certificate也要建立:
建完後,它還讓你可以一口氣下載3個key,還附上連線指令給你,多貼心啊!!
所以你本機會有這三個檔案:
就可以用這個指令去連Cloud SQL
mysql -uroot -p -h 1.2.3.4 --ssl-ca=server-ca.pem --ssl-cert=client-cert.pem --ssl-key=client-key.pem
這是連線成功的畫面:
這就是安全連線Cloud SQL的方法,限定IP又強迫SSL連線。