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

非攔截式匯總接收器可讓您將整個Google Cloud 機構的記錄項目轉送至中央位置,同時允許子資源轉送及儲存這些記錄的副本。在本教學課程中,您將建立機構層級的非攔截匯總接收器,將機構的稽核記錄轉送至 Google Cloud 專案,再由專案層級接收器轉送至中央記錄檔 bucket。接著,您可以在該 bucket 中設定記錄檢視區的讀取權限,並在 Logs Explorer 中查詢匯總稽核記錄。

您也可以將匯總接收器設為攔截,控管子資源中可查詢或轉送的記錄項目。詳情請參閱「匯總接收器總覽」。如果您要設定新機構,也可以在Google Cloud 設定程序中,設定集中式記錄儲存空間。

事前準備

請務必確認以下幾點:

  • 如要取得建立組織層級匯總接收器,將記錄項目轉送至專案,以集中儲存所需的權限,請要求管理員授予您下列 IAM 角色:

    • 如要建立匯總接收器,請在貴組織中啟用記錄設定寫入者 (roles/logging.configWriter) 角色
    • 如要授予服務帳戶 IAM 角色並建立記錄檔 bucket,請在專案中具備擁有者 (roles/owner) 角色

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

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

  • 在 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);不支援區域端點 (REP)。記錄檔 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) 政策,詳情請參閱「設定目的地權限」。

如果目的地 Google Cloud 專案受到 VPC Service Controls service perimeter 保護,您也必須在目的地 perimeter 中新增 ingress 規則,允許接收器服務帳戶存取。您不需要為非匯總接收器設定輸入規則。詳情請參閱「彙整機構和資料夾層級的記錄,並轉送至支援的目的地:限制」。

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

  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 專案中所有使用者定義記錄檔 bucket 的所有記錄檔檢視表。

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

    1. 按一下「新增條件」,然後輸入標題和說明。
    2. 在「Condition type」(條件類型) 選單中,前往「Resource」(資源),然後選取「Name」(名稱)。
    3. 在「運算子」選單中,選取「結尾為」。
    4. 在「Value」(值) 欄位中,輸入記錄檔檢視表的全名:

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

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

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

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

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

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

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

  2. 選取「調整範圍」。

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

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

  5. 按一下「套用」。

    「Logs Explorer」頁面會重新整理,顯示記錄檔儲存空間中的記錄項目。如要進一步瞭解如何使用 Logs Explorer,請參閱「使用 Logs Explorer」。