跨帳戶跨區域日誌集中化 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

跨帳戶跨區域日誌集中化

Amazon CloudWatch Logs 資料集中使用 AWS Organizations ,使用跨帳戶和跨區域集中化規則,從多個成員帳戶收集日誌資料到單一資料儲存庫。可以定義規則,將日誌資料從多個帳戶和 AWS 區域 自動複寫到組織內的集中帳戶。此功能可簡化日誌整合,以改善整個 AWS 基礎設施的集中式監控、分析和合規。

CloudWatch Logs 資料集中化提供組態彈性,以滿足操作和安全性需求,例如在目的地帳戶內的規則設定期間設定備份區域的能力,以確保更高的彈性。此外,您可以完全控制從來源帳戶複製的日誌群組的加密行為,以處理最初使用客戶受管 KMS 金鑰加密的資料。

注意

CloudWatch Logs 集中化功能只會在您建立集中化規則後,處理抵達來源帳戶的新日誌資料。歷史日誌資料 (規則建立之前已存在的日誌) 不會集中。

資料集中化概念

開始使用 CloudWatch Logs 資料集中化之前,請先熟悉下列概念:

集中化規則

定義如何將來源帳戶和區域的日誌資料複寫至目的地帳戶和區域的組態。規則指定來源條件和目的地設定。

來源帳戶

日誌資料產生的 AWS 帳戶。來源帳戶的日誌事件會根據您定義的集中化規則複寫到目的地帳戶。

目的地帳戶

儲存複寫日誌資料的目的地 AWS 帳戶。此帳戶可做為日誌分析和監控的集中位置。

備份區域

目的地帳戶中的選用次要區域,可複寫日誌資料,以提高彈性和災難復原目的。

CloudWatch Logs 中的加密

在 CloudWatch Logs 中,日誌群組資料一律會加密。根據預設,CloudWatch Logs 會使用伺服器端加密搭配 256 位元進階加密標準 Galois/計數器模式 (AES-GCM) 來加密靜態日誌資料。或者,您可以使用 AWS Key Management Service 進行此加密。如需詳細資訊,請參閱 CloudWatch Logs 加密文件

  • 集中化期間加密的運作方式:CloudWatch Logs 集中化會在擷取時間主動將日誌資料從來源帳戶複製到目的地帳戶。在此過程中,您的資料會使用 AWS 擁有的服務金鑰在傳輸中保持加密。來源和目的地日誌群組中的靜態資料會使用您選擇的加密方法 (客戶管理或 AWS 擁有的 KMS 金鑰) 進行加密。如果您在目的地日誌群組中使用客戶受管 KMS 金鑰,請將標籤新增至 LogsManaged = true kms 金鑰,供 Centralization 服務存取。

  • 需要 KMS 許可時

    • 如果您在來源帳戶中使用客戶受管 KMS 金鑰,CloudWatch Logs 會在下列範例案例中要求 KMS 許可

      • 輸送量管理:達到集中式輸送量限制時,系統會使用客戶受管 KMS 金鑰暫時加密日誌資料,直到頻寬可用為止。

      • 資料保護和修訂:當來源日誌群組啟用資料保護政策時,CloudWatch Logs 需要解密許可才能存取原始日誌資料以集中。

重要

集中化規則由 AWS Organizations 管理帳戶或委派管理員管理。若要從集中化中排除客戶受管 KMS 加密的日誌群組,請將規則設定設為「不要集中使用 AWS KMS 金鑰加密的日誌群組」。

設定日誌集中

若要設定 CloudWatch Logs Centralization,您需要設定集中化規則,以定義日誌資料如何從來源帳戶中的日誌群組流向目的地帳戶中的日誌群組。

啟用集中化規則並將日誌事件複寫到目的地帳戶後,您可以在具有增強篩選功能的集中式日誌群組上建立指標、訂閱和帳戶篩選條件。這些篩選條件可鎖定來自特定來源帳戶和區域的日誌事件,並可發出來源帳戶和區域資訊做為指標維度。如需詳細資訊,請參閱使用篩選條件從日誌事件建立指標

先決條件

  • AWS Organizations 必須設定 ,且來源和目的地帳戶必須都屬於組織。

  • 必須為 CloudWatch、管理帳戶和目的地帳戶啟用信任存取,以便提供對日誌資料的存取。

    注意

    建議透過主控台啟用受信任存取,以自動建立所需的服務連結角色 (SLR)。如果透過其他方法啟用受信任存取,則需要單獨建立服務連結角色。

自訂目的地日誌群組名稱

