稽核 SSH 存取權的最佳做法


本文說明稽核 Linux 虛擬機器 (VM) 執行個體 SSH 存取權的最佳做法。

Cloud 稽核記錄可讓您分析過去的活動,並在調查影響Google Cloud 資源的可疑活動時,提供重要的資訊來源。

下列各節包含可協助您維護不可否認的稽核記錄的最佳做法:

本文著重於在 Google Cloud上使用 SSH 時,針對 Google Cloud 或特別相關的做法。本文件不涵蓋特定 SSH 用戶端或伺服器實作項目的最佳做法。

啟用 IAP 的資料存取記錄

為確保 IAP 在使用者嘗試建立 SSH 連線時,會在 Cloud 稽核記錄中新增項目,請為 Cloud Identity-Aware Proxy API啟用資料存取記錄。資料存取記錄預設為停用,除非您擔心記錄檔的數量,否則請為所有含有 VM 執行個體的專案啟用資料存取記錄。

監控與 SSH 使用情形相關的稽核記錄項目

SSH 使用情形可能會影響 VM 和相關工作負載的安全性,因此請務必記錄成功連線和存取失敗的稽核記錄。這點在實際作業環境中尤其重要,因為安全殼層使用權應視為敏感動作。

如要追蹤 SSH 存取權,並找出可疑行為,請務必監控與 SSH 相關的記錄項目,包括:

服務 方法 說明
IAP AuthorizeUser 表示透過 IAP TCP 轉送功能嘗試建立連線。記錄項目包含使用者裝置、已滿足的存取層級和未滿足的存取層級詳細資料。
OS 登入 google.cloud.oslogin.dataplane.OsLoginDataPlaneService.CheckPolicy 表示嘗試登入
OS 登入 google.cloud.oslogin.dataplane.OsLoginDataPlaneService.StartSession 表示 OS Login 2FA 挑戰開始
OS 登入 google.cloud.oslogin.dataplane.OsLoginDataPlaneService.ContinueSession 表示 OS Login 2FA 挑戰已完成
Compute Engine v1.compute.projects.setCommonInstanceMetadata 如果 projectMetadataDelta 欄位包含 `ssh-keys` 項目,則這項記錄項目表示在專案中繼資料中新增、移除或修改了安全殼層金鑰。
Compute Engine v1.compute.instances.setMetadata 如果 projectMetadataDelta 欄位包含 `ssh-keys` 或 `sshKeys` 的項目,則這項記錄指出在執行個體中繼資料中新增、移除或修改了安全殼層金鑰。
Compute Engine google.ssh-serialport.v1.connect 表示嘗試連線至序列主控台
IAM beta.compute.instances.setIamPolicyv1.compute.instances.setIamPolicy 表示 VM 執行個體的 IAM 政策有所變更。IAM 政策變更可能會影響使用者修改執行個體中繼資料的權限。
IAM SetIamPolicy 表示專案的 IAM 政策有所變更。IAM 政策變更可能會影響使用者修改專案中繼資料和專案的資料存取稽核記錄設定的能力。

所有稽核記錄記錄都包含 principalEmail 欄位,用於識別啟動活動的使用者。

如要取得 VM 活動的完整資訊,請將 VM 設為將 /var/log/messages 和 SSH 伺服器記錄檔匯出至 Cloud Logging,例如使用 作業套件代理程式

請注意,根據您使用的 Linux 發行版,SSH 伺服器記錄檔可能會寫入不同的記錄檔 (通常是 /var/log/auth.log/var/log/secure),且這些記錄檔不受Ops Agent 使用的預設設定的規範。