啟動時檢查 EC2 執行個體是否有強制標籤 - AWS 方案指引

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

啟動時檢查 EC2 執行個體是否有強制標籤

由蘇珊娜康諾(AWS)創建

環境:生產

技術:基礎架構;管理與治理;安全性、身分識別、合規性;雲端原生

AWS 服務:Amazon EC2; AWS CloudTrail; Amazon CloudWatch; Amazon SNS

Summary

Amazon Elastic Compute Cloud (Amazon EC2) 在 Amazon Web Services (AWS) Cloud 提供可擴展的運算容量。使用 Amazon EC2 可減少前期所需的硬體投資,讓您更快速開發並部署應用程式。

您可以使用標記以不同的方式對 AWS 資源進行分類。當您的帳戶中有許多資源,並且想要根據標籤快速識別特定資源時,EC2 執行個體標記非常有用。您可以使用標籤將自訂中繼資料指派給 EC2 執行個體。標籤由使用者定義的索引鍵和值組成。我們建議您建立一組一致的標籤,以符合組織的需求。 

此模式提供 AWS CloudFormation 範本,可協助您監控 EC2 執行個體的特定標籤。範本會建立監控 AWS CloudTrail TagResource或 CloudWatch 事件的 Amazon 活UntagResource動事件,以偵測新的 EC2 執行個體標記或標籤移除。如果缺少預先定義的標籤,它會呼叫 AWS Lambda 函數,該函數會使用 Amazon Simple Notification Service (Amazon SNS) 將違規訊息傳送到您提供的電子郵件地址。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 一個 Amazon Simple Storage Service (Amazon S3) 存儲桶,用於上傳提供的 Lambda 代碼。

  • 您希望接收違規通知的電子郵件地址。

限制

  • 此解決方案支持 CloudTrail TagResourceUntagResource事件。它不會為任何其他事件建立通知。

  • 此解決方案僅檢查標籤鍵。它不監視關鍵值。

架構

工作流架構

自動化和規模

  • 您可以針對不同的 AWS 區域和帳戶多次使用 AWS CloudFormation 範本。您只需在每個區域或帳戶中執行一次範本。

工具

AWS 服務

  • Amazon EC2 — 亞馬遜彈性運算雲(Amazon EC2)是一種 Web 服務,可在雲中提供安全、可調整大小的運算容量。它旨在讓開發人員更輕鬆地進行 Web 規模的雲端運算。

  • AWS CloudTrail — CloudTrail 是一項 AWS 服務,可協助您對 AWS 帳戶進行管理、合規以及操作和風險稽核。使用者、角色或 AWS 服務執行的動作會記錄為中的事件 CloudTrail。 

  • Amazon CloudWatch 活動 — Amazon CloudWatch 活動提供近乎即時的系統事件串流,描述 AWS 資源的變更。 CloudWatch 事件會在發生作業變更時知道,並視需要採取更正動作,方法是傳送訊息以回應環境、啟動功能、進行變更,以及擷取狀態資訊。 

  • AWS Lambda — Lambda 是一種運算服務,可支援執行程式碼,而不需要佈建或管理伺服器。Lambda 只有在需要時才會執行程式碼,可自動從每天數項請求擴展成每秒數千項請求。 

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) 是可高度擴展的物件儲存服務,可用於各種儲存解決方案,包括網站、行動應用程式、備份和資料湖。

  • Amazon SNS — Amazon Simple Notification Service (Amazon SNS) 是一種網路服務,可讓應用程式、最終使用者和裝置立即從雲端傳送和接收通知。

Code

該模式包括一個包含兩個文件的附件:

  • index.zip是包含此模式之 Lambda 程式碼的壓縮檔案。

  • ec2-require-tags.yaml是部署 Lambda 程式碼的 CloudFormation 範本。

有關如何使用這些文件的信息,請參見 Epics 部分。

史诗

任務描述所需技能
將代碼上傳到 S3 存儲桶。

建立新的 S3 儲存貯體,或使用現有的 S3 儲存貯體上傳附加的index.zip檔案 (Lambda 程式碼)。此儲存貯體必須與您要監控的資源 (EC2 執行個體) 位於相同的 AWS 區域。

雲端架構師
部署 CloudFormation 範本。

在與 S3 儲存貯體相同的 AWS 區域中開啟 Cloudformation 主控台,然後部署附件中提供的ec2-require-tags.yaml檔案。在下一個史詩中,提供模板參數的值。 

雲端架構師
任務描述所需技能
提供 S3 儲存貯體名稱。

輸入您在第一個史詩中建立或選取的 S3 儲存貯體的名稱。此 S3 儲存貯體包含 Lambda 程式碼的 .zip 檔案,且必須與 CloudFormation 範本和您要監控的 EC2 執行個體位於相同的 AWS 區域。

雲端架構師
提供 S3 金鑰。

在 S3 儲存貯體中提供 Lambda 程式碼 .zip 檔案的位置,而不需要前導斜線 (例如,index.zipcontrols/index.zip)。

雲端架構師
提供電子郵件地址。

提供您要接收違規通知的作用中電子郵件地址。

雲端架構師
定義記錄層級。

指定記錄日誌層級和詳細資訊。 Info指定應用程式進度的詳細資訊訊息,應僅用於偵錯。 Error指定仍然允許應用程式繼續執行的錯誤事件。 Warning指定潛在的有害情況。

雲端架構師
輸入所需的標籤關鍵字。

輸入您要檢查的標籤鍵。如果要指定多個鍵,請用逗號分隔它們,不帶空格。(例如,ApplicationId,CreatedBy,Environment,Organization搜尋四個機碼。) E CloudWatch vents 事件會搜尋這些標籤鍵,並在找不到時傳送通知。

雲端架構師
任務描述所需技能
確認電子郵件訂閱。

成功部署 CloudFormation 範本後,會將訂閱電子郵件訊息傳送至您提供的電子郵件地址。若要接收通知,您必須確認此電子郵件訂閱。 

雲端架構師

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip