正在加载…
未找到任何结果。

在 Google Cloud 控制台中运用您的技能

03

Google Cloud Storage and Containers for Azure Professionals

访问 700 多个实验和课程

Cloud Storage (Azure)

实验 1 小时 30 分钟 universal_currency_alt 5 积分 show_chart 入门级
info 此实验可能会提供 AI 工具来支持您学习。
访问 700 多个实验和课程

身為雲端架構師,您一定知道儲存空間是組織最重要的資源之一。組織內每天都會產生、修改和存取數千個檔案和文件。因此,您必須擬定有效的災難復原計畫,確實儲存備份並建立備援架構,包括下列項目:

  • 兼具安全性、擴充性和高可用性的物件層級儲存空間
  • 精細的存取控管機制
  • 版本管理功能
  • 生命週期管理功能
  • 直接同步處理 on-prem 和雲端目錄的機制

您必須具備儲存體帳戶,才能建立容器。如要建立容器,請前往儲存體帳戶頁面,在「資料儲存體」部分選取所需容器,然後為該容器設定必要的存取層級。如要建立儲存體帳戶,請選取所需的儲存體類型 (blob、資料表、磁碟、檔案和佇列) 和容器級別 (經常性、非經常性或封存)。此外,您也能在儲存體帳戶層級設定存取原則,輕鬆指定容器的權限。接著,您需要建立並設定生命週期管理政策,在指定天數後刪除儲存的資料。您將啟用版本管理功能,然後將 VM 目錄同步處理至 Azure 儲存體中的儲存體容器。若想提高 Azure 的安全性,可以使用 Azure Key Vault,以客戶自行管理的金鑰來加密資料。

最後,您必須在 Azure 建立新的資源群組,並將當中的一個角色指派給某個專案的使用者或群組。完成後,該使用者或群組就能存取新資源群組中的資源。

接下來,您將探索各種 Cloud Storage 功能,瞭解如何使用 Cloud 控制台和 gsutil 工具,安全地將資料存放在 Google Cloud。

總覽

Cloud Storage 是 Google Cloud 中的基本資源,也提供許多進階功能。在本實驗室中,您將運用許多在設計方面相當實用的 Cloud Storage 功能,並使用控制台和 gsutil 工具來探索 Cloud Storage。

目標

在本實驗室中,您將瞭解如何執行下列工作:

  • 建立和使用 bucket
  • 設定存取控管清單 (ACL) 來限制存取權
  • 使用自己的加密金鑰
  • 導入版本管控機制
  • 使用目錄同步功能

設定 Qwiklabs

每個實驗室都會提供新的 Google Cloud 專案和一組資源,讓您在時限內免費使用。

  1. 按一下「Start Lab」按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:

    • 「Open Google Cloud console」按鈕
    • 剩餘時間
    • 必須在這個研究室中使用的臨時憑證
    • 完成這個實驗室所需的其他資訊 (如有)
  2. 點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」

    接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。

    提示:您可以在不同的視窗中並排開啟分頁。

    注意:如果頁面中顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」
  3. 如有必要,請將下方的 Username 貼到「登入」對話方塊。

    {{{user_0.username | "Username"}}}

    您也可以在「Lab Details」窗格找到 Username

  4. 點選「下一步」

  5. 複製下方的 Password,並貼到「歡迎使用」對話方塊。

    {{{user_0.password | "Password"}}}

    您也可以在「Lab Details」窗格找到 Password

  6. 點選「下一步」

    重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。 注意:如果使用自己的 Google Cloud 帳戶來進行這個實驗室,可能會產生額外費用。
  7. 按過後續的所有頁面:

    • 接受條款及細則。
    • 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
    • 請勿申請免費試用。

Google Cloud 控制台稍後會在這個分頁開啟。

注意:如要查看列出 Google Cloud 產品和服務的選單,請點選左上角的「導覽選單」,或在「搜尋」欄位輸入服務或產品名稱。

工作 1:準備作業

在這項工作,您會先建立 Cloud Storage bucket,然後下載範例檔案,下一項工作會用到這個檔案。

建立 Cloud Storage bucket

  1. 前往 Google Cloud 控制台的「導覽選單」,依序點選「Cloud Storage」>「Bucket」
注意:請務必為 bucket 設定全域不重複的名稱。您可以在名稱中使用 PROJECT_ID_1 的一部分,確保名稱不會重複。舉例來說,如果 PROJECT_ID_1myproj-154920,bucket 名稱可以設定為 storecore154920
  1. 點選「建立」
  2. 指定下列屬性,其餘設定保持預設狀態:
