搭配 Cloud Functions 使用 Cloud 稽核記錄

本頁面說明 Google Cloud Functions 建立的稽核記錄,該記錄屬於 Cloud 稽核記錄的一部分。

總覽

Google Cloud Platform 服務會寫入稽核記錄,協助您瞭解什麼人在什麼時間和位置從事了什麼行為。每個 GCP 專案的稽核記錄都僅涵蓋直接隸屬於專案的資源。資料夾、機構和帳單帳戶等其他實體也各有其專屬的稽核記錄。

如需 Cloud 稽核記錄的概要總覽,請參閱 Cloud 稽核記錄一文。如要深入瞭解 Cloud 稽核記錄,請參閱瞭解稽核記錄一文。

Cloud 稽核記錄會為每個 GCP 專案、資料夾和機構保留三份稽核記錄:

  • 管理員活動稽核記錄
  • 資料存取稽核記錄
  • 系統事件稽核記錄

Cloud Functions 會寫入管理員活動稽核記錄,其中記錄了修改資源設定或中繼資料的作業。系統一律會產生管理員活動稽核記錄,且該記錄無法停用。

只有在明確啟用時,Cloud Functions 才會寫入資料存取稽核記錄。資料存取稽核記錄包含讀取資源設定或中繼資料的 API 呼叫,以及建立、修改或讀取使用者所提供資源資料的使用者驅動 API 呼叫。資料存取稽核記錄不會記錄下列兩種資源的資料存取作業:公開共用的資源 (供所有使用者所有已驗證的使用者使用),或可在未登入 GCP 情況下存取的資源。

Cloud Functions 不提供系統事件稽核記錄。

稽核的作業

以下概述與 Cloud Functions 中每個稽核記錄類型對應的 API 作業:

稽核記錄類別 Cloud Functions 作業
管理員活動 cloudfunctions.functions.create
cloudfunctions.functions.delete
cloudfunctions.functions.update
cloudfunctions.functions.sourceCodeSet
cloudfunctions.operations.get
cloudfunctions.locations.list
資料存取 (ADMIN_READ) cloudfunctions.functions.get
cloudfunctions.functions.list
cloudfunctions.functions.sourceCodeGet
資料存取 (DATA_READ) cloudfunctions.functions.call

稽核記錄格式

稽核記錄項目 (可在 Stackdriver Logging 中使用記錄檢視器、Stackdriver Logging API 或 Cloud SDK 查看) 包含以下物件:

  • 記錄項目本身,屬於 LogEntry 類型的物件。實用的欄位包括:

    • logName,包含專案識別與稽核記錄類型
    • resource,包含稽核作業的目標
    • timeStamp,包含稽核作業的時間
    • protoPayload,包含稽核的資訊
  • 稽核記錄資料,這是儲存在記錄項目 protoPayload 欄位中的 AuditLog 物件。

  • 選用的服務專屬稽核資訊,這是儲存在 AuditLog 物件 serviceData 欄位中的服務專屬物件。詳情請參閱服務專屬稽核資料一節。

如要瞭解這些物件中的其他欄位,以及如何解讀這些資料,請參閱瞭解稽核記錄一文。

記錄名稱

Cloud 稽核記錄資源名稱會指出擁有稽核記錄的專案或其他實體,以及記錄中包含的是管理員活動、資料存取或系統事件稽核記錄資料。例如,下列內容顯示專案管理員活動稽核記錄的名稱,以及機構資料存取稽核記錄的名稱:

projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity
organizations/[ORGANIZATION_ID]/logs/cloudaudit.googleapis.com%2Fdata_access

服務名稱

Cloud Functions 稽核記錄會使用服務名稱 cloudfunctions.googleapis.com

如要進一步瞭解記錄服務,請參閱將服務對應到資源一節。

資源類型

Cloud Functions 稽核記錄使用的資源類型一律是 cloud_function

如需完整清單,請參閱受控資源類型一文。

啟用稽核記錄

系統一律會產生管理員活動稽核記錄,且該記錄無法停用。

資料存取稽核記錄預設為停用,且除非明確啟用,否則系統不會寫入這類記錄。唯一的例外是 BigQuery 的資料存取稽核記錄,該記錄無法停用。

如需啟用部分或所有資料存取稽核記錄的操作說明,請參閱設定資料存取記錄一文。

您設定的資料存取稽核記錄可能會影響 Stackdriver 中的記錄定價。請參閱本頁面的定價一節。

稽核記錄權限

Cloud Identity and Access Management 權限和角色會決定您所能查看或匯出的稽核記錄。記錄保存在專案以及機構、資料夾和帳單帳戶等其他實體中。詳情請參閱瞭解角色一文。

如要查看管理員活動稽核記錄,您必須在包含稽核記錄的專案中,具備下列其中一個 Cloud IAM 角色:

