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

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

設定授權網路

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

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

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

控制台

  1. 前往 Trusted Cloud 控制台的「Cloud SQL Instances」頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請按一下執行個體名稱。
  3. 在 SQL 導覽選單中,選取「連線」
  4. 按一下 [網路] 分頁標籤。
  5. 選取 [公開 IP] 核取方塊。
  6. 在「Authorized networks」(已授權的網路) 區段中,展開「New IP range」(新的 IP 範圍)
  7. 在「Name」(名稱) 欄位中,輸入「New IP range」(新的 IP 範圍) 的名稱。
  8. 在「IP 範圍」欄位中,輸入要允許連線的公開 IPv4 位址或位址範圍。
    或者,按一下「使用我的 IP」,讓 Cloud SQL 填入您存取 Trusted Cloud的用戶端電腦 IPv4 位址。
    使用 IPv6 位址的用戶端無法使用「使用我的 IP」選項。

    位址範圍必須使用有效的 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" "instance" {
  name             = "mysql-instance-with-authorized-network"
  region           = "us-central1"
  database_version = "MYSQL_8_0"
  settings {
    tier = "db-f1-micro"
    ip_configuration {
      authorized_networks {
        name            = "Network Name"
        value           = "192.0.2.0/24"
        expiration_time = "3021-11-15T16:19:00.094Z"
      }
    }
  }
  # set `deletion_protection` to true, will ensure that one cannot accidentally delete this instance by
  # use of Terraform whereas `deletion_protection_enabled` flag protects this instance at the GCP level.
  deletion_protection = false
}

套用變更

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

準備 Cloud Shell

  1. 啟動 Cloud Shell
  2. 設定要套用 Terraform 設定的預設 Trusted 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. 開啟 Trusted Cloud 專案即可查看結果。在 Trusted Cloud 控制台中,前往 UI 中的資源,確認 Terraform 已建立或更新這些資源。

刪除變更

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

  1. 如要停用防刪除功能,請在 Terraform 設定檔中將 deletion_protection 引數設為 false
    deletion_protection =  "false"
  2. 執行下列指令,並在提示中輸入 yes,套用更新的 Terraform 設定:
    terraform apply
  1. 執行下列指令,並在提示中輸入 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 通訊協定,則 Trusted Cloud 控制台的「網路」分頁中不會顯示選用的「使用我的 IP」按鈕。
  • 如果您使用 VPN 或 Proxy 伺服器,「使用我的 IP」選項不會顯示用戶端機器的實際 IP 位址。這是正常的。

後續步驟