匯總並儲存貴機構的記錄檔

本文說明如何使用非攔截式匯總接收器,管理 Google Cloud 機構中資源產生的記錄項目。

您可以設定匯總接收器是否要攔截記錄檔,取決於您是否要控管可在子項資源的接收器中查詢或透過接收器轉送的記錄項目。在本教學課程中,您會建立匯總接收器,將貴機構的稽核記錄轉送至Google Cloud 專案,然後該專案會將匯總稽核記錄轉送至記錄檔 bucket。詳情請參閱「匯總接收器總覽」。

在本教學課程中,您會執行下列步驟:

  1. 首先,請在要儲存匯總記錄項目的Google Cloud 專案中,建立記錄檔 bucket 和記錄檔接收器。

  2. 接著,在機構層級建立非攔截式匯總接收器,將記錄項目轉送至包含記錄檔 bucket 的 Google Cloud 專案。

  3. 然後設定新記錄檔 bucket 中記錄檢視畫面的讀取權限。

  4. 最後,您可以在 Logs Explorer 頁面查詢及查看記錄項目。

事前準備

請確認下列事項:

  • 如要取得設定匯總接收器所需的權限,請要求管理員授予您組織的下列 IAM 角色:

    • 如要在專案中建立記錄檔值區和接收器: 記錄設定寫入者 (roles/logging.configWriter) - 您的專案
    • 如要建立匯總接收器,請按照以下步驟操作: 記錄設定寫入者 (roles/logging.configWriter) - 貴機構
    • 如要將角色授予主體: 擁有者 (roles/owner) - 您的專案

    如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

    您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

  • 如果您使用 VPC Service Controls,則必須在服務範圍中新增輸入規則。如要進一步瞭解 VPC Service Controls 限制,請參閱「限制」。
  • 在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

建立記錄檔 bucket

記錄檔 bucket 會儲存從其他專案、資料夾或機構轉送的記錄項目。Google Cloud 詳情請參閱「設定記錄儲存空間」。

如要在要匯總記錄項目的 Google Cloud 專案中建立記錄檔 bucket,請完成下列步驟:

  1. 開啟殼層。

    舉例來說,如要使用 Cloud Shell,請執行下列操作:

    1. 前往 Google Cloud 控制台:

      前往 Google Cloud 控制台

    2. 按一下工具列中的 「啟用 Cloud Shell」。
  2. 在殼層中執行 gcloud logging buckets create 指令。

    執行下列指令前,請先進行下列替換:

    • BUCKET_NAME:記錄檔 bucket 的名稱。
    • LOCATION:記錄 bucket 的位置。記錄檔 bucket 建立完成後,就無法變更其位置。
    • PROJECT_ID:要在其中建立記錄儲存區的專案 ID。

    執行 gcloud logging buckets create 指令:

     gcloud logging buckets create BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID
    
  3. 確認記錄檔 bucket 是否已建立:

    gcloud logging buckets list --project=PROJECT_ID
    

    指令的回應是專案中的記錄 bucket 清單。

  4. 記錄檔值區的保留期限可供設定。如要設定記錄檔 bucket 中記錄項目的保留期限,請使用 gcloud logging buckets update 指令。舉例來說,下列指令會將記錄檔 bucket 中儲存的記錄項目保留期限延長至 365 天:

    gcloud logging buckets update BUCKET_NAME \
       --location=LOCATION --project=PROJECT_ID \
       --retention-days=365
    

    如要進一步瞭解相關選項,請參閱 gcloud logging buckets update。

建立專案層級的記錄檔接收器

建立接收器即可將記錄項目轉送至記錄檔 bucket。接收器包含「包含」篩選器、「排除」篩選器和目的地。在本教學課程中,您將設定「包含」篩選器和目的地,將記錄檔轉送至新的記錄檔 bucket。接收器不含任何「排除」篩選器。如要進一步瞭解接收器,請參閱「將記錄檔轉送至支援的目的地」。

如要建立接收器,將記錄項目轉送至您剛才建立的記錄檔 bucket,請執行 gcloud logging sinks create 指令。

執行下列指令前,請先進行下列替換:

  • PROJECT_LEVEL_SINK_NAME:專案層級記錄檔接收器的名稱。
  • SINK_DESTINATION:記錄項目要轉送到的記錄 bucket。記錄檔值區的目的地路徑格式如下:

    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • PROJECT_ID:要建立記錄檔接收器的專案 ID。將這項選項設為您建立記錄檔 bucket 的專案。

  • 包含下列選項:

    • --log-filter:使用這個選項設定篩選器,找出要納入接收器的記錄檔項目。在本教學課程中,篩選器會設為選取所有稽核記錄項目。如未設定篩選器,系統會將 Google Cloud 專案中的所有記錄項目轉送至目的地。
    • --description:使用這個選項說明接收器的用途或用途。

執行 gcloud logging sinks create 指令:

gcloud logging sinks create PROJECT_LEVEL_SINK_NAME SINK_DESTINATION
--project=PROJECT_ID
--log-filter='logName:cloudaudit.googleapis.com' \
--description="Audit logs from my organization" \

建立匯總接收器

匯總接收器會合併並轉送機構或資料夾所含資源的記錄項目至目的地。

在本教學課程中,您會建立不攔截的匯總接收器。也就是說,匯總接收器轉送的每個記錄項目,也會由記錄項目來源資源中的接收器轉送。舉例來說,如果稽核記錄檔來自某個專案,匯總接收器和該專案中的接收器就會轉送該記錄檔。因此,您可能會儲存記錄項目的多個副本。