如要查看資料存取稽核記錄,在包含稽核記錄的專案中,您必須擁有下列其中一個角色:

如果您使用的稽核記錄來自非專案實體 (例如機構),請將專案角色變更為適當的機構角色。

查看記錄

您可以採取下列幾種做法來查看稽核記錄項目:

基本檢視器

您可以使用 GCP 主控台中的記錄檢視器基本介面,擷取稽核記錄項目。請執行下列步驟:

  1. 前往 GCP 主控台的「Stackdriver Logging」>「Logs」(記錄) (「Logs Viewer」(記錄檢視器)) 頁面:

    前往「Logs Viewer」(記錄檢視器) 頁面

  2. 在頁面頂端選取現有 GCP 專案,或建立新專案。

  3. 在第一個下拉式選單中,選取您要查看的稽核記錄所屬資源類型。您可以選取特定資源,或者選取 Global 以涵蓋所有資源。

  4. 在第二個下拉式選單中,選取您要查看的記錄類型:管理者活動稽核記錄為 activity,資料存取稽核記錄為 data_access,系統事件稽核記錄為 system_events

    如果畫面上未顯示上述任一選項,表示專案沒有該類型的稽核記錄可供查看。

進階檢視器

您可以使用 GCP 主控台中的記錄檢視器進階介面,擷取稽核記錄項目。請執行下列步驟:

  1. 前往 GCP 主控台的「Stackdriver Logging」>「Logs」(記錄) (「Logs Viewer」(記錄檢視器)) 頁面:

    前往「Logs Viewer」(記錄檢視器) 頁面

  2. 在頁面頂端選取現有 GCP 專案,或建立新專案。

  3. 在第一個下拉式選單中,選取您要查看的稽核記錄所屬資源類型。您可以選取特定資源,或者選取 Global 以涵蓋所有資源。

  4. 按一下搜尋篩選器方塊最右側的下拉式箭頭 (▾),然後選取 [Convert to advanced filter] (轉換為進階篩選器)

  5. 建立篩選器,進一步指定您要查看的記錄項目。如要擷取專案中的所有稽核記錄,請新增下列篩選器,並在每個記錄名稱中提供有效的 [PROJECT_ID]

      logName = ("projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity" OR
          OR "projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events"
          OR "projects/[PROJECT_ID]logs/cloudaudit.googleapis.com%2Fdata_access")
    

    如要進一步瞭解篩選器,請參閱進階記錄篩選器一文。

API

如要使用 Stackdriver Logging API 查看稽核記錄項目,請執行下列步驟:

  1. 前往 entries.list 方法說明文件中的「Try this API」(試用這個 API) 區段。

  2. 將下列內容放入「Try this API」(試用這個 API) 表單的「Request body」(要求主體) 部分。按一下這份已預先填入資料的表單就能自動填入要求主體,但您必須在每個記錄名稱中提供有效的 [PROJECT_ID]

      {
        "resourceNames": [
          "projects/[PROJECT_ID]"
        ],
        "pageSize": 5,
        "filter": "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"
      }
    
  3. 按一下 [Execute] (執行)

如要進一步瞭解篩選器,請參閱進階記錄篩選器一文。

SDK

如要使用 Cloud SDK 讀取記錄項目,請執行下列指令,並在每個記錄名稱中提供有效的 [PROJECT_ID]

gcloud logging read "logName=(projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Factivity OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fsystem_events OR projects/[PROJECT_ID]/logs/cloudaudit.googleapis.com%2Fdata_access)"

如要進一步瞭解如何使用 Cloud SDK,請參閱讀取記錄項目一節。

如需稽核記錄項目範例,並瞭解如何找出其中最重要的資訊,請參閱瞭解稽核記錄一文。

匯出稽核記錄

您可以採用與匯出其他類型記錄相同的方式匯出稽核記錄。如要進一步瞭解如何匯出記錄,請參閱匯出記錄一文。以下是匯出稽核記錄的一些應用方式:

  • 如要長時間保留稽核記錄,或使用更強大的搜尋功能,您可以將稽核記錄的複本匯出到 Cloud Storage、BigQuery 或 Cloud Pub/Sub。您可以使用 Cloud Pub/Sub 匯出至其他應用程式、其他存放區或是第三方。

  • 如要管理整個機構的稽核記錄,您可以建立匯總匯出接收器,從機構中的任何或所有專案匯出記錄。

  • 如果已啟用的資料存取稽核記錄導致專案超過記錄配額,您可從 Logging 匯出及排除資料存取稽核記錄。詳情請參閱記錄排除一文。

定價

Stackdriver Logging 不會針對系統一律會產生且無法停用的稽核記錄收費,包括所有管理員活動稽核記錄。Stackdriver Logging 會對您明確要求的資料存取稽核記錄收費。

如要進一步瞭解稽核記錄的計價方式,請參閱 Stackdriver 定價一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Functions Documentation