建立集中化規則時,您可以使用 屬性自訂目的地日誌群組名稱的結構方式。這些屬性會在建立日誌群組時自動取代為實際值,讓您可以在目的地帳戶中以階層方式組織日誌。根據預設,只會使用 ${source.logGroup} 屬性,該屬性會合併目的地帳戶中名稱相同的所有日誌群組。如果變數無法解析,它會繼承階層中其父變數的值。

可用的屬性

您可以在目的地日誌群組名稱模式中使用下列屬性:

目的地日誌群組名稱屬性
屬性 Description
${source.accountId} 日誌來源 AWS 的帳戶 ID。
${source.region} AWS 區域 日誌來源的 。
${source.logGroup} 來源帳戶的原始日誌群組名稱。
${source.org.id} 來源帳戶的 AWS Organizations ID。
${source.org.ouId} 來源帳戶的組織單位 ID
${source.org.rootId} 組織根 ID
${source.org.path} 從帳戶到根目錄的完整組織路徑

範例

保留原始日誌群組結構

模式:/centralized/${source.accountId}${source.logGroup}

結果:/centralized/123456789012/aws/lambda/my-function

依帳戶和區域組織

模式:/centralized/${source.accountId}/${source.region}

結果:/centralized/123456789012/us-east-1

依組織結構組織

模式:/logs/${source.org.id}/${source.org.ouId}/${source.accountId}

結果:/logs/o-abc123/ou-xyz-12345678/123456789012

簡單平面結構

模式:/centralized-logs

結果:/centralized-logs

最佳實務

  • 包含來源帳戶 ID,以輕鬆識別來自哪些帳戶日誌。

  • 如果您要從多個區域集中化,請包含來源區域。

  • 結構目的地日誌群組名稱少於 512 個字元。CloudWatch Logs 強制執行最多 512 個字元的日誌群組名稱長度。

建立集中化規則

使用下列程序建立集中化規則,將日誌資料從來源帳戶複寫至目的地帳戶。

建立集中化規則
  1. 導覽至組織管理或委派管理員帳戶中的 CloudWatch 主控台。

  2. 選擇設定

  3. 導覽至組織索引標籤。

  4. 選擇設定規則

  5. 設定下列欄位來指定來源詳細資訊,然後選擇下一步

    1. 集中化規則名稱:輸入集中化規則的唯一名稱。

    2. 來源帳戶:定義來源選取條件,以挑選將集中遙測資料的帳戶。選擇條件可能包括:

      • 組織中的成員帳戶清單

      • 組織中組織單位的清單

      • 整個組織

      您可以透過兩種模式提供選擇條件:

      • 建置器:產生來源選取條件的按一下式體驗

      • 編輯器:自由格式文字方塊,用於提供來源選取條件

      來源選取條件支援的語法:

      • 支援的金鑰:OrganizationId | OrganizationUnitId | AccountId | *

      • 支援的運算子: = | IN | OR

    3. 來源區域:選取要尋找要集中的遙測資料的區域清單。

  6. 設定下列欄位來指定目的地詳細資訊,然後選擇下一步

    1. 目的地帳戶:選取組織中做為遙測資料中央目的地的帳戶。

    2. 目的地區域:選取存放集中式遙測資料副本的主要區域。

    3. 備份區域:選擇性地選取存放集中式遙測資料的第二個副本的區域。

  7. 設定下列欄位來指定遙測資料,然後選擇下一步

    1. 日誌群組:選擇下列其中一個選項:

      • 所有日誌群組:集中來源帳戶中所有日誌群組的日誌。

      • 篩選日誌群組:將來源帳戶中日誌群組子集的日誌集中,以符合日誌群組選擇條件。您可以透過兩種模式提供選擇條件:

        • 建置器:產生日誌群組選取條件的點選式體驗

        • 編輯器:自由格式文字方塊,提供日誌群組選擇條件

        日誌群組選取條件支援的語法:

        • 支援的金鑰:LogGroupName | *

        • 支援的運算子: = | != | IN | NOT IN | AND | OR | LIKE | NOT LIKE

    2. KMS 加密日誌群組

      重要

      如果集中化規則中提供的 KMS 金鑰不允許 CloudWatch Logs 使用日誌,CloudWatch 集中化規則將無法將日誌從來源帳戶交付到目的地日誌群組。 CloudWatch 如果您在目的地日誌群組中使用客戶受管 KMS 金鑰,請將 LogsManaged = true 標籤新增至 kms 金鑰。如需詳細資訊,請參閱步驟 2:設定 KMS 金鑰許可

      請選擇下列其中一個選項:

      • 使用目的地特定的客戶受管 KMS 金鑰將以客戶受管 KMS 金鑰加密的來源日誌群組集中:將來自以客戶受管 KMS 金鑰加密的來源日誌群組的日誌事件集中到目的地帳戶中以客戶受管 KMS 金鑰加密的目的地日誌群組。

        選取此設定時,您還必須設定下列項目:

        • 目的地加密金鑰 ARN:目的地帳戶和主要目的地區域中客戶受管 KMS 金鑰的 ARN,要與新建立的目的地日誌群組建立關聯。

        • 備份目的地加密金鑰 ARN (如果選取備份區域):目的地帳戶和備份目的地區域中客戶受管 KMS 金鑰的 ARN,要與新建立的目的地日誌群組建立關聯。

        • 略過集中至未加密的目的地日誌群組 (選用):如果日誌群組已存在,而沒有客戶受管 KMS 金鑰,CloudWatch 就無法更新其加密。選擇此選項,即可將以客戶受管 KMS 金鑰加密的來源日誌群組中的日誌事件集中,略過至與客戶受管 KMS 金鑰無關的目的地日誌群組。

      • 使用 AWS 擁有的 KMS 金鑰將以客戶受管 KMS 金鑰加密的日誌群組集中化:將來自以客戶受管 KMS 金鑰加密的來源日誌群組的日誌事件集中至使用 AWS 擁有的 KMS 金鑰加密的新建立目的地日誌群組。

      • 請勿集中使用客戶受管 KMS 金鑰加密的日誌群組:從使用客戶受管 KMS 金鑰加密的來源日誌群組略過日誌事件的集中化。

  8. 檢閱集中化規則,選擇性地進行任何最後一分鐘編輯,然後選擇建立集中化政策

