使用 AWS Config 監控 EC2 執行個體金鑰對 - AWS Prescriptive Guidance

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

使用 AWS Config 監控 EC2 執行個體金鑰對

由沃西姆·本哈蘭 (AWS) 和維克特·特爾卡 (AWS) 創建

環境:生產

技術:安全、身份和合規

AWS 服務:Amazon SNS; AWS Config; AWS Lambda

Summary

在 Amazon Web Services (AWS) Cloud 上啟動 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體時,最佳做法是建立或使用現有的 key pair 來連接到執行個體。key pair 由儲存在執行個體中的公開金鑰和提供給使用者的私密金鑰組成,允許透過 Secure Shell (SSH) 安全存取執行個體,並避免使用密碼。不過,使用者有時可能會不小心啟動執行個體,而不附加 key pair。因為金鑰配對只能在執行個體啟動期間指派,所以必須快速識別並將其標記為不符合金鑰配對啟動的任何執行個體。這在帳戶或環境中工作時特別有用,要求使用金鑰配對 (例如存取)。

此模式描述如何在 AWS Config 中建立自訂規則以監控 EC2 執行個體金鑰對。當執行個體識別為不合規時,系統會使用透過 Amazon EventBridge 事件啟動的 Amazon Simple Notification Service (Amazon SNS) 通知來傳送警示。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 針對您要監控並設定為記錄所有 AWS 資源的 AWS 區域啟用 AWS Config

限制

  • 此解決方案具有區域限制。所有資源都應該建立在相同 AWS 區域。

Architecture

目標技術堆疊

  • AWS Config

  • Amazon EventBridge

  • AWS Lambda

  • Amazon SNS

目標架構

  1. AWS Config 會啟動規則。

  2. 規則會叫用 Lambda 函數來評估 EC2 執行個體的相容性。

  3. Lambda 函數會將更新的合規狀態傳送至 AWS Config。

  4. AWS Config 會將事件傳送至 EventBridge。

  5. EventBridge 會將合規性變更通知發佈到 SNS 主題。

  6. Amazon SNS 以電子郵件傳送警示。

自動化和擴展

解決方案可監控區域內任意數量的 EC2 執行個體。

Tools

工具

  • AWS Config— AWS Config 是可讓您評定、稽核和評估 AWS 資源組態的服務。AWS Config 會持續監視和記錄您的 AWS 資源組態,並可讓您針對所需的組態自動評估記錄的組態。

  • Amazon EventBridge— Amazon EventBridge 是無伺服器匯流排服務,可將應用程式與來自各種來源的資料相連接。

  • AWS Lambda— AWS Lambda 是無伺服器運算服務,支援執行程式碼,而不需佈建或管理伺服器、建立工作負載感知叢集擴展邏輯、維護事件整合或管理執行階段。

  • Amazon SNS— Amazon Simple Notification Service (Amazon SNS) 是適用於應用程式至應用程式 (A2A) 和應用程式至人員 (A2P) 通訊的完整受管訊息服務。

Code

Lambda 函數的程式碼已附加。 

Epics

任務描述所需的技能
為 Lambda 建立 AWS Identity to Access Management (IAM) 角色。

在 AWS 管理主控台上,選擇IAM,然後建立角色,使用 Lambda 做為受信任的實體,並將AmazonEventBridgeFullAccessAWSConfigRulesExecutionRole許可。如需詳細資訊,請參閱 AWS 文件

DevOps
建立和部署 Lambda 函數。
  1. 在 Lambda 控制台上,使用Author from scratch (從頭開始撰寫),與Python 3.6做為執行階段和先前建立的 IAM 角色。請記下 Amazon Resource Name (ARN)。

  2. 程式碼標籤上,選擇lambda_function.py,然後貼上附加到此模式的程式碼。 

  3. 若要儲存您的變更,請選擇部署。 

DevOps
任務描述所需的技能
新增自訂 AWS Config 規則。

在 AWS Config 主控台上,使用下列設定新增自訂規則:

  • ARN — 先前建立的 Lambda 函數的 ARN

  • 觸發類型 — Config 變更

  • 變更範圍 — 資源

  • 資源類型 — Amazon EC2 執行個體

如需詳細資訊,請參閱 AWS 文件

DevOps
任務描述所需的技能
建立 SNS 主題與訂閱。

在 Amazon SNS 主控台上,使用Standard (標準)作為類型,然後使用電子郵件做為通訊協定。

當您收到確認電子郵件時,請選擇連結以確認訂閱。

如需詳細資訊,請參閱 AWS 文件

DevOps
建立 EventBridge 規則來啟動 Amazon SNS 通知。

在 EventBridge 主控台上,使用下列設定建立規則:

  • 服務名稱 — AWS Config

  • 事件類型 — Config 規則符合性變更

  • 訊息類型 — 特定訊息類型、相容性連結認證

  • 特定規則名稱 — 先前建立的 AWS Config 規則的名稱

  • 目標 — SNS 主題,您先前建立的主題

如需詳細資訊,請參閱 AWS 文件

DevOps
任務描述所需的技能
建立 EC2 執行個體。

建立兩個任何類型的 EC2 執行個體並附加 key pair,並建立一個沒有金鑰對的 EC2 執行個體。

DevOps
確認規則。
  1. 在 AWS Config 主控台上的規則頁面上,選取您的規則。

  2. 若要查看符合規範且不符合規範的 EC2 執行個體,請將範圍內的資源All (全部)。確認兩個執行個體列為相容,而且一個執行個體列為不相容。 

  3. 等待接收有關 EC2 執行個體合規狀態的 Amazon SNS 電子郵件通知。 

DevOps

Attachments

attachment.zip