重要提醒:
請務必使用桌機/筆電完成這個實作實驗室。
每個實驗室都只有 5 次嘗試機會。
提醒:第一次嘗試時,不一定能全部答對,甚至可能需要重做,這是正常的過程。
實驗室活動開始後,計時器無法暫停。實驗室會在 1 小時 30 分鐘後結束,如果您沒做完,就必須重新開始。
您可查看實驗室技術提示瞭解詳情。
活動總覽
Google Cloud 服務會寫入稽核記錄,記錄 Google Cloud 資源中的管理活動和存取動作。稽核記錄項目可協助您瞭解 Google Cloud 專案中相關人事時地物的問題。啟用稽核記錄功能後,安全性、稽核和法規遵循實體就能監控 Google Cloud 資料與系統,防範可能的安全漏洞或外部資料濫用情形。
在這個實驗室,您將調查稽核記錄,找出涉及雲端資源的可疑活動模式。
情境
Cymbal Bank 已正式遷移至混合雲解決方案,並成功在新雲端環境部署工作流程。然而,資安工程團隊接獲通知,指出有數個雲端資源出現未經授權的存取行為,且警告的嚴重性極高。這項消息令人憂心,因為惡意人士可能會利用遭入侵的雲端資源竊取資料,並對其他系統發動攻擊。這是您第一次遇到安全事件。您的團隊主管 Chloe 認為,這是學習事件應變程序和流程的絕佳機會。您被指派跟著資安工程部門的事件應變團隊成員 Hannah 學習,觀察她如何處理事件。Hannah 已提供警告記錄的存取權,您將使用這些記錄調查惡意活動。為了進一步瞭解這起安全事件,您已設定測試環境來重現事件並分析相關構件。您將使用兩個不同的使用者帳戶:一個帳戶會產生惡意活動,另一個帳戶則用於調查。
以下說明如何完成這項工作。首先,您要從第一個使用者帳戶產生活動,重現安全事件,然後將匯出記錄用於進一步分析。接著,您將繼續重現事件,並產生額外的使用者活動。最後,您將使用 BigQuery 分析記錄檔。
設定
點選「Start Lab」之前
請詳閱下列操作說明。實驗室活動會計時,中途無法暫停。點選「Start Lab」後就會開始計時,顯示可使用 Google Cloud 資源的時間。
您會在實際雲端環境完成實驗室活動,而非模擬或示範環境。因此,我們會提供新的臨時憑證,讓您在實驗室活動期間登入及存取 Google Cloud。
如要順利完成這個實驗室活動,請先確認:
- 可以使用標準的網路瀏覽器 (Chrome 瀏覽器為佳)。
注意:請使用無痕模式或私密瀏覽視窗執行此實驗室,防止個人帳戶和學生帳戶之間的衝突,避免個人帳戶產生額外費用。
- 該來完成實驗室活動了!別忘了,活動開始後就無法暫停。
注意:如有個人 Google Cloud 帳戶或專案,請勿用於本實驗室,以免產生額外費用。
如何啟動實驗室環境及登入 Google Cloud 控制台
-
點選「Start Lab」按鈕。左側的「Lab Details」面板會顯示下列項目:
- 剩餘時間
- 「Open Google Cloud console」按鈕
- 這個實驗室中應使用的暫時憑證
- 完成這個實驗室所需的其他資訊 (如有)
注意:如果實驗室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。
-
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也可以按一下滑鼠右鍵,選取「在無痕視窗中開啟連結」。「登入」頁面會在新的瀏覽器分頁開啟。
提示:為方便切換,可以將分頁安排在不同的視窗並排顯示。
注意:如果顯示「選擇帳戶」對話方塊,請點選「使用其他帳戶」。
-
如有需要,請複製下方的 Google Cloud 使用者名稱,然後貼到「登入」對話方塊。點選「下一步」。
{{{user_0.username | "Google Cloud username"}}}
您也可以在「Lab Details」面板找到 Google Cloud 使用者名稱。
- 複製下方的 Google Cloud 密碼,並貼到「歡迎使用」對話方塊。點選「下一步」。
{{{user_0.password | "Google Cloud password"}}}
您也可以在「Lab Details」面板找到 Google Cloud 密碼。
重要事項:請務必使用實驗室提供的憑證,而非自己的 Google Cloud 帳戶憑證。
注意:在這個實驗室中使用自己的 Google Cloud 帳戶,可能會產生額外費用。
- 繼續點選後續頁面:
- 接受條款及細則。
- 由於這是臨時帳戶,請勿新增救援選項或雙重驗證機制。
- 請勿申請免費試用。
Cloud 控制台稍後會在這個分頁中開啟。
注意事項:點選畫面左上方的導覽選單,即可查看 Google Cloud 產品與服務清單。
啟用 Cloud Shell
Cloud Shell 是一套線上開發與作業環境,可透過瀏覽器隨時隨地存取。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
- 點按 Google Cloud 控制台右上方的「啟用 Cloud Shell」圖示
。您可能需要點選「繼續」。
Cloud Shell 啟動後,您會看到訊息顯示這個工作階段的 Google Cloud 專案 ID:
您在本工作階段的 Cloud Platform 專案會設為「YOUR_PROJECT_ID」
Google Cloud 的指令列工具 gcloud 已預先安裝於 Cloud Shell,且提供 Tab 鍵完成功能。如要存取 Google Cloud,必須先授權 gcloud。
- 執行下列指令,列出目前使用的帳戶名稱:
gcloud auth list
-
系統會顯示彈出式視窗,要求您「授權 Cloud Shell」。點選「授權」。
-
輸出畫面應如下所示:
輸出內容:
ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- 使用下列指令列出專案 ID:
gcloud config list project
輸出內容範例:
[core]
project = qwiklabs-gcp-44776a13dea667a6
附註:如須有關 gcloud 的完整說明,請前往 Google Cloud 參閱 gcloud CLI 總覽指南。
工作 1:產生帳戶活動
注意:請確認您目前位於 username 1:Google Cloud 控制台。
在這項工作,您將建立及刪除雲端資源,產生帳戶活動,並以 Cloud 稽核記錄的形式存取這些活動。
- 將下列指令複製到 Cloud Shell 終端機:
gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID
echo "this is a sample file" > sample.txt
gcloud storage cp sample.txt gs://$DEVSHELL_PROJECT_ID
gcloud compute networks create mynetwork --subnet-mode=auto
export ZONE=$(gcloud compute project-info describe \
--format="value(commonInstanceMetadata.items[google-compute-default-zone])")
gcloud compute instances create default-us-vm \
--machine-type=e2-micro \
--zone=$ZONE --network=mynetwork
gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID
- 按下 Enter 鍵。
點選「Check my progress」,確認工作已正確完成。
產生帳戶活動
工作 2:匯出稽核記錄
注意:請確認您目前位於 username 1:Google Cloud 控制台。
您在前一項工作產生的活動已列入稽核記錄。在這項工作,您會將這些記錄匯出至 BigQuery 資料集,用於進一步分析。
- 前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Logs Explorer,然後在搜尋結果點選「Logs Explorer」。Logs Explorer 頁面就會開啟。
- 點按「Observability Logging」旁邊的「固定」。
- 匯出記錄時,系統會將目前的篩選器套用至匯出的內容。將下列查詢複製到「查詢建立工具」:
logName = ("projects/{{{project_0.project_id | Project ID}}}/logs/cloudaudit.googleapis.com%2Factivity")
- 點選「執行查詢」。查詢結果應會顯示在「查詢結果」窗格。這個查詢會篩選專案中的 Cloud 稽核記錄。
- 在「查詢編輯器」欄位下方,依序點選「動作」>「建立接收器」。「建立記錄檔轉送接收器」對話方塊隨即開啟。
注意:如果瀏覽器視窗較窄,使用者介面可能會顯示「更多」,而不是「更多動作」。
- 在「建立記錄檔轉送接收器」對話方塊,指定下列設定,其餘設定請保留預設值:
| 區段 |
欄位: 值 |
| 接收器詳細資料 |
接收器名稱:AuditLogsExport 點選「下一步」。 |
| 接收器目的地 |
「選取接收器服務」:BigQuery 資料集 「選取 BigQuery 資料集」:建立新的 BigQuery 資料集。 「建立資料集」對話方塊會隨即開啟。 |
| 建立資料集 |
「資料集 ID」:auditlogs_dataset 點選「建立資料集」。 「建立資料集」對話方塊會關閉,您將返回「接收器目的地」對話方塊。 |
| 接收器目的地 |
點選「下一步」。 如果已勾選「使用分區資料表」核取方塊,請取消勾選,然後點選「下一步」。 |
| 選擇要納入接收器的記錄檔 |
您會發現已預先填入「建立『包含』篩選器」:logName=("projects/[PROJECT ID]/logs/cloudaudit.googleapis.com%2Factivity") 點選「下一步」。 按一下「建立接收器」。 返回「Logs Explorer」頁面。 |
- 在「記錄」導覽窗格,點選「記錄路由器」,在「記錄路由器接收器」清單查看 AuditLogsExport 接收器。
- 在 AuditLogsExport 接收器旁邊,依序點選「更多動作」圖示
>「查看接收器詳細資料」,即可查看您建立的 AuditLogsExport 接收器相關資訊。「接收器詳細資料」對話方塊隨即開啟。
- 查看完接收器資訊後,按一下「取消」,關閉「接收器詳細資料」對話方塊。
之後所有記錄都會匯出至 BigQuery,您可以使用 BigQuery 工具分析稽核記錄資料,但已有的記錄項目不會匯出。
點選「Check my progress」,確認工作已正確完成。
匯出稽核記錄
工作 3:產生更多帳戶活動
注意:請確認您目前位於 username 1:Google Cloud 控制台。
在這項工作,您將建立及刪除雲端資源,產生額外的帳戶活動,然後在 BigQuery 存取這些活動,從記錄檔擷取進一步洞察資訊。
- 將下列指令複製到 Cloud Shell 終端機:
gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID
gcloud storage buckets create gs://$DEVSHELL_PROJECT_ID-test
echo "this is another sample file" > sample2.txt
gcloud storage cp sample.txt gs://$DEVSHELL_PROJECT_ID-test
export ZONE=$(gcloud compute project-info describe \
--format="value(commonInstanceMetadata.items[google-compute-default-zone])")
gcloud compute instances delete --zone=$ZONE \
--delete-disks=all default-us-vm
這些指令會產生更多活動,方便您在匯出至 BigQuery 的稽核記錄中查看。
- 按下 Enter 鍵。
系統提示時,請輸入 Y 並按下 Enter 鍵。您會發現自己建立了兩個 bucket,並刪除了一個 Compute Engine 執行個體。
- 幾分鐘後,系統會顯示提示,請在 Cloud Shell 終端機輸入下列指令:
gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID
gcloud storage rm --recursive gs://$DEVSHELL_PROJECT_ID-test
- 按下 Enter 鍵。
您會發現兩個 bucket 都已刪除。
點選「Check my progress」,確認工作已正確完成。
產生更多帳戶活動
工作 4:以第二位使用者的身分登入
您需要在 Google Cloud 控制台切換 Google Cloud 帳戶,登入「Lab Details」面板中提供的第二個使用者帳戶,用這個帳戶分析記錄。
- 在 Google Cloud 控制台,點選畫面右上角的使用者圖示,然後按一下「新增帳戶」。
- 返回「Lab Details」面板,複製 Google Cloud username 2 和密碼。接著將使用者名稱和密碼貼到 Google Cloud 控制台的「登入」對話方塊。
工作 5:分析管理員活動記錄
注意:請確認您目前位於 username 2:Google Cloud 控制台。
在這項工作,您將查看前一項工作產生的管理員活動記錄。您的目標是找出並套用篩選器,隔離可能指出可疑活動的記錄。這樣就能匯出這部分記錄,簡化分析程序,找出潛在問題。
管理員活動記錄檔的項目中,包含 API 呼叫,還有其他修改設定或資源中繼資料的管理動作。例如:當建立 VM 執行個體與 App Engine 應用程式,以及變更權限時,系統都會建立記錄。
注意:您可以在記錄檢視器、Cloud Logging 和 Cloud SDK 查看稽核記錄項目,也能將項目匯出至 Pub/Sub、BigQuery 或 Cloud Storage。
- 前往 Google Cloud 控制台,在標題列的「搜尋」欄位輸入 Logs Explorer,然後在搜尋結果點選「Logs Explorer」。Logs Explorer 頁面就會開啟。
- 點按「Observability Logging」旁邊的「固定」。
- 確認「顯示查詢」切換鈕已啟用。系統會開啟「查詢建立工具」欄位。
- 將下列指令複製並貼到「查詢建立工具」欄位。請注意指令中的 Google Cloud 專案 ID 和專案 ID。
logName = ("projects/{{{project_0.project_id | "PROJECT_ID"}}}/logs/cloudaudit.googleapis.com%2Factivity")
- 點選「執行查詢」。
- 在「查詢結果」找到含有 storage.buckets.delete 摘要欄位的記錄項目,這表示有 Cloud Storage bucket 遭刪除。記錄結果包含摘要欄位,用來顯示記錄項目的重要資訊。
這筆項目是指 storage.googleapis.com 呼叫 storage.buckets.delete 方法將 bucket 刪除。bucket 名稱與專案 ID 相同:。
- 點選這筆項目中的「storage.googleapis.com」文字,然後選取「顯示相符的項目」。「查詢結果」現在應該只會顯示和已建立/刪除 Cloud Storage bucket 有關的六筆項目。
- 在查詢編輯器欄位,您會看到查詢建立工具新增了 protoPayload.serviceName="storage.googleapis.com" 這行,這會將查詢篩選到只包含符合 storage.googleapis.com 的項目。
- 在查詢結果中,點按其中一筆項目的「storage.buckets.delete」,然後選取「顯示相符的項目」。
您會發現「查詢建立工具」文字中新增了一行:
logName = ("projects/{{{project_0.project_id | "PROJECT_ID"}}}/logs/cloudaudit.googleapis.com%2Factivity")
protoPayload.serviceName="storage.googleapis.com"
protoPayload.methodName="storage.buckets.delete"
「查詢結果」現在應該會顯示與已刪除 Cloud Storage bucket 相關的所有項目。您可以使用這個技巧輕鬆找出特定事件。
- 在「查詢結果」,點選「storage.buckets.delete」事件行旁的展開箭頭 >:

