使用 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.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
  3. 安裝 Git,讓 Cloud Code 執行 Git 作業,例如複製範例。
  4. 如果尚未安裝 Cloud Code 外掛程式,請先安裝。

建立 Cloud Run 服務

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

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

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

    狀態列中的有效專案名稱

  2. 在隨即顯示的「快速挑選」選單中,依序選取「New Application」(新增應用程式) 和「Cloud Run Application」(Cloud Run 應用程式)

  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「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」(透過 Cloud Run 模擬器執行/偵錯) 分頁中,按一下「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 - 建立密鑰) 分頁開啟後,按一下file_copy「Copy」(複製) 來複製 ID。
  5. 如要新增新版本 ID,請在 app.py 中顯示為訊息變數的目前版本改成您複製的新版本 ID。

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

查看及管理密鑰

停用密鑰版本

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

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

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

刪除密鑰版本

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

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

正在清除所用資源

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

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

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

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

    前往「Projects」(專案) 頁面

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

  3. 輸入專案 ID 確認,然後點選「Shut down」(關閉)

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