检查点
Create a custom security role
/ 20
Create a service account
/ 20
Bind a custom security role to an account
/ 20
Create a Private GKE cluster
/ 20
Deploy an application to a private Kubernetes Engine cluster
/ 20
Implement Cloud Security Fundamentals on Google Cloud:挑戰實驗室
GSP342
總覽
在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。
在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。
若想滿分達標,就必須在時限內成功完成所有任務!
這個實驗室適合已參加 Implement Cloud Security Fundamentals on Google Cloud 技能徽章課程的學員。準備好迎接挑戰了嗎?
測驗主題
- 建立自訂安全性角色。
- 建立服務帳戶。
- 將 IAM 安全性角色繫結至服務帳戶。
- 在自訂子網路中建立私人 Kubernetes Engine 叢集。
- 將應用程式部署至私人 Kubernetes Engine 叢集。
設定和需求
點選「Start Lab」按鈕前的須知事項
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
- 您可以使用標準的網際網路瀏覽器 (Chrome 瀏覽器為佳)。
- 是時候完成研究室活動了!別忘了,活動一開始將無法暫停。
挑戰情境
您是 Jooli 公司新上任的初級資安團隊成員,隸屬於 Orca 開發團隊,負責保護公司應用程式使用的雲端基礎架構和服務的安全。
公司預期您具備執行這些工作所需的技能與知識,因此不會提供逐步指南。
您的挑戰
您接到一項工作,需要部署、設定並測試新的 Kubernetes Engine 叢集,供 Orca 開發團隊進行應用程式開發及管道測試。
您須依照機構最新的安全標準,建構符合下列要求的新 Kubernetes Engine 叢集:
- 部署叢集時,必須使用設有最低必要權限的專屬服務帳戶。
- 叢集必須部署為 Kubernetes Engine 私人叢集並停用公開端點,且主要執行個體授權網路設為僅包含 Orca 團隊管理跳板機的 IP 位址。
- 將 Kubernetes Engine 私人叢集部署至 Orca Build 虛擬私有雲的
orca-build-subnet
。
您從先前的專案得知,在指定用於 Kubernetes Engine 叢集的服務帳戶中,最低必要權限涵蓋下列三個內建角色:
roles/monitoring.viewer
roles/monitoring.metricWriter
roles/logging.logWriter
以上是 Google Kubernetes Engine (GKE) 的《強化叢集的安全防護機制》(Harden your cluster's security) 指南中,「使用最低權限的 Google 服務帳戶」一節指定的角色。
您須建立自訂角色,以便對開發團隊指定的任何其他服務提供存取權,並將這個自訂角色與上方提到的三個內建角色,繫結至叢集使用的服務帳戶。根據您初步得到的指示,開發團隊希望叢集使用的服務帳戶具備某些必要權限,能新增及更新 Google Cloud Storage 值區物件。因此,您須建立新的自訂 IAM 角色來提供下列權限:
storage.buckets.get
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.create
建立新的私人叢集後,您必須從管理子網路 orca-mgmt-subnet
中的跳板機 orca-jumphost
連線至該叢集,來測試其設定是否正確。由於這個運算執行個體所在的子網路與私人叢集不同,您必須確認叢集的主要執行個體授權網路包含跳板機的內部 IP 位址。此外,使用 gcloud container clusters get-credentials
指令擷取叢集憑證時,您須指定 --internal-ip
旗標。
您新建的所有雲端物件和服務,都應包含前置字元「orca-」。
最後一項工作,是驗證叢集能否順利運作。具體而言,您需要將簡單的應用程式部署至叢集,並從 orca-jumphost
運算執行個體使用 kubectl
工具,測試叢集的管理權限是否正常運作。
請使用「
工作 1:建立自訂安全性角色
第一項工作,是建立名為「
工作 2:建立服務帳戶
第二項工作,是建立新私人叢集專用的服務帳戶。該帳戶必須命名為「
工作 3:將自訂安全性角色繫結至服務帳戶
現在,請將 Kubernetes Engine 叢集服務帳戶所需的 Cloud 作業套件記錄和監控角色,以及您為了提供儲存空間權限而建立的自訂 IAM 角色,繫結至剛才建立的服務帳戶。
工作 4:建立及設定新的 Kubernetes Engine 私人叢集
現在請使用先前設定的服務帳戶,建立新的 Kubernetes Engine 私人叢集,並完成下列設定:
- 將叢集命名為「
」 - 將叢集部署至子網路
orca-build-subnet
- 設定叢集使用「
」服務帳戶 - 啟用下列私人叢集選項:
enable-master-authorized-networks
、enable-ip-alias
、enable-private-nodes
和enable-private-endpoint
。
叢集設定完成後,請將 orca-jumphost
運算執行個體的內部 IP 位址,新增至主要執行個體授權網路清單。
工作 5:將應用程式部署至私人 Kubernetes Engine 叢集
您有一個可部署至任何叢集的簡易測試應用程式,能快速測試基本容器部署功能是否正常運作,以及使用者能否建立及存取基本服務。現在請設定環境,使用跳板機 orca-jumphost
將這個簡易測試應用程式部署至新叢集。
kubectl
指令前,請先確認已正確安裝 gke-gcloud-auth-plugin
。詳情請見下方的提示 1。
這會部署應用程式來監聽通訊埠 8080。使用基本負載平衡器服務即可公開這個通訊埠以進行測試。
提示與秘訣
-
提示 1:務必使用
gke-gcloud-auth-plugin
。您需要這項外掛程式,才能繼續使用kubectl
。執行下列指令即可安裝這項程式,安裝時務必將 GKE 叢集名稱、可用區和專案 ID 替換為您需要的值。
-
提示 2:將
orca-jumphost
機器的內部 IP 位址新增至私人 Kubernetes Engine 叢集的授權位址清單時,務必使用/32
網路遮罩,以確保只有特定運算執行個體獲得授權。 -
提示 3:指定
enable-private-endpoint
選項後,如果您所在的虛擬私有雲或其他網路,位於部署 Kubernetes Engine 私人叢集的虛擬私有雲外,就無法直接連線至該叢集。這個選項能為私人叢集提供最高安全性,因此您必須在部署叢集的虛擬私有雲中,使用跳板機或 Proxy 連線至叢集的內部管理 IP 位址。
恭喜!
在本實驗室中,您建立了新 Kubernetes Engine 私人叢集,並為其設定具備最低叢集執行權限的專屬服務帳戶。此外,您也藉由建立自訂 IAM 角色,提供 Google Cloud Storage 值區的儲存空間物件建立及更新權限,並將該角色繫結至叢集使用的服務帳戶。最後,您驗證叢集可以順利運作。在這項工作中,您將簡單的應用程式部署至叢集,並從 orca-jumphost
運算執行個體使用 kubectl
工具,測試叢集的管理權限是否正常運作。
取得下一枚技能徽章
這個自學實驗室是 Implement Cloud Security Fundamentals on Google Cloud 技能徽章課程的一部分。完成這個技能徽章課程即可獲得上方的徽章,表彰您的成就。您可以在履歷表和社群平台張貼徽章,並加上 #GoogleCloudBadge 公開這項成就。
這個技能徽章課程是 Google Cloud 雲端資安工程師學習路徑的一部分。如果您已完成這個學習路徑中的其他技能徽章課程,歡迎瀏覽目錄,尋找其他可以參加的技能徽章課程。
Google Cloud 教育訓練與認證
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 3 月 25 日
實驗室上次測試日期:2023 年 12 月 4 日
Copyright 2024 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。