監控 IAM 根使用者活動 - AWS 方案指引

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

監控 IAM 根使用者活動

創建者:莫斯特法·布魯吉 (AWS)

代碼存儲庫:aws-iam-root-user-活動監視器

環境:PoC 或試點

技術:安全性、身分識別、合規性、管理與治理

工作負載:所有其他工作

AWS 服務:Amazon EventBridge;AWS Lambda;Amazon SNS;AWS Identity and Access Management

Summary

每個 Amazon Web Services (AWS) 帳戶都有一個根使用者。作為 AWS Identity and Access Management (IAM) 的安全最佳實務,我們建議您使用 root 使用者完成只有 root 使用者可以執行的任務。如需完整清單,請參閱 AWS 帳戶管理參考指南中的需要 root 使用者登入資料的任務。由於 root 使用者擁有所有 AWS 資源和帳單資訊的完整存取權,因此建議您不要使用此帳戶並對其進行監控是否有任何活動,這可能表示 root 使用者登入資料已遭入侵。

使用此模式,您可以設定事件驅動的架構來監控 IAM 根使用者。此模式設定了一個 hub-and-spoke 解決方案,用於監控多個 AWS 帳戶、點帳戶,並將管理和報告集中在單一帳戶 (Hub 帳戶) 中。

使用 IAM 根使用者登入資料時,Amazon CloudWatch 和 AWS 會分別在日誌和追蹤中 CloudTrail 記錄活動。在支點帳戶中,Amazon EventBridge 規則會將事件傳送到中樞帳戶中的中央事件匯流排。在集線器帳戶中, EventBridge 規則會將事件傳送至 AWS Lambda 函數。該函數使用 Amazon Simple Notification Service (Amazon SNS) 主題,通知您根使用者活動。

在此模式中,您可以使用 AWS CloudFormation 範本在支點帳戶中部署監控和事件處理服務。您可以使用 T HashiCorp erraform 範本在 Hub 帳戶中部署事件管理和通知服務。

先決條件和限制

先決條件

  1. 在 AWS 環境中部署 AWS 資源的許可。

  2. 部署 CloudFormation 堆疊集的權限。如需詳細資訊,請參閱堆疊集作業的先決條CloudFormation 件 (說明文件)。

  3. 已安裝並準備使用的地形。如需詳細資訊,請參閱開始使用 — AWS (地形文件)。

  4. 每個支點帳戶中的現有追蹤。如需詳細資訊,請參閱 AWS 入門 CloudTrail (CloudTrail 文件)。

  5. 追蹤設定為將事件傳送至 CloudWatch 記錄檔。如需詳細資訊,請參閱將事件傳送至 CloudWatch 記錄CloudTrail 檔 (文件)。

  6. 您的中樞和支點帳戶必須由 AWS Organizations 管理。

架構

下圖說明實作的建置區塊。

在中樞帳戶中建立電子郵件通知的事件
  1. 使用 IAM 根使用者登入資料時, CloudWatch 並將活動分別 CloudTrail 記錄在日誌和追蹤中。

  2. 在分支帳戶中, EventBridge 規則會將事件傳送至中樞帳戶中的中央事件匯流排

  3. 在中樞帳戶中, EventBridge 規則會將事件傳送至 Lambda 函數。

  4. Lambda 函數使用 Amazon SNS 主題來通知您根使用者活動。

工具

AWS 服務

  • AWS 可 CloudFormation協助您設定 AWS 資源、快速且一致地佈建 AWS 資源,並在 AWS 帳戶和區域的整個生命週期中進行管理。

  • AWS 可 CloudTrail協助您稽核 AWS 帳戶的管理、合規和營運風險。

  • Amazon CloudWatch Logs 可協助您集中管理所有系統、應用程式和 AWS 服務的日誌,以便您可以監控和安全地存檔日誌。

  • Amazon EventBridge 是無伺服器事件匯流排服務,可協助您將應用程式與來自各種來源的即時資料連接起來。例如,AWS Lambda 函數、使用 API 目的地的 HTTP 叫用端點,或其他 AWS 帳戶中的事件匯流排。

  • AWS Identity and Access Management (IAM) 可透過控制誰經過身份驗證和授權使用 AWS 資源,協助您安全地管理對 AWS 資源的存取。

  • AWS Lambda 是一種運算服務,可協助您執行程式碼,而不需要佈建或管理伺服器。它只會在需要時執行程式碼並自動調整規模,因此您只需為使用的運算時間付費。

  • Amazon Simple Notification Service (Amazon SNS) 可協助您協調和管理發佈者和客戶之間的訊息交換,包括 Web 伺服器和電子郵件地址。

其他工具和服務

  • Terraform 是一個 CLI 應用程式,用於佈建和管理雲端基礎架構和資源,以組態檔的形式使用程式碼。

