本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:使用 Amazon 監控組織的重要變更 EventBridge
本教學說明如何設定 Amazon EventBridge (以前稱為 Amazon CloudWatch 活動),以監控您的組織是否有變更。首先,您可以設定在使用者叫用特定規則時觸發的規則 AWS Organizations 操作。接下來,您配 EventBridge 置 Amazon 運行 AWS Lambda 在觸發規則時發揮作用,並且您SNS將 Amazon 配置為發送包含有關事件詳細信息的電子郵件。
下圖顯示教學的主要步驟。
- 步驟 1:設定追蹤記錄與事件選擇器
-
在中建立一個稱為追蹤的記錄 AWS CloudTrail。 您可以將其設定為擷取所有API呼叫。
- 步驟 2:設定 Lambda 函數
-
創建一個 AWS Lambda 將事件詳細信息記錄到 S3 存儲桶的功能。
- 步驟 3:創建一個向訂閱者發送電子郵件的 Amazon SNS 主題
-
創建一個 Amazon SNS 主題,向其訂閱者發送電子郵件,然後訂閱自己的主題。
- 步驟 4:創建一個 Amazon EventBridge 規則
-
建立規則,告知 Amazon EventBridge 將指定API呼叫的詳細資訊傳遞給 Lambda 函數和SNS主題訂閱者。
- 步驟 5:測試您的 Amazon EventBridge 規則
-
藉由執行其中一項受監控的操作,來測試您的新規則。在本教學課程中,受監控的操作會建立組織單位 (OU)。您可以檢視 Lambda 函數建立的記錄項目,並檢視 Amazon SNS 傳送給訂閱者的電子郵件。
秘訣
您也可以使用此教學作為設定類似操作 (例如在帳戶建立完成時傳送電子郵件通知) 的指南。由於帳戶建立是非同步的操作,當它完成時,您預設不會收到通知。有關使用的更多信息 AWS CloudTrail 和 EventBridge Amazon AWS Organizations,請參閱登錄和監控 AWS Organizations。
必要條件
本教學課程的假設如下:
-
您可以登入 AWS Management Console 以組織中管理帳戶的IAM使用者身分。IAM使用者必須具有建立和設定登入 CloudTrail、Lambda 中的函數SNS、Amazon 中的主題以及 Amazon 中的規則的許可 EventBridge。如需有關授與權限的詳細資訊,請參閱IAM使用指南中的存取管理,或您要為其設定存取權的服務指南。
-
您可以存取現有的 Amazon Simple Storage Service (Amazon S3) 儲存貯體 (或者您有建立儲存貯體的權限),以接收您在步驟 1 中設定的 CloudTrail 日誌。
重要
目前, AWS Organizations 僅在美國東部 (維吉尼亞北部) 區域託管 (儘管全球提供)。若要執行本教學課程中的步驟,您必須設定 AWS Management Console 以使用該區域。
步驟 1:設定追蹤記錄與事件選擇器
在此步驟中,您可以登入管理帳戶並在中設定記錄檔 (稱為追蹤) AWS CloudTrail。 您也可以在追蹤上設定事件選取器,以擷取所有讀取/寫入API呼叫,以便 Amazon EventBridge 可觸發呼叫。
若要建立追蹤記錄
-
登入至 AWS 以組織管理帳戶的管理員身分,然後在開啟 CloudTrail 主控台https://console.aws.amazon.com/cloudtrail/
。 -
在主控台右上角的導覽列中,選擇美國東部 (維吉尼亞北部) 區域。如果您選擇不同的地區, AWS Organizations 不會在 Amazon EventBridge 組態設定中顯示為選項,也 CloudTrail 不會擷取有關的資訊 AWS Organizations.
-
在導覽窗格中,選擇 Trails (追蹤記錄)。
-
選擇 Create trail (建立追蹤)。
-
針對 Trail name (追蹤名稱),輸入
My-Test-Trail
。 -
執行下列其中一個選項,以 CloudTrail 指定傳送記錄檔的位置:
-
如果您需要建立儲存貯體,請選擇 Create new S3 bucket (建立新的 S3 儲存貯體),然後針對 Trail log bucket and folder (追蹤日誌儲存貯體和資料夾),輸入新儲存貯體的名稱。
注意
S3 儲存貯體名稱必須在「全域」必須是唯一的。
-
如果您已經擁有儲存貯體,請選擇 Use existing S3 bucket (使用現有的 S3 儲存貯體),然後從 S3 bucket (S3 儲存貯體) 清單中選擇儲存貯體的名稱。
-
-
選擇 Next (下一步)。
在 Choose log events (選擇日誌事件) 頁面的 Management events (管理事件) 區段中,選擇 Read (讀取) 和 Write (寫入)。
-
選擇 Next (下一步)。
-
檢閱選項,然後選擇 Create trail (建立追蹤)。
Amazon EventBridge 可讓您從多種不同的方式中選擇,在警示規則與來電相符時傳送提API醒。本教學課程示範兩種方法:叫用可記錄API呼叫的 Lambda 函數,並將資訊傳送至 Amazon SNS 主題,以傳送電子郵件或文字訊息給主題的訂閱者。在接下來的兩個步驟中,您將建立所需的元件:Lambda 函數和 Amazon SNS 主題。
步驟 2:設定 Lambda 函數
在此步驟中,您會建立 Lambda 函數,以記錄您稍後設定的 Amazon EventBridge 規則傳送給該API活動的活動。
若要建立記錄 Amazon EventBridge 事件的 Lambda 函數
-
打開 AWS Lambda 控制台位於https://console.aws.amazon.com/lambda/
。 -
如果您是初次使用 Lambda,請選擇歡迎頁面上的 Get Started Now (立即開始使用);否則請選擇 Create function (建立函數)。
-
在 Create function (建立函數) 頁面上,選擇 Use a blueprint (使用藍圖)。
-
從 Blueprints (藍圖) 搜尋方塊中,針對篩選條件輸入
hello
,並選擇 hello-world 藍圖。 -
選擇設定。
-
在 Basic information (基本資訊) 頁面上,執行以下作業:
-
對於 Lambda 函數名稱,在 Name (名稱) 文字方塊中輸入
LogOrganizationEvents
。 -
針對 Role (角色),選擇 Create a new role with basic Lambda permissions (建立具備基本 Lambda 許可的新角色)。此角色會授予許可給您的 Lambda 函數,讓函數存取所需的資訊和寫入其輸出日誌。
-
-
如下列範例所示,編輯 Lambda 函數程式碼。
console.log('Loading function'); exports.handler = async (event, context) => { console.log('LogOrganizationsEvents'); console.log('Received event:', JSON.stringify(event, null, 2)); return event.key1; // Echo back the first key value // throw new Error('Something went wrong'); };
此範例程式碼會使用
LogOrganizationEvents
標記字串,後面接著組成事件的JSON字串來記錄事件。 -
選擇建立函數。
步驟 3:創建一個向訂閱者發送電子郵件的 Amazon SNS 主題
在此步驟中,您會建立 Amazon SNS 主題,將資訊以電子郵件傳送給其訂閱者。您可以將此主題設為稍後建立的 Amazon EventBridge 規則的目標。
若要建立 Amazon SNS 主題以傳送電子郵件給訂閱者
-
在打開 Amazon SNS 控制台https://console.aws.amazon.com/sns/v3/
。 -
在導覽窗格中,選擇 Topics (主題)。
-
請選擇 Create new topic (建立新主題)。
-
針對 Topic name (主題名稱),輸入
OrganizationsCloudWatchTopic
。 -
針對 Display name (顯示名稱),輸入
OrgsCWEvnt
。 -
請選擇建立主題。
-
-
現在您可以建立該主題的訂閱。選擇ARN您剛建立的主題。
-
選擇 Create subscription (建立訂閱)。
-
在 Create subscription (建立訂閱) 頁面上,針對 Protocol (通訊協定) 選擇 Email (電子郵件)。
-
針對 Endpoint (端點),輸入電子郵件地址。
-
選擇 Create subscription (建立訂閱)。 AWS 傳送電子郵件至您在上一個步驟中指定的電子郵件地址。請等待該電子郵件送達,然後選取電子郵件中的 Confirm subscription (確認訂閱) 連結,來確認您已成功收到電子郵件。
-
返回主控台並重新整理頁面。Pending confirmation (待確認) 訊息會關閉,改而顯示目前有效的訂閱 ID。
-
步驟 4:創建一個 Amazon EventBridge 規則
現在您的帳戶中存在所需的 Lambda 函數,您可以建立一個 Amazon EventBridge 規則,在符合規則中的條件時呼叫該函數。
若要建立 EventBridge 規則
-
在打開 Amazon EventBridge 控制台https://console.aws.amazon.com/events/
。 -
將主控台設定為 US East (N. Virginia) (美國東部 (維吉尼亞北部)) 區域,否則組織的相關資訊將不可用。在主控台右上角的導覽列中,選擇美國東部 (維吉尼亞北部) 區域。
如需建立規則的指示,請參閱 Amazon EventBridge 使用者指南 EventBridge中的開始使用 Amazon。
步驟 5:測試您的 Amazon EventBridge 規則
在此步驟中,您會建立組織單位 (OU) 並遵守 Amazon EventBridge 規則、產生日誌項目,然後傳送包含事件詳細資訊的電子郵件給自己。
若要查看記 EventBridge 錄項目
-
在開啟 CloudWatch 主控台https://console.aws.amazon.com/cloudwatch/
。 -
在導覽頁面中,選擇 Logs (日誌)。
-
在「記錄群組」下,選擇與您的 Lambda 函數相關聯的群組:/aws/lambda/ LogOrganizationEvents。
-
每個群組包含一或多個串流,而今天應該會有一個群組。請選擇此群組。
-
檢視日誌。您應該會看到與以下內容相似的資料列。
-
選取項目的中間列,以查看已接收事件的全JSON文。您可以在輸出的
requestParameters
和部responseElements
分中查看API請求的所有詳細信息。2017-03-09T22:45:05.101Z 0999eb20-051a-11e7-a426-cddb46425f16 Received event: { "version": "0", "id": "123456-EXAMPLE-GUID-123456", "detail-type": "AWS API Call via CloudTrail", "source": "aws.organizations", "account": "123456789012", "time": "2017-03-09T22:44:26Z", "region": "us-east-1", "resources": [], "detail": { "eventVersion": "1.04", "userIdentity": { ... }, "eventTime": "2017-03-09T22:44:26Z", "eventSource": "organizations.amazonaws.com", "eventName": "CreateOrganizationalUnit", "awsRegion": "us-east-1", "sourceIPAddress": "192.168.0.1", "userAgent": "AWS Organizations Console, aws-internal/3", "requestParameters": { "parentId": "r-exampleRootId", "name": "TestCWEOU" }, "responseElements": { "organizationalUnit": { "name": "TestCWEOU", "id": "ou-exampleRootId-exampleOUId", "arn": "arn:aws:organizations::1234567789012:ou/o-exampleOrgId/ou-exampleRootId-exampeOUId" } }, "requestID": "123456-EXAMPLE-GUID-123456", "eventID": "123456-EXAMPLE-GUID-123456", "eventType": "AwsApiCall" } }
-
檢查您的電子郵件帳戶是否有來自 O 的消息rgsCWEvnt(您的 Amazon SNS 主題的顯示名稱)。電子郵件內JSON文包含與上述步驟中顯示的記錄項目相同的文字輸出。
清除:移除不再需要的資源
為避免產生費用,您應該刪除任何費用 AWS 您在本教學課程中建立的不想保留的資源。
若要清理您的 AWS 環境
-
使用主CloudTrail 控台
刪除您在步驟 1 中建立的名稱為 My-Test-Trail
的追蹤。 -
如果您在步驟 1 中建立了 Amazon S3 儲存貯體,則使用 Amazon S3 主控台
來刪除該儲存貯體。 -
使用 Lambda 主控台
,來刪除您在步驟 2 中所建立名稱為 LogOrganizationEvents
的函數。 -
使用 Amazon 主SNS控台
刪除您在步驟 3 中建立 OrganizationsCloudWatchTopic
的名稱為的 Amazon SNS 主題。 -
使用主CloudWatch 控台
刪除您在步驟 4 中建立的名稱為 OrgsMonitorRule
的 EventBridge 規則。 -
最後,使用 Organizations 主控台
,來刪除您在步驟 5 中所建立名稱為 TestCWEOU
的 OU。
到此為止。在本教學課程中,您已設 EventBridge 定為監視組織的變更。您設定了在使用者叫用特定規則時觸發 AWS Organizations 操作。此規則會執行記錄事件的 Lambda 函數,並傳送電子郵件,其中包含關於事件的詳細資訊。