- 再點按該行旁的展開箭頭 >,展開 authenticatitonInfo 欄位:

請注意 principalEmail 欄位,這裡會顯示執行這項動作的使用者帳戶電子郵件地址,也就是您用來產生使用者活動的使用者 1 帳戶。
工作 6:使用 BigQuery 分析稽核記錄
注意:請確認您目前位於 username 2:Google Cloud 控制台。
您已產生記錄並匯出至 BigQuery 資料集。在這項工作,您將使用查詢編輯器分析記錄。
注意:將記錄檔匯出至 BigQuery 資料集時,Cloud Logging 會建立有日期的資料表,以保留匯出的記錄項目。系統會將記錄項目放在資料表,這些資料表是根據項目的記錄檔名稱來命名。
開啟 BigQuery 控制台
-
前往 Google Cloud 控制台,點選「導覽選單」中的「BigQuery」。
畫面會顯示「歡迎使用 Cloud 控制台中的 BigQuery」對話方塊,其中包含快速入門指南的連結和使用者介面更新內容。
-
按一下「完成」,關閉對話方塊。
- 在「傳統版 Explorer」窗格,點選專案 () 旁的展開箭頭。auditlogs_dataset 資料集隨即顯示。
注意:如果未顯示 auditlogs_dataset,請重新載入瀏覽器視窗。
接著,確認 BigQuery 資料集具備適當權限,可讓匯出寫入者儲存記錄項目。
-
點選 auditlogs_dataset 資料集。
-
在 auditlogs_dataset 工具列,點選「共用」下拉式選單,然後選取「管理權限」。
-
在「Share permission for "auditlogs_dataset"」頁面,展開「BigQuery 資料編輯者」部分。
-
確認用於匯出記錄的服務帳戶已列入權限清單。服務帳戶類似 service-xxxxxxxx@gcp-sa-logging.iam.gserviceaccount.com
設定記錄匯出功能時,系統會自動指派這項權限,因此可用來確認記錄匯出功能是否已設定完成。
-
點選「關閉」,關閉「分享資料集」視窗。
-
在「傳統版 Explorer」窗格,點選 auditlogs_dataset 資料集旁的展開箭頭,查看 cloudaudit_googleapis_com_acitivty 資料表。這個資料表包含匯出的記錄檔。
-
選取 cloudaudit_googleapis_com_activity 資料表。系統會顯示資料表結構定義。請花點時間查看資料表結構定義和詳細資料。
-
展開「開啟方式」下拉式選單,然後依序選取「SQL 查詢」>「新分頁」。