代碼存儲庫

此模式的原始程式碼和範本可在GitHub 儲存庫中取得。此模式提供了兩個模板:

  • 包含您在 Hub 帳戶中部署的資源的 Terraform 範本

  • 您在分支帳戶中部署為堆疊集執行個體的 CloudFormation 範本

存放庫具有以下整體結構。

.  |__README.md  |__spoke-stackset.yaml  |__hub.tf  |__root-activity-monitor-module      |__main.tf  # contains Terraform code to deploy resources in the Hub account      |__iam      # contains IAM policies JSON files          |__ lambda-assume-policy.json          # contains trust policy of the IAM role used by the Lambda function          |__ lambda-policy.json                 # contains the IAM policy attached to the IAM role used by the Lambda function      |__outputs  # contains Lambda function zip code

史詩」區段提供部署範本的 step-by-step 指示。

史诗

任務描述所需技能

複製範例程式碼儲存庫。

  1. 開啟 AWS IAM 根使用者活動監控儲存庫。

  2. 在 [程式碼] 索引標籤的檔案清單上方,選擇 [程式碼],然後複製 HTTPS URL。

  3. 在指令行介面中,將工作目錄變更為要儲存範例檔案的位置。

  4. 輸入以下命令:

    git clone <repoURL>
一般 AWS

更新地形範本。

  1. 擷取您的組織 ID。如需指示,請參閱從管理帳戶檢視組織的詳細資料 (AWS Organizations 文件)。

  2. 在複製的存放庫中,開啟hub.tf

  3. 使用適合您環境的適當值更新下列項目:

    • OrganizationId— 新增您的組織 ID。

    • SNSTopicName— 為 Amazon SNS 主題添加名稱。

    • SNSSubscriptions— 新增應傳送 Amazon SNS 通知的電子郵件。

    • Region— 新增要部署資源的 AWS 區域代碼。例如 eu-west-1

    • Tags— 添加您的標籤。如需詳細資訊,請參閱標記 AWS 資源 (AWS 一般參考)。

  4. 儲存並關閉 hub.tf 檔案。

一般 AWS

將資源部署到 AWS 中樞帳戶。

  1. 在 Terraform 命令列介面中,導覽至複製存放庫的根資料夾,然後輸入下列命令。

    terraform init && terraform plan
  2. 複查輸出並確認您要建立所描述的資源。

  3. 輸入以下命令。

    terraform apply
  4. 出現提示時,請輸入以確認部署yes

一般 AWS
任務描述所需技能

部署 CloudFormation 範本。

  1. 登入 AWS 管理主控台,然後開啟主CloudFormation 控台

  2. 在導覽窗格中,選擇StackSets

  3. StackSets頁面頂端,選擇 [建立] StackSet。

  4. 在 [權限] 下,選擇 [服務管理權限] CloudFormation 自動設定部署到 AWS Organizations 管理的目標帳戶所需的許可。

  5. 在 [先決條件-準備範本] 底下,選擇 [範本已準

  6. 在「指定範本」下,選擇「上傳範本檔案」。

  7. 擇 [選擇檔案],然後在複製的儲存庫中選取spoke-stackset.yaml

  8. 選擇下一步

  9. 在 [指定 StackSet 詳細資料] 頁面上,輸入堆疊集的名稱。

  10. 在 [參數] 下,輸入 Hub 帳戶的帳戶識別碼,然後選擇 [下一步]。

  11. 在 [設定 StackSet 選項] 頁面的 [標籤] 下,新增您的標籤。

  12. 在 [執行組態] 底下,選擇 [非作用中],然後選擇 [

  13. 在 [設定部署選項] 頁面上,指定您要部署堆疊集的組織單位和區域,然後選擇 [下一步]。

  14. 在 [檢閱] 頁面上,選取 [我確認 AWS CloudFormation 可能會建立 IAM 資源],然後選擇 [提交]。 CloudFormation 開始部署您的堆疊集。

如需詳細資訊和指示,請參閱建立堆疊集 (說明CloudFormation 文件)。

一般 AWS
任務描述所需技能

使用根使用者身份證明。

  1. 使用根使用者認證登入支點帳戶或 Hub 帳戶。

  2. 確認您指定的電子郵件帳戶收到 Amazon SNS 通知。

一般 AWS

相關資源

其他資訊

Amazon GuardDuty 是一種持續的安全監控服務,可分析和處理日誌,以識別 AWS 環境中的未預期和潛在未經授權的活動。作為此解決方案的替代方案,如果您已啟用 GuardDuty,它可以在使用 root 使用者認證時提醒您。發 GuardDuty 現項目為Policy:IAMUser/RootCredentialUsage,預設嚴重性為「」。如需詳細資訊,請參閱管理 Amazon GuardDuty 發現項目