非攔截式匯總接收器可讓您將整個Google Cloud 機構的記錄項目轉送至中央位置,同時允許子資源轉送及儲存這些記錄的副本。在本教學課程中,您將建立機構層級的非攔截匯總接收器,將機構的稽核記錄轉送至 Google Cloud 專案,再由專案層級接收器轉送至中央記錄檔 bucket。接著,您可以在該 bucket 中設定記錄檢視區的讀取權限,並在 Logs Explorer 中查詢匯總稽核記錄。
您也可以將匯總接收器設為攔截,控管子資源中可查詢或轉送的記錄項目。詳情請參閱「匯總接收器總覽」。如果您要設定新機構,也可以在Google Cloud 設定程序中,設定集中式記錄儲存空間。
事前準備
請務必確認以下幾點:
-
如要取得建立組織層級匯總接收器,將記錄項目轉送至專案,以集中儲存所需的權限,請要求管理員授予您下列 IAM 角色:
-
如要建立匯總接收器,請在貴組織中啟用記錄設定寫入者 (
roles/logging.configWriter) 角色 -
如要授予服務帳戶 IAM 角色並建立記錄檔 bucket,請在專案中具備擁有者 (
roles/owner) 角色
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
-
如要建立匯總接收器,請在貴組織中啟用記錄設定寫入者 (
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。
建立記錄檔 bucket
記錄檔 bucket 會儲存從其他專案、資料夾或機構轉送的記錄項目。Google Cloud 詳情請參閱「設定記錄儲存空間」。
如要在要匯總記錄項目的 Google Cloud 專案中建立記錄檔 bucket,請完成下列步驟:
開啟殼層。
舉例來說,如要使用 Cloud Shell,請執行下列操作:
-
前往 Google Cloud 控制台:
- 按一下工具列中的 terminal「啟用 Cloud Shell」。
-
在殼層中執行
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確認記錄檔 bucket 是否已建立:
gcloud logging buckets list --project=PROJECT_ID指令的回應是專案中的記錄檔 bucket 清單。
記錄檔值區的保留期限可供設定。如要設定記錄檔 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_NAMEPROJECT_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"
建立匯總接收器
匯總接收器會將組織或資料夾所含資源的記錄項目,合併並轉送至目的地。
在本教學課程中,您會建立不攔截的匯總接收器。這表示由匯總接收器轉送的每個記錄項目,也會由記錄項目來源資源中的接收器轉送。舉例來說,專案中產生的稽核記錄會由匯總接收器和該專案中的接收器轉送。因此,您可能會儲存多個記錄項目副本。
您也可以建立攔截接收器。詳情請參閱「匯總接收器總覽」。
在機構層級設定接收器
如要建立非攔截式匯總接收器,並將記錄項目傳送至專案,請完成下列步驟:
執行
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 專案和資料夾的記錄項目。詳情請參閱「將機構和資料夾層級的記錄檔彙整並轉送至支援的目的地」。確認接收器已建立:
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 控制台授予權限,或編輯 Identity and Access Management (IAM) 政策,詳情請參閱「設定目的地權限」。
如果目的地 Google Cloud 專案受到 VPC Service Controls service perimeter 保護,您也必須在目的地 perimeter 中新增 ingress 規則,允許接收器服務帳戶存取。您不需要為非匯總接收器設定輸入規則。詳情請參閱「彙整機構和資料夾層級的記錄,並轉送至支援的目的地:限制」。
如要授予接收器寫入記錄項目的權限,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「IAM」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。
選取含有記錄檔 bucket 的 Google Cloud 專案。
按一下「 授予存取權」,然後將服務帳戶新增為新主體。請勿加入
serviceAccount:前置字元。在「Select a role」(選取角色) 選單中,選取「Logs Writer」(記錄寫入者)。
按一下 [儲存]。
產生記錄項目,協助驗證接收器
如要確認匯總接收器設定正確,請嘗試下列操作:
產生應轉送至記錄 bucket 的稽核記錄項目。
如果貴組織有許多 Google Cloud 專案,稽核記錄流量可能已足夠,不需要為了驗證而建立任何流量。前往下一步。
否則,請前往其他專案,建立 Compute Engine VM 執行個體,然後刪除您建立的執行個體。 建立、啟動和刪除 VM 時,系統會寫入稽核記錄。
按照「在 Logs Explorer 頁面中查看記錄項目」一文中的步驟,查看稽核記錄。請務必選取
_AllLogs檢視畫面。
設定記錄 bucket 中記錄檢視畫面的讀取權限
建立記錄檔 bucket 時,Cloud Logging 會自動建立名為 _AllLogs 的記錄檔檢視。這個檢視畫面會顯示儲存在記錄檔 bucket 中的所有記錄項目。
如要限制主體只能存取特定記錄項目,請建立記錄檢視,然後執行下列任一操作:
授予他們「記錄檢視存取子」角色 (
roles/logging.viewAccessor),並加上 IAM 條件,限制授予記錄檢視。在與記錄檢視畫面相關聯的 IAM 政策中,授予主體存取權。如要建立大量記錄檢視,建議採用這種做法。
如要進一步瞭解這兩種方法,請參閱「控管記錄檢視畫面的存取權」。
在下列步驟中,您會將記錄檢視存取子角色 (roles/logging.viewAccessor) 授予主體,並設定 IAM 條件,將授予範圍限制在名為 _AllLogs 的檢視:
-
前往 Google Cloud 控制台的「IAM」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」(IAM 與管理) 的結果。
選取包含記錄檔 bucket 的 Google Cloud 專案。
按一下「新增」圖示 。
在「New principal」(新增主體) 欄位中新增主體。
在「Select a role」(選取角色) 選單中,選取「Logs Views Accessor」(記錄檢視存取子)。
如未在這個角色新增條件,主體就能存取 Google Cloud 專案中所有使用者定義記錄檔 bucket 的所有記錄檔檢視表。
在繫結中新增 IAM 條件:
- 按一下「新增條件」,然後輸入標題和說明。
- 在「Condition type」(條件類型) 選單中,前往「Resource」(資源),然後選取「Name」(名稱)。
- 在「運算子」選單中,選取「結尾為」。
在「Value」(值) 欄位中,輸入記錄檔檢視表的全名:
locations/LOCATION/buckets/BUCKET_NAME/views/_AllLogs按一下「儲存」即可儲存條件。
按一下「Save」(儲存) 即可儲存繫結。
在「Logs Explorer」頁面中查看記錄項目
如要查看記錄檔 bucket 中的記錄項目,請按照下列步驟操作:
-
前往 Google Cloud 控制台的 「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
選取「調整範圍」。
在「縮小範圍」面板中,選取「記錄檢視畫面」。
選取要查看記錄項目的記錄檢視。舉例來說,如要查看所有記錄項目,請選取名為
_AllLogs的檢視畫面。按一下「套用」。
「Logs Explorer」頁面會重新整理,顯示記錄檔儲存空間中的記錄項目。如要進一步瞭解如何使用 Logs Explorer,請參閱「使用 Logs Explorer」。