啟動時檢查 EC2 執行個體是否有強制性標籤 - AWS Prescriptive Guidance

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

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

蘇珊娜康諾 (AWS) 創建

Envronment 生產

技能:基礎架構;管理與控管;安全性、身分識別、法規遵循;原生雲端

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 事件的 Amazon 雲端追蹤事件事件TagResourceUntagResource事件,以偵測新的 EC2 執行個體標記或標記移除。如果遺失預先定義的標籤,會呼叫 AWS Lambda 函數,透過 Amazon Simple Notification Service (Amazon SNS),將違規訊息傳送到您提供的電子郵件地址。 

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 一個 Amazon Simple Storage Service (Amazon S3) 儲存貯體,上傳所提供的 Lambda 程式碼。

  • 您想要從中接收到違規通知的電子郵件地址。

限制

  • 此解決方案支援 CloudTrailTagResourceUntagResourceevents. 它不會為任何其他事件建立通知。

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

Architecture

工作流程architecture

自動化和擴充

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

Tools

AWS 服務

  • Amazon EC2— Amazon Elastic Compute Cloud (Amazon EC2) 是一種 Web 服務,可在雲端提供安全、可重新調整大小的運算容量。此服務旨在降低開發人員進行 Web 規模雲端運算的難度。

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

  • Amazon CloudWatch Events— Amazon CloudWatch Events 會提供近乎即時的系統事件串流,描述 AWS 資源中的變更情形。CloudWatch Events 會在發生操作變更時感知操作變更並視需要進行修正動作,透過傳送訊息來回應環境、啟用功能、執行變更和擷取狀態資訊。 

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

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

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

Code

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

  • index.zip是一個壓縮檔,其中包含此模式的 Lambda 程式碼。

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

請參閱史詩區段,瞭解如何使用這些檔案的相關資訊。

Epics

任務描述必要技能
上傳程式碼至 S3 儲存貯體。

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

雲端
部署 CloudFormation 範本。

在 S3 儲存貯體相同 AWS 區域中開啟 CloudFormation 主控台,然後在 S3 儲存貯體中部署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會搜尋四個索引鍵。) CloudWatch 事件會搜尋這些標籤鍵,並在找不到時傳送通知。

雲端
任務描述必要技能
確認電子郵件訂閱。

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

雲端

Attachments

attachment.zip