修改集中化規則

使用下列程序來修改現有的集中化規則。

修改集中化規則
  1. 導覽至組織管理或委派管理員帳戶中的 CloudWatch 主控台。

  2. 選擇設定

  3. 導覽至組織索引標籤。

  4. 選擇管理規則

  5. 選取要更新的規則,然後選擇編輯

  6. 視需要更新規則組態,選擇下一步以繼續每個步驟。

  7. 在步驟 4 檢閱和設定中,選擇更新集中政策

檢視集中化規則

使用下列程序來檢視現有集中化規則的詳細資訊。

檢視集中化規則
  1. 導覽至組織管理或委派管理員帳戶中的 CloudWatch 主控台。

  2. 選擇設定

  3. 導覽至組織索引標籤。

  4. 選擇管理規則

  5. 檢視所有現有集中化規則的清單,然後選擇特定規則名稱以檢視其詳細資訊。

刪除集中化規則

使用下列程序刪除現有的集中化規則。

刪除集中化規則
  1. 導覽至組織管理或委派管理員帳戶中的 CloudWatch 主控台。

  2. 選擇設定

  3. 導覽至組織索引標籤。

  4. 選擇管理規則

  5. 選取要刪除的規則,然後選擇刪除

  6. 確認刪除,然後選擇 Delete (刪除)。

監控和疑難排解集中化規則

您可以使用 CloudWatch 指標、CloudWatch Logs 主控台和 AWS CloudTrail 日誌來監控集中化規則的狀態和效能。這可協助您確保日誌資料已成功複寫,並識別集中化組態的任何問題。

CloudWatch Logs 提供:

  1. 每個集中化規則的規則運作狀態

    1. 選擇設定

    2. 導覽至組織索引標籤。

    3. 選擇管理規則

  2. 使用 記錄 API 呼叫 AWS CloudTrail

  3. CloudWatch 也會發佈用於集中化的指標,包括複寫的日誌事件、錯誤和限流。如需這些指標及其維度的詳細資訊,請參閱 集中化指標和維度

集中化規則運作狀態

每個集中化規則都有運作狀態,指出其是否正常運作。您可以透過主控台或以程式設計方式使用 API 檢查規則運作狀態。

規則運作狀態包括:

  • HEALTHY:規則正常運作,並依設定複寫日誌資料

  • UNHEALTHY:規則遇到問題,可能無法正確複寫資料

  • PROVISIONING:組織的集中化正在進行設定。

當規則標示為 UNHEALTHY 時, FailureReason 欄位會提供需要解決之特定問題的詳細資訊。

使用 監控集中化 API 呼叫 AWS CloudTrail

