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

本文說明如何使用非攔截式匯總接收器,管理 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:要在其中建立記錄檔 bucket 的專案 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。記錄檔 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 中記錄檢視畫面的讀取權限

建立記錄檔 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. 在「Value」(值) 欄位中,輸入記錄檢視區塊的完整名稱:

      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. 按一下「套用」

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