本頁面說明如何使用授權網路設定,連線至使用 IP 位址的 Cloud SQL 執行個體。
設定授權網路
在下列情況下,用戶端應用程式的 IP 位址或位址範圍必須設為 authorized networks:
- 用戶端應用程式直接連線至 Cloud SQL 執行個體的公開 IP 位址。
- 用戶端應用程式直接連至 Cloud SQL 執行個體的私人 IP 位址,且用戶端的 IP 位址並非 RFC 1918 位址
IP 位址可以是單一端點,也可以是以 CIDR 標記法指定的範圍。
控制台
-
前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。
- 點選執行個體名稱,開啟執行個體的「總覽」頁面。
- 在 SQL 導覽選單中,選取「連線」。
- 按一下 [網路] 分頁標籤。
- 選取 [公開 IP] 核取方塊。
- 在「授權網路」部分,展開「新增 IP 範圍」。
- 在「Name」(名稱) 欄位中,輸入新 IP 範圍的名稱。
- 在「IP range」(IP 範圍) 欄位中,輸入要允許連線的公開 IPv4 位址或位址範圍。
或者,您也可以點選「使用我的 IP」,讓 Cloud SQL 填入您用來存取 Google Cloud的用戶端機器 IPv4 位址。
使用 IPv6 位址的用戶端無法使用「使用我的 IP」選項。位址範圍必須使用有效的 CIDR 標記法 (例如 10.10.10.0/24)。
- 按一下「完成」。
- 按一下「儲存」。
gcloud
設定授權網路會取代現有的授權網路清單。
gcloud sql instances patch INSTANCE_ID \ --authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
Terraform
如要設定授權網路,請使用 Terraform 資源。
套用變更
如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節的步驟。
準備 Cloud Shell
- 啟動 Cloud Shell。
-
設定要套用 Terraform 設定的預設 Google Cloud 專案。
這項指令在每個專案中只需執行一次,且可在任何目錄中執行。
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
如果您在 Terraform 設定檔中設定明確的值,環境變數就會遭到覆寫。
準備目錄
每個 Terraform 設定檔都必須有自己的目錄 (也稱為「根模組」)。
-
在 Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須有
.tf副檔名,例如main.tf。在本教學課程中,這個檔案稱為main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
如果您正在按照教學課程操作,可以複製每個章節或步驟中的程式碼範例。
將程式碼範例複製到新建立的
main.tf。您也可以從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。
- 請查看並修改範例參數,以便套用至您的環境。
- 儲存變更。
-
初始化 Terraform。每個目錄只需執行一次這項操作。
terraform init
如要使用最新版 Google 供應商,請視需要加入
-upgrade選項:terraform init -upgrade
套用變更
-
查看設定,確認 Terraform 要建立或更新的資源符合預期:
terraform plan
視需要修正設定。
-
執行下列指令,並在提示中輸入
yes,套用 Terraform 設定:terraform apply
等待 Terraform 顯示「Apply complete!」訊息。
- 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台的 UI 中前往資源,確認 Terraform 已建立或更新資源。
刪除變更
如要刪除變更,請按照下列步驟操作:
- 如要停用防刪除功能,請在 Terraform 設定檔中將
deletion_protection引數設為false。deletion_protection = "false"
- 執行下列指令,並在提示中輸入
yes,套用更新後的 Terraform 設定:terraform apply
-
執行下列指令,並在提示中輸入
yes,移除先前使用 Terraform 設定套用的資源:terraform destroy
REST v1
設定授權網路會取代現有的授權網路清單。
使用任何要求資料之前,請先修改下列項目的值:
- project-id:專案 ID
- instance-id:執行個體 ID
- network_range_1 授權的 IP 位址或範圍
- network_range_2 另一個授權 IP 位址或範圍
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id
JSON 要求主體:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1"}, {"value": "network_range_2"}]
}
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
REST v1beta4
設定授權網路會取代現有的授權網路清單。
使用任何要求資料之前,請先修改下列項目的值:
- project-id:專案 ID
- instance-id:執行個體 ID
- network_range_1 授權的 IP 位址或範圍
- network_range_2 另一個授權 IP 位址或範圍
HTTP 方法和網址:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
JSON 要求主體:
{
"settings":
{
"ipConfiguration":
{
"authorizedNetworks":
[{"value": "network_range_1"}, {"value": "network_range_2"}]
}
}
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
限制
- 部分 IP 位址範圍無法新增為授權網路。
位址範圍 附註 10.0.0.0/8 RFC 1918 位址範圍。Cloud SQL 會自動將這些位址隱含納入授權網路 172.16.0.0/12 RFC 1918 位址範圍。Cloud SQL 會自動將這些位址隱含納入授權網路 192.168.0.0/16 RFC 1918 位址範圍。Cloud SQL 會自動將這些位址隱含納入授權網路 - Cloud SQL 不支援 IPv6 授權網路。如果用戶端機器使用 IPv6 通訊協定,則 Google Cloud 控制台的「Networking」(網路) 分頁中不會顯示「Use my IP」(使用我的 IP) 選用按鈕。
- 如果您使用 VPN 或 Proxy 伺服器,「Use my IP」(使用我的 IP) 選項不會顯示用戶端機器的實際 IP 位址。這是正常現象。