本文說明如何使用非攔截式匯入集區,管理組織內資源產生的記錄項目。 Google Cloud
您可以設定匯總接收器進行攔截或不攔截,這取決於您是否要控制可查詢的記錄項目,或透過子項資源中的接收器進行路由。在本教學課程中,您將建立匯總接收器,將貴機構的稽核記錄轉送至Google Cloud 專案,然後將匯總的稽核記錄轉送至記錄檔 bucket。詳情請參閱匯總接收器總覽。
在本教學課程中,您將執行下列步驟:
首先,請在要儲存匯總記錄項目的Google Cloud 專案中,建立記錄值區和記錄匯入項目。
接下來,您會在組織層級建立非攔截的匯總接收器,將記錄項目轉送至包含記錄值區的 Google Cloud 專案。
接著,您可以在新的記錄值區上設定記錄檢視畫面的讀取權限。
最後,您可以透過「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.
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 專案中建立記錄值區,請完成下列步驟:
開啟殼層。
例如,如要使用 Cloud Shell,請執行下列操作:
-
前往 Google Cloud 控制台:
- 在工具列中,按一下 terminal「啟用 Cloud Shell」。
-
在 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
確認記錄值區是否已建立:
gcloud logging buckets list --project=PROJECT_ID
指令的回應是專案中的記錄資料集清單。
記錄檔值區可設定保留期限。如要設定記錄值區中記錄項目的保留期限,請使用
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" \
建立匯總接收器
匯總接收器會將機構或資料夾內資源的記錄項目合併,並轉送至目的地。
在本教學課程中,您會建立非攔截的匯入集區。也就是說,每個由匯總接收器轉送的記錄項目,也會由記錄項目來源資源中的接收器轉送。舉例來說,來自專案的稽核記錄會由匯總接收器和該專案中的接收器轉送。因此,您可以儲存多個記錄項目的複本。
您可以建立攔截匯出端。詳情請參閱匯總接收器總覽。
在機構層級設定接收器
如要建立非攔截的匯入集區,並將記錄項目路由至專案,請完成下列步驟:
執行
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 專案和資料夾的記錄項目都會轉送。詳情請參閱「彙整及轉送組織層級記錄至支援的目的地」。確認已建立接收器:
gcloud logging sinks list --organization=ORGANIZATION_ID
取得服務帳戶名稱:
gcloud logging sinks describe SINK_NAME --organization=ORGANIZATION_ID
輸出看起來類似以下內容:
writerIdentity: serviceAccount:o1234567890-ORGANIZATION_ID@gcp-sa-logging.iam.gserviceaccount.com
將
serviceAccount
欄位的值複製到剪貼簿。
授予接收器存取權
建立匯總匯流程後,您必須授予匯流程權限,才能將記錄項目寫入您設為目標的專案。您可以使用 Google Cloud 控制台或編輯身分與存取權管理 (IAM) 政策來授予權限,如「設定目的地權限」一文所述。
如要授予接收端寫入記錄項目的權限,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「IAM」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM 與管理」的結果。
選取含有記錄檔值區的 Google Cloud 專案。
按一下
「授予存取權」,然後將服務帳戶新增為新主體。請勿加入 serviceAccount: 前置字元。在「Select a role」(請選擇角色) 選單中,選取「Logs Writer」(記錄寫入者)。
按一下 [儲存]。
產生記錄項目,協助驗證接收器
如要確認匯總接收器是否已正確設定,請嘗試以下操作:
產生應轉送至記錄 bucket 的稽核記錄項目。
如果貴機構有許多 Google Cloud 專案,您可能會有足夠的稽核記錄流量,因此不需要建立任何稽核記錄來驗證。前往下一步。
否則,請前往其他專案建立 Compute Engine VM 執行個體,然後刪除您建立的執行個體。建立、啟動及刪除 VM 時,系統會寫入稽核記錄。
如要查看稽核記錄,請按照「在 Logs Explorer 頁面中查看記錄檔」一節中的步驟操作。請務必選取
_AllLogs
檢視畫面。
設定記錄桶中記錄檢視畫面的讀取權限
建立記錄值區時,Cloud Logging 會自動建立名為 _AllLogs
的記錄檢視畫面。這個檢視畫面會納入記錄檔 bucket 中儲存的每個記錄項目。
如要限制使用者只能存取特定記錄項目,請建立記錄檢視畫面,然後執行下列任一操作:
授予
roles/logging.viewAccessor
角色,並搭配限制授予記錄 view 的 IAM 條件。在與記錄檢視畫面相關聯的 IAM 政策中,授予主體存取權。建議您在建立大量記錄檢視畫面時採用這種做法。
如要進一步瞭解這兩種方法,請參閱「控管對記錄檢視畫面的存取權」。
在下列步驟中,您會將 roles/logging.viewAccessor
角色授予主體,並設定 IAM 條件,將授權限制在名為 _AllLogs
的檢視表:
-
前往 Google Cloud 控制台的「IAM」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM 與管理」的結果。
選取含有記錄檔 bucket 的 Google Cloud 專案。
按一下
「新增」。在「新增主體」欄位中新增主體。
在「Select a role」(選取角色) 選單中,選取「Logs Views Accessor」(記錄檢視畫面存取工具)。
如果您未為這個角色新增條件,則實體可存取 Google Cloud 專案中所有使用者定義的記錄資料集的所有記錄檢視畫面。
在繫結中新增 IAM 條件:
- 按一下「新增條件」,然後輸入標題和說明。
- 在「Condition type」選單中,捲動至「Resource」,然後選取「Name」。
- 在「運算子」選單中,選取「結尾為」。
在「Value」欄位中,輸入記錄檢視畫面的全名:
locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs
按一下「儲存」,儲存條件。
按一下「儲存」,即可儲存繫結。
在「Logs Explorer」頁面中查看記錄項目
如要查看記錄檔值區中的記錄項目,請執行下列操作:
-
前往 Google Cloud 控制台的「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
選取「Refine Scope」。
在「Refine scope」面板中,選取「Log view」。
選取要查看記錄項目的記錄檢視。舉例來說,如要查看所有記錄項目,請選取名為
_AllLogs
的檢視畫面。按一下 [套用]。
記錄檔探索工具會重新整理,顯示記錄檔 bucket 中的記錄項目。如要進一步瞭解如何使用記錄檔探索工具,請參閱「使用記錄檔探索工具」。