准备工作
- 实验会创建一个 Google Cloud 项目和一些资源,供您使用限定的一段时间
- 实验有时间限制,并且没有暂停功能。如果您中途结束实验,则必须重新开始。
- 在屏幕左上角,点击开始实验即可开始
Enable APIs and set up Artifact Registries
/ 20
Set up a Cloud Build pipeline and push your Docker image to Artifact Registry
/ 20
Create an Attestor, KMS pair, and update the policy
/ 20
Integrate vulnerability scanning into your CI/CD pipeline
/ 20
Fix the vulnerability and redeploy the CI/CD pipeline
/ 20
在挑戰研究室中,您會在特定情境下完成一系列任務。挑戰研究室不會提供逐步說明,您將運用從課程研究室學到的技巧,自行找出方法完成任務!自動評分系統 (如本頁所示) 將根據您是否正確完成任務來提供意見回饋。
在您完成任務的期間,挑戰研究室不會介紹新的 Google Cloud 概念。您須靈活運用所學技巧,例如變更預設值或詳讀並研究錯誤訊息,解決遇到的問題。
若想滿分達標,就必須在時限內成功完成所有任務!
這個實驗室適合已參加安全推送軟體課程的學員。準備好迎接挑戰了嗎?
您是 Cymbal Bank 的軟體工程師,負責將新的網頁應用程式安全地部署至雲端。這個應用程式會處理機密客戶資料,因此安全把關是第一要務。您的目標是實作健全的自動化管道,透過該管道建構、掃描、簽署及部署容器化應用程式,同時遵守嚴格的安全標準。在這項挑戰中,您將使用 Artifact Registry、二進位授權和 Cloud Build 等 Google Cloud 服務,在範例應用程式中達成上述目標。
請詳閱以下操作說明。實驗室活動會計時,且中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您將在真正的雲端環境完成實作實驗室活動,而不是模擬或示範環境。為此,我們會提供新的暫時憑證,供您在實驗室活動期間登入及存取 Google Cloud。
為了順利完成這個實驗室,請先確認:
在開始建構安全的 CI/CD 管道前,您需要啟用必要的 Google Cloud API 並設定開發環境。這樣可以確保您能存取所有必要的服務和工具。
artifact-scanning-repo 和 artifact-prod-repo。掃描存放區會用來儲存尚未接受安全漏洞掃描的 Docker 映像檔,正式環境存放區則用來儲存已簽署且可供部署的映像檔。
點選「Check my progress」,確認目標已達成。
在這項工作中,您將建立基本的 Cloud Build 設定,為 CI/CD 管道奠定基礎,以便建構 Docker 映像檔並推送至 Artifact Registry。完成這個初始步驟後,您就能在實驗室的後續階段掃描映像檔,確認是否有安全漏洞。
首先,將下列角色新增至 Cloud Build 服務帳戶:
roles/iam.serviceAccountUserroles/ondemandscanning.admin在 Cloud Shell 編輯器中,開啟 sample-app/cloudbuild.yaml 檔案。
填妥 TODO 部分:在映像檔名稱預留位置 (<image-name>) 填寫實際名稱。在這個步驟,您需要參照 artifact-scanning-repo 存放區,而映像檔名稱應設為 sample-image。請務必使用
提交建構作業。
查看推送至 artifact-scanning-repo 存放區的映像檔,並確認掃描結果中顯示多項重大安全漏洞。
點選「Check my progress」,確認目標已達成。
為了對容器部署作業強制執行嚴格的安全政策,您將使用二進位授權。這項服務可讓您定義誰可以在什麼條件下部署哪些映像檔。在這項工作中,您將建立及設定二進位授權的必要元素,包括驗證者、附註和 KMS 金鑰,以便做好準備,將二進位授權整合至 CI/CD 管道。
在 Cloud Shell 中建立 JSON 檔案。這個檔案將用來定義含驗證提示的驗證者附註。驗證提示的 human_readable_name 應設為「Container Vulnerabilities attestation authority」。
使用 Container Analysis API 建立 ID 為 vulnerability_note 的新附註。附註的詳細資料應在上一步建立的附註檔案中定義。請務必在 API 要求中加入正確的驗證資訊,並設定適當的 Content-Type 標頭。
使用 Container Analysis API 擷取您剛建立的驗證者附註詳細資料。請務必在 API 要求中加入正確的驗證資訊。
使用 gcloud 指令列工具建立新的二進位授權驗證者。驗證者 ID 應為 vulnerability-attestor,且必須與您剛建立的驗證者附註建立關聯。
使用 gcloud 指令列工具,列出所有現有的二進位授權驗證者。請確認清單中包含您剛建立的驗證者。
建立 IAM 政策,將您建立的驗證者附註的 roles/containeranalysis.notes.occurrences.viewer 角色授予二進位授權服務帳戶,然後使用 Container Analysis API,對該附註設定這個 IAM 政策。
在本節中,您將產生用來簽署驗證資料的 KMS 金鑰組。
設定金鑰管理機制:
global 位置建立名為 binauthz-keys 的 KMS 金鑰環,用來儲存金鑰。lab-key,且務必使用 版本 1。將金鑰連結至驗證者:
gcloud 指令列工具,將 lab-key (版本 1) 與二進位授權驗證者建立關聯。參照金鑰時,請務必指定 global 位置和 binauthz-keys 金鑰環。修改政策:將二進位授權政策調整為針對預設規則強制執行驗證要求。
加入驗證者:將先前建立的 vulnerability-attestor 加入政策設定。
點選「Check my progress」,確認目標已達成。
現在您將以在工作 2 中建立的基本管道為基礎,加入重要的安全防護功能來加以強化。這些功能包括安全漏洞掃描 (可找出容器映像檔中的潛在弱點) 和映像檔簽署 (確保映像檔完整性)。在這項工作中,您會將安全漏洞掃描和映像檔簽署功能整合至 CI/CD 管道,讓管道更加完善安全。
在專案中,將下列 IAM 角色授予 Cloud Build 服務帳戶:
roles/binaryauthorization.attestorsViewerroles/cloudkms.signerVerifierroles/containeranalysis.notes.attacherroles/iam.serviceAccountUserroles/ondemandscanning.admin此外,請確定 Compute Engine 預設服務帳戶也具備 cloudkms.signerVerifier 角色。
在本節中,您將加入安全漏洞掃描、嚴重性檢查、映像檔簽署和部署至 Cloud Run 的功能,打造完整的 Cloud Build 管道。下方提供的程式碼是管道的部分實作內容。您需要填寫缺漏的部分,才能完成整個管道的建構作業。
artifact-scanning-repo 存放區。CRITICAL (重大) 安全漏洞,管道應會執行失敗。vulnerability-attestor,金鑰版本則是 lab-key 版本 1 的完整路徑。artifact-prod-repo 存放區。artifact-prod-repo 存放區的正式環境映像檔。cloudbuild.yaml 檔案中的前幾個 TODO 部分。請務必將其餘預留位置改成正確的值,填妥剩下的 TODO 部分。
觸發建構作業:
觀察建構失敗情形:
CRITICAL (重大) 的安全漏洞而失敗。CRITICAL (重大) 的安全漏洞,建構作業應該會失敗。您會在接下來的工作中解決這個問題。
點選「Check my progress」,確認目標已達成。
在現實生活中,執行安全漏洞掃描後,常會發現需要解決的問題。這項工作將模擬這種情況,也就是建構作業因重大安全漏洞而失敗。在這項工作中,您將分析建構失敗問題、找出安全漏洞,並更新應用程式的依附元件來修正問題,然後重新觸發 Cloud Build 管道,確保建構作業順利完成,且沒有任何重大安全漏洞。
更新 Dockerfile:將 Dockerfile 修改成使用 python:3.8-alpine 基本映像檔,並將 Flask、Gunicorn 和 Werkzeug 依附元件更新為下列版本:
3.0.3
23.0.0
3.0.4
重新觸發建構作業:提交更新後的 Cloud Build 設定,啟動新的建構作業。
確認建構成功:前往 Cloud Build 的「記錄」頁面,確認建構作業順利完成,且沒有任何 CRITICAL (重大) 安全漏洞問題。
為進行測試,請執行下列指令,允許未經驗證的 Cloud Run 服務存取要求,以便驗證部署結果。將 <your-region> 改成您部署服務的區域。
點選「Check my progress」,確認目標已達成。
太棒了!在本實驗室中,您成功實作了能建構、掃描、簽署及部署網頁應用程式至雲端的安全 CI/CD 管道。透過這次實際操作,您已掌握以下必要技能:在雲端建構及部署安全應用程式、將安全性最佳做法融入開發工作流程,以及確保軟體推送程序的完整性。
歡迎參考下列資源,進一步瞭解本實驗室涵蓋的主題:
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2025 年 12 月 10 日
實驗室上次測試日期:2025 年 9 月 4 日
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
一次一个实验
确认结束所有现有实验并开始此实验