屬性 值 (按照指示輸入值或選取選項)
名稱 輸入全域不重複的名稱
位置類型 區域
區域
強制禁止公開存取這個 bucket 取消勾選
存取控管 精細 (除了 bucket 層級權限,也會控管物件層級權限)
  1. 請記下 bucket 名稱,實驗室的後續步驟會用到這個名稱,屆時會稱為 [BUCKET_NAME_1]。
  2. 點選「建立」

點選「Check my progress」,確認目標已達成。 建立 Cloud Storage bucket

使用 CURL 下載範例檔案並複製兩份

  1. 在 Cloud 控制台中,按一下「啟用 Cloud Shell」圖示
  2. 如果出現提示訊息,請點選「繼續」
  3. 將 [BUCKET_NAME_1] 保存在環境變數中:
export BUCKET_NAME_1=<enter bucket name 1 here>
  1. 使用 echo 加以確認:
echo $BUCKET_NAME_1
  1. 執行下列指令來下載範例檔案 (這個範例檔案是公開的 Hadoop 說明文件 HTML 檔案):
curl \ https://hadoop.apache.org/docs/current/\ hadoop-project-dist/hadoop-common/\ ClusterSetup.html > setup.html
  1. 請執行下列指令來複製檔案:
cp setup.html setup2.html cp setup.html setup3.html

工作 2:存取控管清單 (ACL)

在這項工作中,您會設定 ACL,限制哪些對象可存取複製到 Cloud Storage bucket 的檔案。

將檔案複製到 bucket 並設定 ACL

  1. 執行下列指令,將第一個檔案複製到 bucket:
gcloud storage cp setup.html gs://$BUCKET_NAME_1/
  1. 接著請執行下列指令,取得指派給 setup.html 的預設存取清單:
gsutil acl get gs://$BUCKET_NAME_1/setup.html > acl.txt cat acl.txt
  1. 現在請執行下列指令,將存取清單設為私人並確認結果:
gsutil acl set private gs://$BUCKET_NAME_1/setup.html gsutil acl get gs://$BUCKET_NAME_1/setup.html > acl2.txt cat acl2.txt
  1. 請執行下列指令來更新存取清單,將檔案設為可公開讀取:
gsutil acl ch -u AllUsers:R gs://$BUCKET_NAME_1/setup.html gsutil acl get gs://$BUCKET_NAME_1/setup.html > acl3.txt cat acl3.txt

點選「Check my progress」,確認目標已達成。 將檔案設定為可公開讀取

在 Cloud 控制台檢視檔案

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 () >「Cloud Storage」>「Bucket」
  2. 點選「[BUCKET_NAME_1]」。
  3. 針對 setup.html 檔案,確認「公開存取權」具有可使用的「公開連結」

刪除本機檔案並從 Cloud Storage 複製還原

  1. 返回「Cloud Shell」。如有需要,請按一下「啟用 Cloud Shell」圖示
  2. 執行下列指令來刪除設定檔案:
rm setup.html
  1. 請執行下列指令,確認檔案已刪除:
ls
  1. 再來請執行下列指令,從 bucket 再次複製檔案:
gcloud storage cp gs://$BUCKET_NAME_1/setup.html setup.html

工作 3:客戶提供的加密金鑰 (CSEK)

在這項工作,您會產生一組 CSEK 金鑰,將儲存在 Cloud Storage bucket 的檔案加密。

產生 CSEK 金鑰

在接下來的步驟,您需要使用 AES-256 base-64 金鑰。

  1. 執行下列指令來建立金鑰:
python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'

結果 (這是輸出內容範例)

b'tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=\n'
  1. 從指令輸出內容複製產生的金鑰值,不要複製 b'\n'。金鑰格式應該是 tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=

修改 boto 檔案

加密控制項包含在 gsutil 設定檔中,檔案格式為 .boto

  1. 請執行下列指令,以便檢視並開啟 boto 檔案:
ls -al nano .boto

注意:如果 .boto 檔案是空的,請按下 Ctrl+X 鍵關閉 nano 編輯器,然後使用 gsutil config -n 指令來產生新的 .boto 檔案。接著,請使用上述指令,再次嘗試開啟檔案。

如果 .boto 檔案依然是空的,可能需要使用 gsutil version -l 指令找出檔案。
  1. 找出有「#encryption_key=」的一行程式碼
