本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 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
目標架構

AWS Config 會啟動規則。
規則會叫用 Lambda 函數來評估 EC2 執行個體的相容性。
Lambda 函數會將更新的合規狀態傳送至 AWS Config。
AWS Config 會將事件傳送至 EventBridge。
EventBridge 會將合規性變更通知發佈到 SNS 主題。
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 做為受信任的實體,並將 | DevOps |
建立和部署 Lambda 函數。 |
| DevOps |
任務 | 描述 | 所需的技能 |
---|---|---|
新增自訂 AWS Config 規則。 | 在 AWS Config 主控台上,使用下列設定新增自訂規則:
如需詳細資訊,請參閱 AWS 文件。 | DevOps |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 SNS 主題與訂閱。 | 在 Amazon SNS 主控台上,使用Standard (標準)作為類型,然後使用電子郵件做為通訊協定。 當您收到確認電子郵件時,請選擇連結以確認訂閱。 如需詳細資訊,請參閱 AWS 文件。 | DevOps |
建立 EventBridge 規則來啟動 Amazon SNS 通知。 | 在 EventBridge 主控台上,使用下列設定建立規則:
如需詳細資訊,請參閱 AWS 文件。 | DevOps |
任務 | 描述 | 所需的技能 |
---|---|---|
建立 EC2 執行個體。 | 建立兩個任何類型的 EC2 執行個體並附加 key pair,並建立一個沒有金鑰對的 EC2 執行個體。 | DevOps |
確認規則。 |
| DevOps |