AWS CloudTrail 會記錄對集中服務發出的 API 呼叫,讓您追蹤組態變更,並針對屬於 之帳戶的問題進行疑難排解 AWS Organizations。

集中化的關鍵 CloudTrail 事件包括:

  • CreateCentralizationRuleForOrganization:建立新的集中化規則時

  • UpdateCentralizationRuleForOrganization:修改現有規則時

  • DeleteCentralizationRuleForOrganization:刪除規則時

  • GetCentralizationRuleForOrganization:擷取規則詳細資訊時

  • ListCentralizationRulesForOrganization:列出規則時

您可以使用 CloudTrail 日誌來稽核集中化組態變更,並將其與效能問題或複寫失敗建立關聯。

監控建議

為了確保集中化正常運作,建議您在提供給 CloudWatch 指標的金鑰集中化指標上設定 CloudWatch 警示。此主動監控可協助您及早偵測問題,並在整個組織中維持可靠的日誌集中化。

要監控的關鍵指標包括:

  • IncomingCopiedBytes:監控成功複寫至目的地帳戶的日誌資料量。突然下降或缺少此指標可能表示集中化問題。

  • CentralizationError:針對集中化程序中的任何錯誤設定警示,以快速識別和解決問題。

  • CentralizationThrottled:監控可能影響日誌複寫效能的限流事件。

如需可用集中化指標及其維度的完整清單,請參閱 集中化指標和維度

如果日誌未如預期集中,請檢閱下列可能阻止日誌集中化的常見案例。

歷史日誌資料

CloudWatch Logs 集中化功能只會在您建立集中化規則後,處理抵達來源帳戶的新日誌資料。歷史日誌資料 (規則建立之前已存在的日誌) 不會集中。

KMS 金鑰許可

如果集中化規則中提供的 KMS 金鑰不允許 CloudWatch Logs 使用日誌,集中化規則將無法將日誌從來源帳戶交付到目的地日誌群組。確保 KMS 金鑰政策將必要的許可授予 CloudWatch Logs。如需詳細資訊,請參閱步驟 2:設定 KMS 金鑰許可

客戶受管 KMS 金鑰組態

如果您選取在規則建立期間不集中使用客戶受管 KMS 金鑰加密的日誌群組,則會略過使用客戶受管 KMS 金鑰加密的來源日誌群組中的日誌事件,而不會集中。

目的地加密不相符

如果目的地日誌群組已存在與集中規則指定的不同 KMS 加密組態,且衝突解決設定為 SKIP,則會捨棄記錄並發出DestinationEncryptionMismatch錯誤。例如,當目的地具有預設加密,但規則指定客戶受管 KMS 金鑰時,就會發生這種情況。

未啟用信任的存取

必須為 中的 CloudWatch 啟用受信任存取 AWS Organizations ,以便管理帳戶和目的地帳戶提供對日誌資料的存取。

來源選取條件

確認已正確設定集中化規則的來源選取條件:

  • 帳戶和區域:確保日誌來源的來源帳戶和區域包含在規則中。來自規則中未指定之帳戶或區域的日誌群組將不會集中。

  • 日誌群組篩選條件:如果您設定日誌群組篩選條件,則只會集中處理符合指定條件的日誌群組。確認您的日誌群組選擇條件包含您預期集中的日誌群組。

  • 組織成員資格:來源和目的地帳戶都必須屬於同一個 AWS Organizations 組織。組織外部的帳戶無法參與集中化。

已達到日誌群組配額限制

如果目的地帳戶已達到其日誌群組配額限制,則無法建立新的日誌群組以進行集中。確認目的地帳戶的配額足以容納來自所有來源帳戶的集中式日誌群組。如有需要,您可以請求提高配額。

超過日誌串流名稱長度限制

日誌串流名稱具有最大長度限制。當集中化將日誌串流複寫到目的地帳戶時,尾碼會新增至日誌串流名稱。如果產生的日誌串流名稱超過允許的長度上限,則會捨棄記錄,並向客戶帳戶發出InvalidLogStream錯誤。

規則運作狀態

在 主控台或使用 GetCentralizationRuleForOrganization API 檢查集中化規則的運作狀態。如果規則標示為 UNHEALTHY,請檢閱 FailureReason 欄位以取得有關問題的特定詳細資訊。

若要診斷集中化問題,請在 主控台中檢閱集中化規則的運作狀態、檢查 CloudWatch 指標是否有錯誤和限流,以及檢查 AWS CloudTrail 日誌是否有 API 呼叫失敗。如需集中化指標的詳細資訊,請參閱 集中化指標和維度