注意:nano 編輯器底部提供快速指令,方便您迅速瀏覽檔案。使用 Where Is 快速指令,即可迅速找到有「#encryption_key=」的一行。
  1. 移除 # 字元,將該行程式碼取消註解,然後把先前產生的金鑰貼到末端。

範例

變更前: # encryption_key= 變更後: encryption_key=tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  1. 依序按下 Ctrl+OEnter 鍵儲存 boto 檔案,然後按下 Ctrl+X 退出 nano 編輯器。

上傳其餘的設定檔案 (已加密),並在 Cloud 控制台加以確認

  1. 請執行下列指令,上傳其餘 setup.html 檔案:
gsutil cp setup2.html gs://$BUCKET_NAME_1/ gsutil cp setup3.html gs://$BUCKET_NAME_1/
  1. 返回 Cloud 控制台。
  2. 按一下「[BUCKET_NAME_1]」。setup2.html 和 setup3.html 檔案都會顯示已由客戶加密。

點選「Check my progress」,確認目標已達成。 客戶提供的加密金鑰 (CSEK)

刪除本機檔案、複製新檔案,並確認加密的檔案複製成功

  1. 在 Cloud Shell 執行下列指令,刪除本機檔案:
rm setup*
  1. 現在請執行下列指令,從 bucket 再次複製檔案:
gsutil cp gs://$BUCKET_NAME_1/setup* ./
  1. 請執行下列指令來串連加密的檔案,查看是否已複製成功:
cat setup.html cat setup2.html cat setup3.html

工作 4:輪替 CSEK 金鑰

在這項工作,您會將用來加密 Cloud Storage 資料的 CSEK 進行輪替,持續確保資料安全。

將目前的 CSEK 加密金鑰變更為解密金鑰

  1. 執行下列指令來開啟 .boto 檔案:
nano .boto
  1. 找出目前有 encryption_key 的一行,並在開頭加上 # 字元,將該行設為註解,加以排除。
注意:nano 編輯器底部提供快速指令,方便您迅速瀏覽檔案。使用 Where Is 快速指令,即可迅速找到有「#encryption_key=」的一行。
  1. 移除 # 字元來取消註解 decryption_key1,然後將 encryption_key 行目前的金鑰複製到 decryption_key1 行。

結果 (這是結果範例)

變更前: encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= # decryption_key1= 變更後: # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
  1. 依序按下 Ctrl+OEnter 鍵儲存 boto 檔案,然後按下 Ctrl+X 退出 nano 編輯器。
注意:實際上會刪除 encryption_key 行的舊 CSEK 金鑰。

產生另一個 CSEK 金鑰並新增到 boto 檔案

  1. 執行下列指令來產生新的金鑰:
python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'
  1. 從指令輸出內容複製產生的金鑰值,不要複製 b'\n'。金鑰格式應該是 tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
  2. 請執行下列指令,開啟 boto 檔案:
nano .boto
  1. 取消註解加密金鑰,並將新的金鑰值貼入 encryption_key=

結果 (這是結果範例)

變更前: # encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= 變更後: encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY=
  1. 依序按下 Ctrl+OEnter 鍵儲存 boto 檔案,然後按下 Ctrl+X 退出 nano 編輯器。

重寫檔案 1 的金鑰,並將舊的解密金鑰設為註解,加以排除

如果檔案已加密,重寫解密檔案就是使用先前設定的 decryption_key1 來將檔案解密,然後使用新的 encryption_key 為檔案加密。

您將重寫 setup2.html 的金鑰,但不會重寫 setup3.html 的金鑰。這是為了看看未適當輪替金鑰時,會發生什麼情況。

  1. 執行下列指令:
gsutil rewrite -k gs://$BUCKET_NAME_1/setup2.html
  1. 請執行下列指令,開啟 boto 檔案:
nano .boto
  1. 在 decryption_key1 那一行加回 # 字元,以便設為註解,加以排除。

結果 (這是結果範例)

變更前: decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg= 變更後: # decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
  1. 依序按下 Ctrl+OEnter 鍵儲存 boto 檔案,然後按下 Ctrl+X 退出 nano 編輯器。
注意:實際上會刪除 decryption_key1 行的舊 CSEK 金鑰。

下載 setup2 和 setup3

  1. 請執行下列指令來下載 setup2.html 檔案:
gsutil cp gs://$BUCKET_NAME_1/setup2.html recover2.html
  1. 現在請執行下列指令,下載 setup3.html 檔案:
gsutil cp gs://$BUCKET_NAME_1/setup3.html recover3.html 注意:發生這樣的情況是因為沒有使用新金鑰重寫 setup3.html,因此無法再將 setup3.html 解密,複製作業也將失敗。

