go top

落實Data Access稽核,強化GCP雲端安全防線

技術文章 | 2025/06/27

在一次協助企業客戶進行雲端安全稽核的專案中,我們接到了一通急迫的電話。某部門的應用程式突然出現異常。團隊原本以為可以透過日誌追查異常來源,但當我們登入 GCP Console,查看 Cloud Audit Logs 時,卻發現了關鍵資源的 Data Access Logs 根本未啟用。

儘管 GCP 會預設記錄管理操作(Admin Activity Logs),但對於誰讀取、寫入或刪除資料這類「資料層級」的操作行為,如果未主動啟用 Data Access Logs,就無從得知是誰動了資料。沒有這些日誌紀錄,整個事件的來龍去脈只能靠猜測與交叉比對環境推論。

更令人擔憂的是,這家公司即將接受外部稽核,卻連最基本的資料存取軌跡都缺席,顯示他們對於「雲端稽核日誌」的重要性幾乎是全然陌生。

這起事件讓我們深刻意識到,在雲端架構下,未啟用 Data Access Logs,就等同於讓資料在黑箱中運作。GCP 雖然提供了完善的稽核日誌機制,但若沒有正確開啟與規劃,組織將面臨無法復原的風險與合規破口。


GCP 稽核日誌的分類方式

Google Cloud 的 Cloud Audit Logs(雲端稽核日誌)可以從兩個角度來分類:

【從用途分類】常見的總覽方式如下(三大類):


類型

說明

預設狀態

Admin Activity Logs

記錄資源的管理操作,例如建立、刪除 VM、修改 IAM。

預設啟用,不可關閉

Data Access Logs

記錄對資料的存取行為,如讀取或寫入 GCS、BigQuery。

預設關閉,需手動開啟

System Event Logs

系統層級的事件,如自動重啟、節點遷移。

自動啟用



【從資料存取行為細分】Data Access Logs 的子類型分類方式:


類型

說明

預設狀態

建議用途

Admin Read

讀取型管理操作,例如誰查看了 IAM 設定、API 設定頁面。

預設啟用

監控誰檢查了關鍵設定

Data Read

資料讀取行為,例如誰讀取了 Storage、BQ 資料。

預設關閉

機密資料讀取稽核

Data Write

資料寫入/變更行為,例如誰寫入、刪除、修改了資料。

預設關閉

關鍵資料變動追蹤



GCP Cloud Audit Logs(雲端稽核日誌)預設畫面:


本次實作步驟如下:

【一】使用 GCE 預設服務將圖檔上傳至 GCS

◆ 模擬實際應用中對資料進行寫入的操作。


【二】透過 Cloud Logging 查找關鍵稽核記錄

◆ 確認上傳行為是否有對應日誌產出。


【三】啟用 Data Access Logs 的資料讀取與資料寫入項目

◆ 手動開啟預設未啟用的日誌類型,以捕捉後續操作紀錄。


【四】再次測試並查詢 Cloud Logging 中的操作記錄

◆ 比較啟用前後日誌內容差異,驗證稽核功能是否正常運作。


【五】分享實作完成後的心得與建議

◆ 總結啟用 Data Access Logs 的效益與注意事項。


【一】使用 GCE 預設服務將圖檔上傳至 GCS

1.創建GCE (name:gce-2025)

2.創建GCS (name:gcs-2025)

3.登入GCE並完成上傳image01.png至GCS (gsutil cp image01.png gs://gcs-2025)



【二】透過 Cloud Logging 查找關鍵稽核記錄

1.進入Cloud Logging

2.於Logs Explorer輸入protoPayload.resourceName:"projects/_/buckets/gcs-2025/objects/image01.png"

3.確認無Log資訊



【三】啟用 Data Access Logs 的資料讀取與資料寫入項目

1.進入IAM -> 稽核紀錄 -> 搜尋Storage

2.將Google Cloud Storage 〔資料讀取〕與〔資料寫入〕皆勾選並儲存(預設只有勾選管理員讀取)



【四】再次測試並查詢 Cloud Logging 中的操作記錄

1.登入GCE並完成移除與上傳image01.png至GCS

移除(gsutil rm gs://gcs-2025/image01.png)

上傳(gsutil cp image01.png gs://gcs-2025)

2.於Logs Explorer輸入protoPayload.resourceName:"projects/_/buckets/gcs-2025/objects/image01.png"

3.確認有Log資訊



【五】分享實作完成後的心得與建議

透過本次實作,我們明顯看出啟用 Data Access Logs 前後的差異。在尚未啟用的情況下,僅能看到管理層級的基本事件,無法追蹤實際資料存取行為;而啟用後,具體的讀寫操作便能清楚記錄,讓問題排查與稽核過程更具依據。

值得注意的是,GCP 預設並不啟用 Data Access Logs,這其實是出於以下幾項考量:

控制儲存成本:資料存取操作頻繁,若預設開啟,容易產生大量日誌,占用儲存空間並產生額外費用。

避免影響效能:全面啟用資料層級記錄可能影響日誌系統效能,GCP 選擇讓使用者依需求啟用,以保留彈性。

符合共擔責任模型:GCP 提供功能,但是否啟用、如何配置,仍需使用者自行依風險與合規需求評估。


因此,在操作過程中也整理出幾項實作上的注意事項:

需手動開啟:建議針對關鍵資源(如 GCS)主動啟用。

記得查對日誌類型與時間範圍:啟用後需等待一段時間,查詢時也要選擇正確的日誌類別。

關注日誌產生量:依存取頻率日誌量可能快速累積,建議搭配儲存期限與過濾策略。

總結來說,Data Access Logs 是雲端環境中關鍵的可視化與稽核工具。雖然預設未啟用,但只要正確配置,就能有效強化資料安全防線,降低日後調查與合規風險。