使用 Cloud Code 建立及管理密鑰

瞭解如何使用 Cloud Code 的 Secret Manager 的整合功能來建立及管理密鑰。


如要直接在 Cloud Shell 編輯器中按照逐步指南操作,請按一下「Guide me」

逐步引導


事前準備

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Select or create a Google Cloud project.

  3. 建立 Cloud Run 服務

    使用 Cloud Shell 編輯器做為建立 Cloud Run 服務和密鑰的環境。這個編輯器已預先載入雲端開發作業所需的工具。

    如要建構服務,請按照下列指示操作:

    1. 在 Cloud Code 狀態列中,按一下目前專案名稱。

      狀態列中的有效專案名稱

    2. 在隨即顯示的「Quick Pick」選單中,依序選取「New Application」和「Cloud Run Application」

    3. 在 Cloud Run 範例清單中,選取「Python (Flask): Cloud Run」(Python (Flask):Cloud Run)

    4. 選取範例要使用的資料夾,然後按一下「Create New Application」(建立新應用程式)

    Cloud Shell 編輯器在新的工作區中載入服務之後,請在「Explorer」檢視畫面中查看服務檔案。

    建立密鑰

    Secret Manager 可讓您以二進位 blob 或文字字串的形式安全地儲存、管理及存取密鑰。此外,這項工具還會管理您的密鑰,也就是說,您不必處理虛擬機器或運作中的服務。

    如要使用 Cloud Code 的 Secret Manager 整合功能建立密鑰,請按照下列步驟操作:

    1. 按一下「Secret Manager」,稍待片刻讓系統載入。
    2. 如果系統提示您授權 Cloud Shell 發出 Google Cloud API 呼叫,請按一下「Authorize」(授權)
    3. 按一下「新增」「建立機密金鑰」。
    4. 如果出現提示訊息,請從下拉式選取器中選取您的 Google Cloud 專案。
    5. 如果出現提示訊息,請啟用 Secret Manager API。
    6. 在畫面上顯示的「Secret Manager - Create Secret」(Secret Manager - 建立密鑰) 分頁,於「Name」(名稱)欄位中輸入下列內容:

      my-secret
      
    7. 在「Secret Value」(密鑰值) 欄位中輸入以下內容:

      Hello secret!
      
    8. 按一下「Create Secret」(建立密鑰),系統就會顯示密鑰建立成功的訊息。

    將密鑰新增至程式碼

    密鑰適用於儲存設定資訊,例如資料庫密碼、API 金鑰或應用程式在執行階段所需的 TLS 憑證。

    如要將密鑰新增至程式碼,請按照下列步驟操作:

    1. 開啟「Cloud API」檢視畫面,然後選取「Secret Manager API」

      系統便會開啟標題為「Secret Manager API」的 Google Cloud API 詳細資料分頁。

    2. 在「Install Client Library」專區中,依序點選「Python」分頁標籤和 play_arrow「Run in terminal」。系統便會安裝 google-cloud-secret-manager 用戶端程式庫。

    3. 開啟 requirements.txt,並在檔案底部新增以下這行內容:

      google-cloud-secret-manager==VERSION_NUMBER
      

      在上個步驟執行安裝作業後,版本號碼就會出現在控制台中。舉例來說,控制台可能會顯示:Successfully installed google-cloud-secret-manager-2.23.1

      系統會自動儲存您的變更。

    4. 如要取得最新的密鑰值,請開啟 app.py,然後複製以下函式並貼到 hello 函式後

      def access_secret_version(secret_version_id):
          """Return the value of a secret's version"""
          from google.cloud import secretmanager
      
          # Create the Secret Manager client.
          client = secretmanager.SecretManagerServiceClient()
      
          # Access the secret version.
          response = client.access_secret_version(name=secret_version_id)
      
          # Return the decoded payload.
          return response.payload.data.decode('UTF-8')
      
      
    5. 如要呼叫 access_secret_version 函式,請將訊息變數替換為以下內容:

      message = access_secret_version("<SECRET_VERSION_ID>")
      
    6. 如果「Secret Manager - Create Secret」(Secret Manager - 建立密鑰) 分頁還在開啟的狀態,請file_copy 複製 ID。

      如要隨時取得密鑰版本的 ID,請前往「Secret Manager」 > [SECRET_NAME] >「Versions」(版本),將滑鼠游標懸停在您的版本上,然後按一下 「Copy resource ID」(複製資源 ID)

    7. 如要新增版本 ID,請將預留位置 <SECRET_VERSION_ID> 改成您複製的版本 ID。

    透過 Cloud Run 模擬器執行

    如要測試新密鑰,請透過 Cloud Run 模擬器在本機上執行 Cloud Run 服務。

    1. 從狀態列啟動「Cloud Code」選單。
    2. 如要建構服務並將其部署至模擬器,請選取「Run on Cloud Run Emulator」(透過 Cloud Run 模擬器執行)
    3. 在隨即顯示的「Run/Debug on Cloud Run Emulator」分頁中,按一下「Run」
    4. 首次執行設定時,這項程序最多可能需要 5 分鐘才能完成。「Output」(輸出內容) 面板會顯示應用程式的建構和部署進度。

    5. 應用程式建構完成後,請按一下「Output」(輸出內容) 面板中顯示的 localhost 連結,即可啟動應用程式。您的秘密值會顯示在成功圖片下方。

    查看及建立新的密鑰版本

    Cloud Code 的「Secret Manager」檢視畫面不僅可讓您快速查看專案的密鑰,還提供管理這些密鑰的動作選項。

    查看特定密鑰版本的值

    1. 按一下「Secret Manager」檢視畫面。
    2. 點選密鑰,將其展開。
    3. 在「Versions」(版本) 資料夾中,找出您要查看值的編號版本,在該版本上按一下滑鼠右鍵,然後選取「Show Version Value」(顯示版本值)

    請注意,密鑰版本無法編輯。如要更新密鑰的值,您必須建立新的「版本」

    建立新的密鑰版本

    密鑰的值會儲存在密鑰版本中,而密鑰可以有多個版本。在密鑰有所變動的情況下,這項功能便可派上用場。密鑰可透過新版本更新,這表示您不必更新程式碼。

    1. 按一下「Secret Manager」檢視畫面。
    2. 在密鑰名稱上按一下滑鼠右鍵,然後選取「Create Secret Version」(建立密鑰版本)
    3. 在畫面上顯示的「Secret Manager - Create Secret」(Secret Manager - 建立密鑰) 分頁中輸入新的值,然後點選「Create Version」(建立版本)
    4. 「Secret Manager - Create Secret」(Secret Manager - 建立密鑰) 分頁開啟後,按一下「Copy」(複製) 來複製 ID。file_copy
    5. 如要新增新版本 ID,請在 app.py 中顯示為訊息變數的目前版本改成您複製的新版本 ID。

    如果希望程式碼一律使用最新版本,請將版本 ID 結尾的版本編號改成 latest

    查看及管理密鑰

    停用密鑰版本

    根據預設,密鑰版本建立後會啟用,這表示密鑰可以存取。密鑰停用後即無法存取,但您隨時可以恢復密鑰的存取權。

    如要停用密鑰版本,請按照下列步驟操作:

    1. 按一下 「Cloud Code」,然後展開「Secret Manager」部分。
    2. 點選密鑰,將其展開。
    3. 在「Versions」資料夾下方,在要停用的編號版本上按一下滑鼠右鍵。
    4. 選取「Disable Version」(停用版本)

    刪除密鑰版本

    密鑰版本刪除後即無法存取,而且這項操作無法復原。

    1. 按一下 「Cloud Code」,然後展開「Secret Manager」部分。
    2. 點選密鑰,將其展開。
    3. 在「Versions」資料夾下方,在要刪除的版本上按一下滑鼠右鍵。
    4. 選取「Destroy Version」

    正在清除所用資源

    如要只刪除您為本快速入門建立的叢集:

    1. 按一下 「Cloud Code」,然後展開「Kubernetes」部分。
    2. 將游標懸停在叢集名稱上,然後按一下「open_in_new」open_in_new
    3. 按一下「Delete」(刪除),然後點選「Delete」(刪除)

    如要刪除專案 (以及相關聯的資源,包括任何叢集),請按照下列步驟操作:

    1. 前往 Google Cloud 控制台的「Projects」(專案) 頁面:

      前往「Projects」(專案) 頁面

    2. 選取您為本快速入門導覽課程建立的專案,然後按一下「Delete」

    3. 輸入專案 ID 以確認,然後按一下「Shut down」

      接著,系統就會關閉專案並排定刪除時間。