您已成功輪替 CSEK 金鑰。

工作 5:啟用生命週期管理功能

在這項工作,您會啟用 Cloud Storage bucket 的生命週期管理功能,使系統在經過指定的時間後自動刪除物件。

查看 bucket 目前的生命週期政策

  • 執行下列指令,查看目前的生命週期政策:
gsutil lifecycle get gs://$BUCKET_NAME_1 注意:目前沒有生命週期政策,您將在後續步驟建立。

建立 JSON 生命週期政策檔案

  1. 請執行下列指令來建立檔案,並將檔案命名為 life.json
nano life.json
  1. 將以下的值貼入 life.json 檔案:
{ "rule": [ { "action": {"type": "Delete"}, "condition": {"age": 31} } ] } 注意: 這些指示會指定 Cloud Storage 在 31 天後刪除物件。
  1. 依序按下 Ctrl+OEnter 鍵儲存檔案,然後按下 Ctrl+X 退出 nano 編輯器。

設定和驗證政策

  1. 執行下列指令來設定政策:
gsutil lifecycle set life.json gs://$BUCKET_NAME_1
  1. 現在請執行下列指令,以便驗證政策:
gsutil lifecycle get gs://$BUCKET_NAME_1

點選「Check my progress」,確認目標已達成。 啟用生命週期管理機制

工作 6:啟用版本管理

在這項工作,您會為 Cloud Storage bucket 啟用版本管理功能,以免意外刪除或修改資料。

查看 bucket 的版本管理狀態並啟用版本管理功能

  1. 執行下列指令,查看 bucket 目前的版本管理狀態:
gsutil versioning get on gs://$BUCKET_NAME_1 注意:如果政策已暫停,代表該項政策未啟用。
  1. 請執行下列指令,啟用版本管理功能:
gsutil versioning set on gs://$BUCKET_NAME_1
  1. 再來請執行下列指令,確認版本管理功能已啟用:
gsutil versioning get gs://$BUCKET_NAME_1

點選「Check my progress」,確認目標已達成。 啟用版本管理功能

在 bucket 建立多個版本的範例檔案

  1. 檢查範例檔案的大小:
ls -al setup.html
  1. 開啟 setup.html 檔案:
nano setup.html
  1. 在 setup.html 檔案中刪除任意 5 行程式碼,來變更檔案大小。
  2. 依序按下 Ctrl+OEnter 鍵儲存檔案,然後按下 Ctrl+X 退出 nano 編輯器。
  3. 使用 -v 版本管理選項,將檔案複製到 bucket:
gcloud storage cp -v setup.html gs://$BUCKET_NAME_1
  1. 開啟 setup.html 檔案:
nano setup.html
  1. 再從 setup.html 檔案中刪除其他 5 行程式碼,來變更檔案大小。
  2. 依序按下 Ctrl+OEnter 鍵儲存檔案,然後按下 Ctrl+X 退出 nano 編輯器。
  3. 使用 -v 版本管理選項,將檔案複製到 bucket:
gcloud storage cp -v setup.html gs://$BUCKET_NAME_1

列出所有檔案版本

  1. 請執行下列指令,列出檔案的所有版本:
gcloud storage ls -a gs://$BUCKET_NAME_1/setup.html
  1. 反白選取並複製最舊版本 (第一個列出的版本) 的檔案名稱,後續步驟會將這個版本稱為 [VERSION_NAME]。
注意:務必複製檔案的完整路徑,路徑開頭為 gs://
  1. 將版本的值保存在環境變數 [VERSION_NAME] 中。
export VERSION_NAME=<Enter VERSION name here>
  1. 使用 echo 加以確認:
echo $VERSION_NAME

結果 (這是輸出內容範例)

gs://BUCKET_NAME_1/setup.html#1584457872853517

下載檔案最舊的原始版本並驗證復原作業

  1. 下載檔案的原始版本:
gcloud storage cp $VERSION_NAME recovered.txt
  1. 執行下列指令來驗證復原作業:
ls -al setup.html ls -al recovered.txt 注意:您已透過備份版本將原始檔案復原。您會發現原始版本的檔案大小比目前版本更大,因為您先前刪除了幾行程式碼。

工作 7:將目錄同步處理到 bucket

在這項工作,您會透過 Cloud Storage bucket,使用 gsutil rsync 指令,同步處理本機目錄及其子目錄。

建立巢狀結構的目錄並同步處理到 bucket

