總覽
正確管理機密資訊是建立安全開發工作流程的重要環節。如果是 Cloud SQL,建議您將機密資訊儲存為在 Secret Manager 中建立的密鑰。密鑰包括 API 金鑰、密碼、機密資訊,或您可能用於存取機密系統的憑證。
Secret Manager 既便利又能提升安全性。您也可以為密鑰套用版本管理,並與團隊成員共用。如要進一步瞭解如何與團隊共用密鑰,請參閱「存取控管 (IAM)」。
本頁面說明使用 Secret Manager 搭配 Cloud SQL 管理密鑰的四種用途:
- 儲存使用者名稱和密碼
- 連線至 Cloud SQL 執行個體
- 管理 SSL/TLS 憑證
- 協調災難復原情境
事前準備
使用 Secret Manager 處理 Cloud SQL 中的密鑰前,請先完成下列事項:
- 熟悉 Cloud SQL 和 Secret Manager。
- 瞭解如何從本機電腦連線至第一個 Cloud SQL 執行個體,開始使用 Cloud SQL。
使用者名稱及密碼
使用 Secret Manager 將 Cloud SQL 使用者帳戶的使用者名稱和密碼儲存為密鑰,是管理這類私密資訊的安全可靠方式。
首先,您必須在 Cloud SQL 中建立使用者。建立這位使用者時,您必須提供使用者名稱和密碼。如要進一步瞭解如何在 Cloud SQL 建立使用者,請參閱「使用內建驗證機制管理使用者」。
使用者建立完成後,請在 Secret Manager 建立密鑰,用於儲存使用者名稱和密碼。確保這類機密資訊不會遺失。如要進一步瞭解如何在 Secret Manager 中建立及存取 Secret,請參閱「建立及存取 Secret」。
Cloud SQL 執行個體
連線至 Cloud SQL 執行個體時,您可以使用 Secret Manager 管理密鑰,建立安全的開發工作流程。
首先,從本機電腦連線至 Cloud SQL 執行個體。執行個體開始運作後,請使用環境變數連線。與變數相關聯的部分值較為機密,例如執行個體連線名稱。您可以為每個值在 Secret Manager 中建立密鑰,用來儲存及管理這項資訊。如要進一步瞭解如何使用環境變數連線至 Cloud SQL 執行個體,請參閱「設定及執行範例應用程式」。
您可以直接從 Secret Manager 擷取儲存為密鑰的執行個體連線名稱。這項功能提供彈性的工作流程,可協助團隊在多個應用程式之間共用這類機密資訊,並從集中位置管理。如要進一步瞭解如何從 Secret Manager 擷取 Secret,請參閱「使用 Secret Manager 建立 Secret」。
應用程式需要密鑰中的資訊才能啟動。這項資訊包括與環境變數相關聯的值,這些變數用於連線至應用程式。應用程式會在啟動時存取 Secret,然後使用 Secret 設定與 Cloud SQL 的連線。如果在 Secret Manager 更新任何相關 Secret,可能需要重新啟動應用程式。
SSL/TLS 憑證
如果您使用公開或私人 IP 位址連線至 Cloud SQL 執行個體,應使用傳輸層安全標準 (TLS) 憑證,確保資料在傳輸時安全無虞。每個 TLS 憑證都包含公用金鑰憑證和私密金鑰。如要進一步瞭解如何設定 TLS 憑證,請參閱「設定 SSL/TLS 憑證」。
您可以將 TLS 憑證、公用金鑰憑證和私密金鑰儲存為密鑰,妥善保管並與團隊共用。如要進一步瞭解如何建立及存取密鑰,請參閱「使用 Secret Manager 建立密鑰」。如要進一步瞭解如何共用密鑰,請參閱「存取控管 (IAM)」。
災難復原情境
如果 Cloud SQL 中的主要執行個體故障,您可以將唯讀副本升級為主要執行個體。唯讀副本成為主要執行個體後,您必須更新執行個體連線名稱,反映這項升級。如果執行個體連線名稱儲存在密鑰中,則必須以新的主要執行個體名稱更新密鑰。詳情請參閱「編輯密鑰」。
如要使用 Secret Manager 進行容錯移轉,其中一種方法是將主要執行個體的名稱儲存在密鑰中,然後設定 Cloud SQL 連接器,在密鑰更新時一併更新。
您可以搭配 Cloud SQL Auth Proxy 使用下列 bash 包裝函式指令碼,偵測執行個體連線名稱的值何時更新,然後使用新值重新啟動 Proxy:
如要進一步瞭解如何建立及存取包含主要副本執行個體連線名稱的 Secret,請參閱「使用 Secret Manager 建立 Secret」。如要進一步瞭解如何使用 Cloud SQL Auth Proxy,請參閱「使用 Cloud SQL Auth Proxy 連線至 Cloud SQL」。
後續步驟
- 您可以將 Secret Manager 與其他 Google Cloud產品 (例如 Cloud Run) 整合。
- 如要進一步瞭解如何在容器環境中保護 Secret,請參閱「使用 Secret」。
- 如需與 Secret Manager 整合的其他 Google Cloud 產品清單,請參閱「搭配使用 Secret Manager 與其他產品」。
- 如要瞭解如何將 Secret Manager 與開發環境整合,請參閱「所有 Secret Manager 程式碼範例」頁面中的各種範例。