- 在查詢建立工具的「未命名的查詢」分頁,刪除所有現有文字,然後複製貼上下列指令:
SELECT
timestamp,
resource.labels.instance_id,
protopayload_auditlog.authenticationInfo.principalEmail,
protopayload_auditlog.resourceName,
protopayload_auditlog.methodName
FROM
`auditlogs_dataset.cloudaudit_googleapis_com_activity_*`
WHERE
PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) BETWEEN
DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND
CURRENT_DATE()
AND resource.type = "gce_instance"
AND operation.first IS TRUE
AND protopayload_auditlog.methodName = "v1.compute.instances.delete"
ORDER BY
timestamp,
resource.labels.instance_id
LIMIT
1000;
這個查詢會傳回過去 7 天內刪除虛擬機器的使用者。
- 按一下「執行」。
幾秒後,BigQuery 會傳回過去 7 天內,使用者刪除 Compute Engine 虛擬機器的所有記錄。您應該會看到一筆項目,也就是您在先前工作中以使用者 1 身分產生的活動。請注意,BigQuery 只會顯示您建立匯出作業以後的活動。
- 在「未命名的查詢」分頁,將先前的查詢換成下列內容:
SELECT
timestamp,
resource.labels.bucket_name,
protopayload_auditlog.authenticationInfo.principalEmail,
protopayload_auditlog.resourceName,
protopayload_auditlog.methodName
FROM
`auditlogs_dataset.cloudaudit_googleapis_com_activity_*`
WHERE
PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) BETWEEN
DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND
CURRENT_DATE()
AND resource.type = "gcs_bucket"
AND protopayload_auditlog.methodName = "storage.buckets.delete"
ORDER BY
timestamp,
resource.labels.instance_id
LIMIT
1000;
這項查詢會傳回過去 7 天內,曾刪除 Cloud Storage bucket 的使用者。您應該會看到兩筆項目,這是您在先前工作中以使用者 1 身分產生的活動。
- 按一下「執行」。
BigQuery 分析稽核記錄的功能非常強大。在這個活動,我們只示範了兩種稽核記錄的查詢方式。
點選「Check my progress」,確認工作已正確完成。
使用 BigQuery 分析稽核記錄
結論
太棒了!您已在 Logs Explorer 成功執行查詢、匯出記錄並建立資料集,在 BigQuery 分析。
您還學會如何使用稽核記錄,篩選惡意活動類型,然後在 BigQuery 進一步解讀這些記錄來分析威脅。
關閉實驗室
結束實驗室前,請確認已完成所有工作。如果已確定完成,請依序點選「End Lab」和「Submit」。
關閉實驗室後,就無法進入實驗室環境,也無法再次存取在實驗室完成的工作。
Copyright 2026 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。