您可以建立攔截接收器。詳情請參閱「匯總接收器總覽」。

在機構層級設定接收器

如要建立非攔截式匯總接收器,並將記錄項目傳送至專案,請完成下列步驟:

  1. 執行 gcloud logging sinks create 指令。

    執行下列指令前,請先進行下列替換:

    • SINK_NAME:記錄檔接收器的名稱。水槽名稱一經建立即無法變更。
    • PROJECT_ID:儲存記錄 bucket 的專案 ID。
    • ORGANIZATION_ID:機構 ID。

    執行 gcloud logging sinks create 指令:

    gcloud logging sinks create SINK_NAME \
    logging.googleapis.com/projects/PROJECT_ID  \
      --log-filter='logName:cloudaudit.googleapis.com' \
      --description="Audit logs from my organization" \
      --organization=ORGANIZATION_ID \
      --include-children
    

    --include-children 選項非常重要,這個選項可確保系統會轉送機構內所有Google Cloud 專案和資料夾的記錄項目。詳情請參閱「彙整組織層級記錄檔並轉送至支援的目的地」。

  2. 確認已建立接收器:

    gcloud logging sinks list --organization=ORGANIZATION_ID
    
  3. 取得服務帳戶名稱:

    gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
    

    輸出看起來類似以下內容:

    writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.com
    
  4. 將 serviceAccount 欄位的值複製到剪貼簿。

授予接收器存取權

建立匯總接收器後,您必須授予接收器權限,才能將記錄項目寫入您設為目的地的專案。您可以透過 Google Cloud 控制台授予權限,也可以編輯 Identity and Access Management (IAM) 政策,詳情請參閱「設定目的地權限」。

如要授予接收器寫入記錄項目的權限,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM」頁面:

    前往 IAM

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。

  2. 選取含有記錄檔 bucket 的 Google Cloud 專案。

  3. 按一下「授予存取權」,然後將服務帳戶新增為主體。請勿加入 serviceAccount: 前置字元。

  4. 在「Select a role」(選取角色) 選單中,選取「Logs Writer」(記錄寫入者)。

  5. 按一下 [儲存]。

產生記錄項目,協助驗證接收器

如要確認匯總接收器設定正確無誤,請嘗試下列做法:

  1. 產生應轉送至記錄 bucket 的稽核記錄項目。

    • 如果貴機構有許多 Google Cloud 專案,您可能已有足夠的稽核記錄流量,因此不需要為驗證目的建立任何專案。前往下一步。

    • 否則,請前往其他專案,建立 Compute Engine VM 執行個體,然後刪除您建立的執行個體。 建立、啟動及刪除 VM 時,系統會寫入稽核記錄。

  2. 請按照「在 Logs Explorer 頁面中查看記錄」一節的程序操作,即可查看稽核記錄。請務必選取 _AllLogs 檢視畫面。

設定記錄 bucket 中記錄檢視畫面的讀取權限

建立記錄值區時,Cloud Logging 會自動建立名為 _AllLogs 的記錄檢視。這個檢視畫面會顯示記錄檔 bucket 中儲存的所有記錄項目。

如要限制主體只能存取特定記錄項目,請建立記錄檢視區塊,然後執行下列任一操作:

  • 授予 roles/logging.viewAccessor 角色,並搭配 IAM 條件,將授權限制在記錄檢視畫面。

  • 在與記錄檢視畫面相關聯的 IAM 政策中,授予主體存取權。如果您要建立大量記錄檢視畫面,建議採用這種做法。

如要進一步瞭解這兩種方法,請參閱「控管記錄檢視畫面存取權」。

在下列步驟中,您會將 roles/logging.viewAccessor 角色授予主體,並設定 IAM 條件,將授權限制在名為 _AllLogs 的檢視區塊:

  1. 前往 Google Cloud 控制台的「IAM」頁面:

    前往 IAM

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。

  2. 選取含有記錄檔 bucket 的 Google Cloud 專案。

  3. 按一下「新增」圖示 。

  4. 在「New principal」(新增主體) 欄位中新增主體。

  5. 在「Select a role」(選取角色) 選單中,選取「Logs Views Accessor」(記錄檢視存取者)。

    如果未為這個角色新增條件,主體就能存取 Google Cloud 專案中所有使用者定義的記錄儲存區,查看所有記錄檢視畫面。

  6. 在繫結中新增 IAM 條件:

    1. 按一下「新增條件」,然後輸入標題和說明。
    2. 在「條件類型」選單中捲動至「資源」,然後選取「名稱」。
    3. 在「運算子」選單中,選取「結尾為」。
    4. 在「值」欄位中,輸入記錄檢視區塊的完整名稱:

      locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
      
    5. 按一下「儲存」即可儲存條件。

  7. 按一下「儲存」即可儲存繫結。

在「Logs Explorer」頁面中查看記錄項目

如要查看記錄 bucket 中的記錄項目,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。

  2. 選取「調整範圍」。

  3. 在「縮小範圍」面板中,選取「記錄檢視畫面」。

  4. 選取要查看記錄項目的記錄檢視。舉例來說,如要查看所有記錄項目,請選取名為 _AllLogs 的檢視畫面。

  5. 按一下「套用」。

    Logs Explorer會重新整理,顯示記錄檔 bucket 中的記錄項目。如要瞭解如何使用記錄檔探索工具,請參閱「使用記錄檔探索工具」。