如何使用 EventBridge 和 Amazon SNS 監控在 EC2 Linux 執行個體上設定的安全群組的變更?

2 分的閱讀內容
0

我為 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體設定了一個安全群組。如何使用 Amazon EventBridge 和 Amazon Simple Notification Service (Amazon SNS) 監控安全群組的變更?

簡短描述

可以建立一個用於在進行 API 調用以修改安全群組時觸發的 EventsBridge 規則。然後,為符合規則的事件設定 Amazon SNS 通知。

解決方法

建立和訂閱 Amazon SNS 主題

1.    開啟 Amazon SNS 主控台

2.    在 SNS 儀表板上,選取 Topics(主題),然後選擇 Create Topic(建立主題)。

3.    輸入主題的名稱 (例如,my-topic)。

4.    選擇 Create topic(建立主題)。

5.    記下該主題的 Amazon Resource Name (ARN) (例如,arn:aws:sns:us-east-1:123123123123:my-topic)。

6.    選擇 Create subscription(建立訂閱)。

7.    在主題 ARN 中,輸入您在步驟 5 中記下的 ARN。

8.    對於通訊協定,選擇 Email(電子郵件)。

9.    在端點中,輸入用於接收通知的電子郵件地址,然後選擇 Create subscription(建立訂閱)。

您將收到一封用於確認訂閱的電子郵件。確認訂閱後,電子郵件地址會在觸發 SNS 主題時收到通知。

使用 EventBridge 主控台,建立針對事件觸發的 EventBridge 規則

1.    開啟 EventBridge 主控台

2.    選取 Create rule(建立規則)。

3.    輸入規則的名稱。您可以選擇輸入 Description(描述)。

4.    在定義模式中,選取 Event pattern(事件模式)。

5.    選取 Pre-defined pattern by service(服務提供的預先定義模式)。

6.    對於服務供應商,選擇 AWS

7.    對於服務名稱,選擇 EC2

8.    對於事件類型,選擇 AWS API Call via CloudTrail(透過 CloudTrail 的 AWS API 呼叫)。

9.    選擇 Specific Operation(特定操作),然後逐個將下列 API 調用複製並貼到文字方塊中。每次新增後選取 Add(新增)。這些 API 調用可用來新增或移除安全群組規則。

AuthorizeSecurityGroupIngress
AuthorizeSecurityGroupEgress
RevokeSecurityGroupIngress
RevokeSecurityGroupEgress

這些設定會建立下列事件模式:

{
  "source": [
    "aws.ec2"
  ],
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "ec2.amazonaws.com"
    ],
    "eventName": [
      "AuthorizeSecurityGroupIngress",
      "AuthorizeSecurityGroupEgress",
      "RevokeSecurityGroupIngress",
      "RevokeSecurityGroupEgress"
    ]
  }
}

10.    在選取目標中,從目標下拉式清單中選擇 SNS topic (SNS 主題)。

11.    在主題中,輸入您先前建立的主題。

注意:預設情況下,會在設定輸入下選取 Matched event(符合的事件)。符合的事件會將事件的整個 JSON 輸出傳遞至 SNS 主題。如果不想傳遞整個 JSON 輸出,請選取 Input transformer(輸入轉換器)以篩選事件資訊。使用輸入轉換器來自訂事件中的文字以建立易於閱讀的訊息,而不是向目標傳送整個 JSON 輸出。例如,可以對輸入路徑使用下列鍵值對。

{"name":"$.detail.requestParameters.groupId","source":"$.detail.eventName","time":"$.time","value":"$.detail"}

輸入範本中,輸入要顯示在訊息中的文字和變數:

"A <source> API call was made against the security group <name> on <time> with the below details"
" <value> "

如需有關使用輸入轉換器選項的詳細資訊,請參閱教學課程: 使用輸入轉換器自訂要傳遞至事件目標的 EventBridge 內容

12.    選取 Create(建立)。


相關資訊

教學課程: 為 AWS CloudTrail API 調用建立 Amazon EventBridge 規則

AWS 官方
AWS 官方已更新 3 年前