請建立巢狀結構的目錄,這樣反覆將目錄複製到 bucket 時,才能掌握作業情況。

  1. 執行下列指令:
mkdir firstlevel mkdir ./firstlevel/secondlevel cp setup.html firstlevel cp setup.html firstlevel/secondlevel
  1. 請執行下列指令,在 VM 和 bucket 上同步處理 firstlevel 目錄:
gsutil rsync -r ./firstlevel gs://$BUCKET_NAME_1/firstlevel

查看結果

  1. 前往 Cloud 控制台,依序點選「導覽選單」圖示 () >「Cloud Storage」>「Bucket」
  2. 點選「[BUCKET_NAME_1]」。請留意 bucket 中的子資料夾。
  3. 依序點按 /firstlevel/secondlevel
  4. 比較您在 Cloud 控制台看到的內容和下列指令的結果:
gcloud storage ls -r gs://$BUCKET_NAME_1/firstlevel
  1. 退出 Cloud Shell:
exit

工作 8:回顧

在本實驗室中,您學到如何建立和使用 bucket 與物件,並瞭解下列 Cloud Storage 功能:

CSEK:客戶提供的加密金鑰

  • 使用自己的加密金鑰
  • 輪替金鑰

ACL:存取控管清單

  • 將 ACL 設定為私人和修改為公開

生命週期管理

  • 設定政策,在 31 天後刪除物件

版本管理

  • 建立版本和還原先前的版本

目錄同步處理

  • 反覆將 VM 目錄同步至 bucket

Azure 和 Google Cloud 提供可擴充的安全儲存空間解決方案,適合存放非結構化資料。這兩種儲存空間解決方案的功能十分類似,但加密、驗證和安全機制的運作方式略有不同。現在就來看看這兩項服務的異同處:

相似處:

  • 都提供多種級別的儲存空間,方便客戶根據需求選擇,以實現最佳的成本效益和執行效能。
  • 都支援多種儲存空間級別,可滿足不同存取模式的需求,包括經常性存取、非經常性存取或封存模式。
  • 都具備版本管理和生命週期管理功能。

差異處:

Google Cloud Storage 儲存空間級別 Azure 儲存體級別
Standard Storage 經常性
Nearline Storage 非經常性
Coldline Storage
Archive Storage 封存
  • 對於可儲存的物件大小上限,Google Cloud Storage 和 Azure 儲存體服務設有不同限制,這可能會影響您儲存至個別服務的資料類型和大小。目前,Cloud Storage 的每個專案可儲存 5,000 個 bucket,而 Azure 儲存體服務中的每個儲存體帳戶可儲存 500 個容器。使用 Azure Blob 儲存體時,您可以為儲存體帳戶建立一或多個容器,並調整容器的政策和中繼資料存取權設定。如果是使用 Cloud Storage,您需要設定 bucket 才能加入儲存空間級別、位置、存取控管和記錄選項。
  • 使用 Azure 服務時,您也能透過 Azure 儲存體總管來執行 UI 中的儲存體選項。另一方面,Google Cloud 沒有專屬介面,只能使用 Google Cloud 控制台完成設定。
  • Google Cloud Storage 的 bucket 名稱在整個 Google Cloud Storage 不得重複。至於 Azure 服務,各儲存體帳戶中的容器都應有專屬名稱。

關閉研究室

如果您已完成研究室,請按一下「End Lab」(關閉研究室)。Google Cloud Skills Boost 會移除您使用的資源,並清除所用帳戶。

您可以針對研究室的使用體驗評分。請選取合適的星級評等並提供意見,然後按一下「Submit」(提交)

星級評等代表您的滿意程度:

  • 1 星 = 非常不滿意
  • 2 星 = 不滿意
  • 3 星 = 普通
  • 4 星 = 滿意
  • 5 星 = 非常滿意

如果不想提供意見回饋,您可以直接關閉對話方塊。

如有任何想法、建議或指教,請透過「Support」(支援) 分頁提交。

Copyright 2022 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。

上一步 下一步

准备工作

  1. 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
  2. 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
  3. 在屏幕左上角,点击开始实验即可开始

此内容目前不可用

一旦可用,我们会通过电子邮件告知您

太好了!

一旦可用,我们会通过电子邮件告知您

一次一个实验

确认结束所有现有实验并开始此实验

使用无痕浏览模式运行实验

请使用无痕模式或无痕式浏览器窗口运行此实验。这可以避免您的个人账号与学生账号之间发生冲突,这种冲突可能导致您的个人账号产生额外费用。
预览