检查点
Create a Cloud Storage bucket.
/ 25
Create a Keyring and Crypto key.
/ 25
Encrypt Your Data with the Cloud KMS key and upload it on the storage bucket.
/ 25
Encrypt multiple files using KMS API and upload to cloud storage.
/ 25
開始使用 Cloud KMS
GSP079
總覽
在本實驗室中,您會瞭解如何使用一些 Google Cloud 安全性以及 Privacy API 的進階功能,包括:
- 設定安全的 Cloud Storage bucket
- 使用金鑰管理服務控管金鑰和已加密資料
- 查看 Cloud Storage 稽核記錄
您要使用 Enron Corpus 的節略版資料、加密資料,並將其載入 Cloud Storage。
課程內容
- 如何使用 Cloud Key Management Service (KMS) 加密資料及管理加密金鑰。
設定和需求
點選「Start Lab」按鈕前的須知事項
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
- 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
如何開始研究室及登入 Google Cloud 控制台
-
按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:
- 「Open Google Cloud console」按鈕
- 剩餘時間
- 必須在這個研究室中使用的暫時憑證
- 完成這個實驗室所需的其他資訊 (如有)
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」。
接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。 -
如有必要,請將下方的 Username 貼到「登入」對話方塊。
{{{user_0.username | "Username"}}} 您也可以在「Lab Details」窗格找到 Username。
-
點選「下一步」。
-
複製下方的 Password,並貼到「歡迎使用」對話方塊。
{{{user_0.password | "Password"}}} 您也可以在「Lab Details」窗格找到 Password。
-
點選「下一步」。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。 -
按過後續的所有頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Google Cloud 控制台稍後會在這個分頁開啟。
啟動 Cloud Shell
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
- 點按 Google Cloud 控制台上方的「啟用 Cloud Shell」圖示 。
連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
- (選用) 您可以執行下列指令來列出使用中的帳戶:
-
點按「授權」。
-
輸出畫面應如下所示:
輸出內容:
- (選用) 您可以使用下列指令來列出專案 ID:
輸出內容:
輸出內容範例:
gcloud
的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。
工作 1:建立 Cloud Storage bucket
為了在本實驗室中儲存資料,您需要自行建立 Cloud Storage bucket。
- 為您的 Cloud Storage bucket 命名,例如
-enron_corpus。如想進一步瞭解如何為 bucket 命名,請參閱 Cloud Storage bucket 的命名規範。在 Cloud Shell 中執行下列指令,將變數設為您的 bucket 名稱:
- 接著執行下列指令來建立 bucket:
執行下列指令也可確認 gsutil
指令列用戶端是否妥善設定、驗證機制是否正常運作,以及您是否具備寫入權限,可存取作業中的雲端專案。
- bucket 建立完成後,請繼續下一個步驟,下載 Enron Corpus。
點選「Check my progress」確認目標已達成。
工作 2:查看資料
Enron Corpus 是有超過 600,000 封電子郵件的大型資料庫,由 Enron Corporation 的 158 位員工打造而成。這份資料已複製到 Cloud Storage bucket gs://enron_emails/
。
- 執行下列指令,將其中一份來源檔案下載到本機,以便查看檔案內容:
- 現在
tail
已下載檔案,確認是否含有電子郵件文字內容:
您應該會收到下列輸出內容:
結果應該會顯示明文電子郵件檔案的內容。您要尋找的檔案有兩種:明文電子郵件檔案與圖片檔。如果您有興趣,也可以嘗試使用相同機制查看其他檔案的內容。
工作 3:啟用 Cloud KMS
Cloud KMS 是 Google Cloud 的加密編譯金鑰管理服務。您需要先在專案中啟用 KMS 才能使用這項服務。在本實驗室中,您佈建的 KMS 應該已啟用。您可以使用其中一項 gcloud
CLI 指令,確認 KMS 是否啟用。
- 在 Cloud Shell 工作階段中執行下列指令:
您應該不會收到任何輸出內容。現在 Cloud KMS 已在您的專案中啟用!
工作 4:建立金鑰環和 Cryptokey
為了加密資料,您必須建立金鑰環和 CryptoKey。金鑰環很適合用來分組金鑰。分組方式可以是環境 (例如 測試、測試中和生產製造),或其他分組依據。本實驗室將金鑰環稱為 test
,CryptoKey 則稱為 qwiklab
。
- 在 Cloud Shell 中執行下列指令,設定環境變數:
- 執行
gcloud
指令來建立金鑰環。本實驗室會使用「全域」位置,但您也可以設為特定區域:
- 接下來使用新的金鑰環,建立
qwiklab
CryptoKey:
您應該不會看到任何輸出內容。就這樣,您已成功建立金鑰環 和 CryptoKey!
- 在控制台中,依序前往「導覽選單」>「安全性」>「金鑰管理」,開啟金鑰管理服務。
您可以在金鑰管理服務的網頁版使用者介面中,查看及管理 CryptoKey 和金鑰環。之後您管理權限時,會用到這個使用者介面。
點選「Check my progress」確認目標已達成。
工作 5:加密您的資料
接著,嘗試加密一些資料!
- 執行下列指令,使用您先前查看的電子郵件內容,並透過
base64
技術將其編碼:
使用加密端點,您就可以將想加密的 Base64 編碼文字傳送至指定金鑰。
- 執行以下指令:
encrypt
動作都會傳回不同的結果,即便使用相同的文字內容和金鑰也一樣。
回應會是 JSON 酬載,包含 ciphertext
屬性的加密文字內容。
- 您的檔案已加密,接著可以儲存檔案,並將其上傳至 Cloud Storage bucket。如要從 JSON 回應擷取加密文字內容,並將其儲存至檔案,請使用指令列公用程式 jq。先前呼叫的回應可以傳輸至 jq,能將
ciphertext
屬性剖析至1.encrypted
檔案。執行以下指令:
- 如要驗證已加密資料是否可解密,請呼叫
decrypt
端點,驗證解密後的文字內容是否與原先的電子郵件相符。已加密資料含有加密該資料的 CryptoKey 版本資訊,因此特定版本不會提供給解密端點。執行以下指令:
- 您已確認文字內容加密成功,接著要將加密檔案上傳至 Cloud Storage bucket。
點選「Check my progress」確認目標已達成。
工作 6:設定 IAM 權限
在 KMS 中有兩項要注意的主要權限。一項權限可讓使用者或服務帳戶管理 KMS 資源,另一項權限則可讓使用者或服務帳戶透過金鑰加密及解密資料。
管理金鑰的權限是 cloudkms.admin
,具備此權限的任何人都可以建立金鑰環,以及建立、修改、停用和刪除 CryptoKey。加密及解密權限是 cloudkms.cryptoKeyEncrypterDecrypter
,用於呼叫加密及解密 API 端點。
在這項練習中,您要將 IAM 權限指派給現有的授權使用者。
- 如要取得現有的授權使用者,請執行下列指令:
- 接著,將管理 KMS 資源的權限指派給該使用者。執行下列
gcloud
指令即可指派 IAM 權限,用於管理您剛才建立的金鑰環:
由於 CryptoKeys 隸屬於金鑰環,而金鑰環隸屬於專案,若使用者具備這個階層中的高層級特定角色或權限,就會繼承子資源的相同權限。舉例來說,如果某位使用者具備專案的「擁有者」角色,則也會成為該專案中所有金鑰環和 CryptoKey 的擁有者。同樣的,如果使用者獲派金鑰環的 cloudkms.admin
角色,也會擁有該金鑰環中 CryptoKey 的相關權限。
如果沒有 cloudkms.cryptoKeyEncrypterDecrypter
權限,授權使用者就無法使用金鑰加密/解密資料。
- 執行下列
gcloud
指令來指派 IAM 權限,透過您建立金鑰環中的 CryptoKey,加密及解密資料:
現在您可以在「金鑰服務」的「加密編譯金鑰」部分查看已指派的權限。
- 勾選金鑰環 (
test
) 名稱旁的方塊,然後點選右側資訊面板的「主體」。
系統會開啟選單,您可以針對剛才建立的金鑰環查看帳戶和權限。
工作 7:透過指令列備份資料
您已瞭解如何加密單一檔案,也具備相關權限,接著可以執行指令碼來備份目錄中的所有檔案。本示例會複製 allen-p 的所有郵件、加密郵件,並將其上傳至 Cloud Storage bucket。
- 首先,將 allen-p 所有的電子郵件複製到您現有的工作目錄:
- 接著複製下列指令碼並貼到 Cloud Shell,備份並加密 allen-p 目錄中的所有檔案,儲存至 Cloud Storage bucket:
這項指令碼會循環處理指定目錄中的所有檔案,使用 KMS API 加密檔案,並上傳至 Cloud Storage。
點選「Check my progress」確認目標已達成。
指令碼執行完畢後,您可以在控制台的左選單中點選「Storage」,查看已加密的檔案。
- 如要找出檔案,請依序前往「導覽選單」>「Cloud Storage」>「Bucket」>「YOUR_BUCKET」>「allen-p」>「收件匣」。畫面應如下所示:
工作 8:查看 Cloud 稽核記錄
Google Cloud 稽核記錄包含管理員活動與資料存取兩種記錄串流,兩者皆由 Google Cloud 服務產生,可協助您瞭解 Google Cloud 專案中相關人事時地物的問題。
- 如要查看 KMS 中資源的活動,請依序點選「導覽選單」>「Cloud 總覽」>「活動」分頁。您會前往 Cloud 活動使用者介面,接著點選「View Log Explorer」,選取「Cloud KMS 金鑰環」做為
Resource Type
,您應該會看到所有建立的金鑰環,以及對其所做的所有變更。
現在您已使用 KMS 加密資料,並將其上傳至 Cloud Storage!
課程內容
- 使用 IAM 管理 KMS 權限。
- 使用 KMS 加密資料。
- 使用 Cloud Storage 儲存已加密資料。
- 使用 Cloud 稽核記錄功能,查看所有 CryptoKeys 和金鑰環的活動。
工作 9:學以致用
進行測驗,測試您對 Cloud KMS 的瞭解程度。
恭喜!
您已瞭解如何使用 Cloud Key Management Service (KMS) 加密資料及管理加密金鑰。
後續行動/瞭解詳情
使用手冊上次更新日期:2024 年 4 月 15 日
實驗室上次測試日期:2023 年 8 月 31 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。