使用已獲授權的網路進行授權

本頁面說明如何使用授權網路設定,連線至使用 IP 位址的 Cloud SQL 執行個體。

設定授權網路

在下列情況下,用戶端應用程式的 IP 位址或位址範圍必須設為 authorized networks

  • 您的用戶端應用程式會直接透過 Cloud SQL 執行個體的公開 IP 位址連線。
  • 您的用戶端應用程式直接連線至 Cloud SQL 執行個體的私人 IP 位址,且用戶端的 IP 位址為非 RFC 1918 位址

IP 位址可以是單一端點,也可以是 CIDR 標記法中的範圍。

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL 執行個體」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中,選取「連結」
  4. 按一下 [Network] (網路) 分頁標籤。
  5. 選取 [公開 IP] 核取方塊。
  6. 按一下「新增網路」
  7. 在「名稱」欄位中,輸入新網路的名稱。
  8. 在「Network*」欄位中,輸入要允許連線的公開 IPv4 位址或位址範圍。

    位址範圍必須使用有效的 CIDR 標記法 (例如 10.10.10.0/24)。

  9. 按一下 [完成]
  10. 按一下 [儲存]

gcloud

設定授權網路會取代現有的授權網路清單。

gcloud sql instances patch INSTANCE_ID \
--authorized-networks=NETWORK_RANGE_1,NETWORK_RANGE_2...
    

Terraform

如要設定授權網路,請使用 Terraform 資源

resource "google_sql_database_instance" "default" {
  name             = "postgres-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
}

套用變更

如要在 Google Cloud 專案中套用 Terraform 設定,請完成下列各節中的步驟。

準備 Cloud Shell

  1. 啟動 Cloud Shell
  2. 設定要套用 Terraform 設定的預設 Google Cloud 專案。

    您只需為每個專案執行這個指令一次,而且可以在任何目錄中執行。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 設定檔中設定明確的值,系統就會覆寫環境變數。

準備目錄

每個 Terraform 設定檔都必須有自己的目錄 (也稱為根模組)。

  1. Cloud Shell 中建立目錄,並在該目錄中建立新檔案。檔案名稱必須包含 .tf 副檔名,例如 main.tf。在本教學課程中,檔案稱為 main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您正在參考教學課程,可以複製各個章節或步驟中的程式碼範例。

    將範例程式碼複製到新建立的 main.tf 中。

    您可以視需要從 GitHub 複製程式碼。如果 Terraform 程式碼片段是端對端解決方案的一部分,建議您採用這種做法。

  3. 查看並修改要套用至環境的範例參數。
  4. 儲存變更。
  5. 初始化 Terraform。這項操作只需對每個目錄執行一次。
    terraform init

    如要使用最新版的 Google 供應器,請視需要加入 -upgrade 選項:

    terraform init -upgrade

套用變更

  1. 檢查設定,並確認 Terraform 要建立或更新的資源是否符合您的預期:
    terraform plan

    視需要修正設定。

  2. 執行下列指令,並在提示中輸入 yes,即可套用 Terraform 設定:
    terraform apply

    等待 Terraform 顯示「Apply complete!」(套用完成) 訊息。

  3. 開啟 Google Cloud 專案即可查看結果。在 Google Cloud 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。

刪除變更

如要刪除變更,請按照下列步驟操作:

  1. 如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false
    deletion_protection =  "false"
  2. 執行下列指令,並在提示中輸入 yes,即可套用更新的 Terraform 設定:
    terraform apply
  1. 如要移除先前透過 Terraform 設定套用的資源,請執行下列指令,並在提示中輸入 yes

    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 的授權網路

後續步驟