【GCP教學】打造 CloudSQL 安全可靠的連線 — 使用 Private Service Connect (PSC)

企業常見痛點

  • 難以精確控制私有 IP 配置,確保資料不會暴露
  • 存取設定複雜
  • 網路安全管理困難

PSA (Private Service Access) vs PSC (Private Service Connect)

PSA 與 PSC 技術考量面向比較
icon/enlarge

Private Service Connect 提供您私有網路環境,避免公網暴露,同時整合 GCP (Google Cloud Platform,現稱 Google Cloud) 原生的安全機制,支援細緻的專案權限控制,是一種更安全的連線方式,也能更簡單的管理和更靈活的部署。特別適合需要跨專案資料庫存取、重視網路安全、追求精確網路控制的的組織。

以下內容包含相關概念說明和實作步驟指南

概念說明

  • 步驟示意圖
icon/enlarge
  • Cloud SQL 設定 Private Service Connect (PSC) 的方法有兩種: 一種是自動建立,一種是手動設定。因為自動建立的方式還在 Preview,因此,以下介紹手動設定的方法:
    • 如上圖,專案 A 配置 Client 端應用程式和 Cloud SQL。
    • 建立 Cloud SQL 並啟動 PSC,當 Cloud SQL 啟動 PSC 功能的時候,就會自動產生一個 Service Attachment (如圖步驟1)。
    • 手動建立 Endpoint 並指定一個 Cloud SQL 專用的私有 IP。
    • 設定 Forwarding Rules 將 Endpoint 和 Service Attachment 建立連結。
  • 注意事項
    • 部署者須擁有以下權限
      • compute.networkAdmin
      • dns.admin
      • cloudsql.admin
      • cloudsql.instanceUser
  • 和 Private Service Access 比較:
    • Private Service Access 只能指定一個私有IP網段,但是 Private Service Connect 可以指定一個特定的私有 IP。
  • PSC 優缺點分析
    • 優點
      • 可以幫 Cloud SQL 指定特定私有 IP。
      • 可以做跨不同專案和跨不同 VPC Network 的存取。
    • 缺點
      • 最多支援 20 個 Endpoint (參見常見問題)。

手動設定步驟

  • 建立有啟動 Private Service Connect 的 Cloud SQL Instance
icon/enlarge
    • 啟動 PSC 的參數
      • --enable-private-service-connect 
        • 啟動 PSC 功能
      • --allowed-psc-projects=ALLOWED_PROJECTS
        • 允許讀取這個 PSC 的專案白名單
        • A comma-separated list of allowed project IDs or numbers from where Private Service Connect endpoints can connect to Cloud SQL instances.
  • 取得 Cloud SQL 產生的 Service Attachment
    • Service Attachment 就是畫面顯示的 pscServiceAttachmentLink。
icon/enlarge
icon/enlarge
  • 建立一個私有 IP 的 Endpoint
    • --addresses=INTERNAL_IP_ADDRESS設定的私有IP
icon/enlarge
  • 建立 Forwarding Rules,連接 Cloud SQL 和 Endpoint
    • --target-service-attachment=SERVICE_ATTACHMENT_URI 就是剛剛Cloud SQL 產生的 Service Attachment
icon/enlarge

驗證方式

  • 建立 Client 端的 VM 來測試 Cloud SQL 連線是否成功
    • --source-instance=SOURCE_INSTANCE Client 端的 VM
    • --destination-network=DESTINATION_NETWORK Cloud SQL 網路
icon/enlarge

常見問題

  • 如果 Cloud SQL 原本沒有啟動 PSC,是否還可以建立 PSC?
    • 可以的,參見以下指令,使用 Patch 的方式來更新設定。
icon/enlarge
  • 假設 Client 端應用程式和 Cloud SQL 分別配置在不同專案時,一個 Cloud SQL 最多支援幾個專案設定?
    • 參考以下架構,每個Client端專案配置一個Endpoint,最多一個 Cloud SQL 可以支援 20 個 Endpoint,因此一個 Cloud SQL 可支援 20 個專案設定。
icon/enlarge
  • Cloud SQL 是否可以同時支援 Private Service Access 和 Private Service Connect?
    • 可以,但這個功能還在 Pre-GA。
  • Cloud SQL 如何關閉 PSC 功能?
    • 參見以下指令。
icon/enlarge

簡易部屬程式

icon/enlarge
訂閱 CloudMile 電子報

所有 CloudMile 最新消息、產品動態、活動資訊和特別優惠,立即掌握。