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

本文說明如何使用非攔截式匯入集區,管理組織內資源產生的記錄項目。 Google Cloud

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

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

  1. 首先,請在要儲存匯總記錄項目的Google Cloud 專案中,建立記錄值區和記錄匯入項目。

  2. 接下來,您會在組織層級建立非攔截的匯總接收器,將記錄項目轉送至包含記錄值區的 Google Cloud 專案。

  3. 接著,您可以在新的記錄值區上設定記錄檢視畫面的讀取權限。

  4. 最後,您可以透過「Logs Explorer」頁面查詢及檢視記錄項目。

事前準備

請確認以下事項:

  • 如要取得設定匯集資料集區所需的權限,請要求管理員為您授予貴機構的下列 IAM 角色:

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

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

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

  • 如果您使用 VPC Service Controls,則必須在服務範圍中新增輸入規則。如要進一步瞭解 VPC Service Controls 的限制,請參閱「匯總匯出端和 VPC Service Controls 的限制」。
  • In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

建立記錄檔值區

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

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

  1. 開啟殼層。

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

    1. 前往 Google Cloud 控制台:

      前往 Google Cloud 控制台

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

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

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

    執行 gcloud logging buckets create 指令:

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

    gcloud logging buckets list --project=PROJECT_ID
    

    指令的回應是專案中的記錄資料集清單。

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

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

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

建立專案層級記錄接收器

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

如要建立接收器,將記錄項目導向您剛建立的記錄值區,請執行 gcloud logging sinks create 指令。

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

  • PROJECT_LEVEL_SINK_NAME:專案層級記錄匯出端的名稱。
  • SINK_DESTINATION:記錄項目會傳送至的記錄值區。記錄值區的目標路徑格式如下:

    logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • PROJECT_ID:建立記錄匯入項目的專案 ID。將這個選項設為建立記錄值區的專案。

  • 請加入下列選項:

    • --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:儲存記錄值區的專案 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 控制台或編輯身分與存取權管理 (IAM) 政策來授予權限,如「設定目的地權限」一文所述。

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

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

    前往「身分與存取權管理」頁面

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

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

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

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

  5. 按一下 [儲存]

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

如要確認匯總接收器是否已正確設定,請嘗試以下操作:

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

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

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

  2. 如要查看稽核記錄,請按照「在 Logs Explorer 頁面中查看記錄檔」一節中的步驟操作。請務必選取 _AllLogs 檢視畫面。

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

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

如要限制使用者只能存取特定記錄項目,請建立記錄檢視畫面,然後執行下列任一操作:

  • 授予 roles/logging.viewAccessor 角色,並搭配限制授予記錄 view 的 IAM 條件。

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

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

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

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

    前往「身分與存取權管理」頁面

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

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

  3. 按一下 「新增」

  4. 在「新增主體」欄位中新增主體。

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

    如果您未為這個角色新增條件,則實體可存取 Google Cloud 專案中所有使用者定義的記錄資料集的所有記錄檢視畫面。

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

    1. 按一下「新增條件」,然後輸入標題和說明。
    2. 在「Condition type」選單中,捲動至「Resource」,然後選取「Name」
    3. 在「運算子」選單中,選取「結尾為」
    4. 在「Value」欄位中,輸入記錄檢視畫面的全名:

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

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

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

如要查看記錄檔值區中的記錄項目,請執行下列操作:

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

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

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

  2. 選取「Refine Scope」

  3. 在「Refine scope」面板中,選取「Log view」

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

  5. 按一下 [套用]

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