使用 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. 安裝 Git,讓 Cloud Code 執行 Git 作業,例如複製範例。
  4. 如果尚未安裝 Cloud Code 外掛程式,請先安裝。

建立 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」

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