

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

# 建立 CloudTrail 事件的 CloudWatch 警示：範例
<a name="cloudwatch-alarms-for-cloudtrail"></a>

此主題說明如何設定 CloudTrail 事件的警示，並包含範例。

**Topics**
+ [先決條件](#cloudwatch-alarms-prerequisites)
+ [建立指標篩選條件並建立警示](#cloudwatch-alarms-metric-filter-alarm)
+ [範例：安全群組組態變更](#cloudwatch-alarms-for-cloudtrail-security-group)
+ [AWS 管理主控台 登入失敗範例](#cloudwatch-alarms-for-cloudtrail-signin)
+ [範例：IAM 政策變更](#cloudwatch-alarms-for-cloudtrail-iam-policy-changes)
+ [設定 CloudWatch Logs 警示的通知](#cloudtrail-configure-notifications-for-cloudwatch-logs-alarms)

## 先決條件
<a name="cloudwatch-alarms-prerequisites"></a>

您必須執行下列作業，才能使用此主題中的範例：
+ 使用主控台或 CLI 建立追蹤記錄。
+ 建立日誌群組，您可以在建立線索的過程中執行此動作。如需建立線索的詳細資訊，請參閱 [使用 CloudTrail 主控台建立追蹤](cloudtrail-create-a-trail-using-the-console-first-time.md)。
+ 指定或建立 IAM 角色以將下列許可授予 CloudTrail：在您指定的日誌群組中建立 CloudWatch Logs 日誌串流，以及將 CloudTrail 事件傳送至該日誌串流。預設 `CloudTrail_CloudWatchLogs_Role` 會為您妥善處理。

如需詳細資訊，請參閱[傳送事件到 CloudWatch Logs](send-cloudtrail-events-to-cloudwatch-logs.md)。本節中的範例會在 Amazon CloudWatch Logs 主控台中執行。如需建立指標篩選條件和警示的詳細資訊，請參閱 *Amazon CloudWatch 使用者指南*中的[使用篩選條件從日誌事件建立指標](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/MonitoringLogData.html)和[使用 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。

## 建立指標篩選條件並建立警示
<a name="cloudwatch-alarms-metric-filter-alarm"></a>

若要建立警示，您必須先建立指標篩選條件，然後根據篩選條件來設定警示。所有範例都會顯示此程序。如需 CloudTrail 日誌事件指標篩選條件和模式之語法的詳細資訊，請參閱 *Amazon CloudWatch Logs 使用者指南*中[篩選條件和模式語法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)的 JSON 相關小節。

## 範例：安全群組組態變更
<a name="cloudwatch-alarms-for-cloudtrail-security-group"></a>

遵循此程序，以建立在安全群組發生組態變更時觸發的 Amazon CloudWatch 警示。

### 建立指標篩選條件
<a name="cloudwatch-alarms-for-cloudtrail-security-group-metric-filter"></a>

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇**日誌**下方的**日誌群組**。

1. 在日誌群組清單中，選擇您針對追蹤所建立之日誌群組。

1. 在**指標篩選條件**或**動作**選單中，選擇**建立指標篩選條件**。

1. 在 **Define pattern** (定義陣列) 頁面的 **建立篩選條件模式**，請針對**篩選條件模式**輸入以下內容。

   ```
   { ($.eventName = AuthorizeSecurityGroupIngress) || ($.eventName = AuthorizeSecurityGroupEgress) || ($.eventName = RevokeSecurityGroupIngress) || ($.eventName = RevokeSecurityGroupEgress) || ($.eventName = CreateSecurityGroup) || ($.eventName = DeleteSecurityGroup) }
   ```

1. 在 **Test pattern** (測試模式)，保留預設值。選擇**下一步**。

1. 在**指派指標**頁面的**篩選條件名稱**中，輸入 **SecurityGroupEvents**。

1. 在**指標詳細資訊**中，開啟**建立新的**，然後針對**指標命名空間**輸入 **CloudTrailMetrics**。

1. 在**指標名稱**中，輸入 **SecurityGroupEventCount**。

1. 在**指標值**中，輸入 **1**。

1. 保留 **Default value** (預設值) 空白。

1. 選擇 **Next** (下一步)。

1. 在 **Review and create** (檢閱和建立) 頁面上，檢閱您的選擇。選擇 **Create metric filter** (建立指標篩選條件) 以建立篩選條件，或選擇 **Edit** (編輯) 返回並變更值。

### 建立警示
<a name="cloudwatch-alarms-for-cloudtrail-security-group-create-alarm"></a>

建立指標篩選條件之後，CloudTrail 線索日誌群組的 CloudWatch Logs 日誌群組詳細資訊頁面就會開啟。請依照此程序來建立警示。

1. 在**指標篩選條件**索引標籤上，尋找您在 [建立指標篩選條件](#cloudwatch-alarms-for-cloudtrail-security-group-metric-filter) 中建立的指標篩選條件。填入指標篩選條件的核取方塊。在 **Metric filters** (指標篩選條件) 列，選擇 **Create alarm** (建立警示)。

1. 在**指定指標和條件**中，輸入以下內容。

   1. 針對 **Graph** (圖形)，根據您在建立警示時所做的其他設定，該行被設置為 **1**。

   1. 針對 **Metric name** (指標名稱)，請保留目前的指標名稱**SecurityGroupEventCount**。

   1. 針對 **Statistic** (統計數字)，保留預設值。**Sum**。

   1. 針對 **Period** (期間)，保留預設值。**5 minutes**。

   1. 在 **Conditions ** (條件) 中，針對 **Threshold type **(閾值類型)，選擇 **Static **(靜態)。

   1. 針對**無論何時 *metric\$1name* 為 **，選擇 **Greater/Equal** (大於/等於)。

   1. 對於閾值，輸入 **1**。

   1. 在 **Additional configuration** (其他組態) 中，保留預設值。選擇**下一步**。

1. 在**設定動作**頁面上，選擇**通知**，然後選擇**警示中**，表示當超過 5 分鐘內 1 個變更事件的閾值時，會採取動作，而 **SecurityGroupEventCount** 處於警示狀態。

   1. 對於**將通知傳送至下列 SNS 主題**，選擇**建立新主題**。

   1. 輸入 **SecurityGroupChanges\$1CloudWatch\$1Alarms\$1Topic** 作為新 Amazon SNS 主題的名稱。

   1. 在**將接收通知的電子郵件端點**中，輸入您要在發出此警示時接收通知的使用者電子郵件地址。以逗號分隔電子郵件地址。

      每個電子郵件收件者會收到電子郵件，要求他們確認是否要訂閱 Amazon SNS 主題。

   1. 請選擇**建立主題**。

1. 在此範例中，略過其他動作類型。選擇 **Next** (下一步)。

1. 在 **Add name and description** (新增名稱和說明) 頁面中，輸入警示的易記名稱和說明。在此範例中，請輸入 **Security group configuration changes** 作為名稱，**Raises alarms if security group configuration changes occur** 作為說明。選擇 **Next** (下一步)。

1. 在 **Preview and create** (預覽和建立) 頁面上，檢閱您的選擇。選擇 **Edit **(編輯) 來進行變更，或者選擇 **Create alarm** (建立警示) 來建立警示。

   建立警示後，CloudWatch 會開啟 **Alarms** (警示) 頁面。警示 **Actions** (動作) 欄位顯示 **Pending confirmation** (等待確認)，直到 SNS 主題上的所有電子郵件收件者都確認他們想要訂閱 SNS 通知。

## AWS 管理主控台 登入失敗範例
<a name="cloudwatch-alarms-for-cloudtrail-signin"></a>

依照此程序建立 Amazon CloudWatch 警示，該警示會在五分鐘期間內發生三個或更多 AWS 管理主控台 登入失敗時觸發。

### 建立指標篩選條件
<a name="cloudwatch-alarms-for-cloudtrail-signin-metric-filter"></a>

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇**日誌**下方的**日誌群組**。

1. 在日誌群組清單中，選擇您針對追蹤所建立之日誌群組。

1. 在**指標篩選條件**或**動作**選單中，選擇**建立指標篩選條件**。

1. 在 **Define pattern** (定義陣列) 頁面的 **建立篩選條件模式**，請針對**篩選條件模式**輸入以下內容。

   ```
   { ($.eventName = ConsoleLogin) && ($.errorMessage = "Failed authentication") }
   ```

1. 在 **Test pattern** (測試模式)，保留預設值。選擇**下一步**。

1. 在**指派指標**頁面的**篩選條件名稱**中，輸入 **ConsoleSignInFailures**。

1. 在**指標詳細資訊**中，開啟**建立新的**，然後針對**指標命名空間**輸入 **CloudTrailMetrics**。

1. 在**指標名稱**中，輸入 **ConsoleSigninFailureCount**。

1. 在**指標值**中，輸入 **1**。

1. 保留 **Default value** (預設值) 空白。

1. 選擇 **Next** (下一步)。

1. 在 **Review and create** (檢閱和建立) 頁面上，檢閱您的選擇。選擇 **Create metric filter** (建立指標篩選條件) 以建立篩選條件，或選擇 **Edit** (編輯) 返回並變更值。

### 建立警示
<a name="cloudwatch-alarms-for-cloudtrail-signin-create-alarm"></a>

建立指標篩選條件之後，CloudTrail 線索日誌群組的 CloudWatch Logs 日誌群組詳細資訊頁面就會開啟。請依照此程序來建立警示。

1. 在**指標篩選條件**索引標籤上，尋找您在 [建立指標篩選條件](#cloudwatch-alarms-for-cloudtrail-signin-metric-filter) 中建立的指標篩選條件。填入指標篩選條件的核取方塊。在 **Metric filters** (指標篩選條件) 列，選擇 **Create alarm** (建立警示)。

1. 在 **Create Alarm** (建立警示) 頁面的 **Specify metric and conditions** (指定指標和條件) 中，輸入下列內容。

   1. 針對 **Graph** (圖形)，根據您在建立警示時所做的其他設定，該行被設置為 **3**。

   1. 針對 **Metric name** (指標名稱)，請保留目前的指標名稱**ConsoleSigninFailureCount**。

   1. 針對 **Statistic** (統計數字)，保留預設值。**Sum**。

   1. 針對 **Period** (期間)，保留預設值。**5 minutes**。

   1. 在 **Conditions ** (條件) 中，針對 **Threshold type **(閾值類型)，選擇 **Static **(靜態)。

   1. 針對**無論何時 *metric\$1name* 為 **，選擇 **Greater/Equal** (大於/等於)。

   1. 對於閾值，輸入 **3**。

   1. 在 **Additional configuration** (其他組態) 中，保留預設值。選擇**下一步**。

1. 在**設定動作**頁面上，對於**通知**，選擇**警示中**，表示當超過 5 分鐘內 3 個變更事件的閾值時，會採取動作，而 **ConsoleSigninFailureCount** 處於警示狀態。

   1. 對於**將通知傳送至下列 SNS 主題**，選擇**建立新主題**。

   1. 輸入 **ConsoleSignInFailures\$1CloudWatch\$1Alarms\$1Topic** 作為新 Amazon SNS 主題的名稱。

   1. 在**將接收通知的電子郵件端點**中，輸入您要在發出此警示時接收通知的使用者電子郵件地址。以逗號分隔電子郵件地址。

      每個電子郵件收件者會收到電子郵件，要求他們確認是否要訂閱 Amazon SNS 主題。

   1. 請選擇**建立主題**。

1. 在此範例中，略過其他動作類型。選擇 **Next** (下一步)。

1. 在 **Add name and description** (新增名稱和說明) 頁面中，輸入警示的易記名稱和說明。在此範例中，請輸入 **Console sign-in failures** 作為名稱，**Raises alarms if more than 3 console sign-in failures occur in 5 minutes** 作為說明。選擇 **Next** (下一步)。

1. 在 **Preview and create** (預覽和建立) 頁面上，檢閱您的選擇。選擇 **Edit **(編輯) 來進行變更，或者選擇 **Create alarm** (建立警示) 來建立警示。

   建立警示後，CloudWatch 會開啟 **Alarms** (警示) 頁面。警示 **Actions** (動作) 欄位顯示 **Pending confirmation** (等待確認)，直到 SNS 主題上的所有電子郵件收件者都確認他們想要訂閱 SNS 通知。

## 範例：IAM 政策變更
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes"></a>

遵循此程序，以建立在進行 API 呼叫來變更 IAM 政策時觸發的 Amazon CloudWatch 警示。

### 建立指標篩選條件
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes-metric-filter"></a>

1. 在 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇**日誌**。

1. 在日誌群組清單中，選擇您針對追蹤所建立之日誌群組。

1. 選擇 **Actions **(動作)，然後選擇 **Create metric filter **(建立指標篩選條件)。

1. 在 **Define pattern** (定義陣列) 頁面的 **建立篩選條件模式**，請針對**篩選條件模式**輸入以下內容。

   ```
   {($.eventName=DeleteGroupPolicy)||($.eventName=DeleteRolePolicy)||($.eventName=DeleteUserPolicy)||($.eventName=PutGroupPolicy)||($.eventName=PutRolePolicy)||($.eventName=PutUserPolicy)||($.eventName=CreatePolicy)||($.eventName=DeletePolicy)||($.eventName=CreatePolicyVersion)||($.eventName=DeletePolicyVersion)||($.eventName=AttachRolePolicy)||($.eventName=DetachRolePolicy)||($.eventName=AttachUserPolicy)||($.eventName=DetachUserPolicy)||($.eventName=AttachGroupPolicy)||($.eventName=DetachGroupPolicy)}
   ```

1. 在 **Test pattern** (測試模式)，保留預設值。選擇**下一步**。

1. 在**指派指標**頁面的**篩選條件名稱**中，輸入 **IAMPolicyChanges**。

1. 在**指標詳細資訊**中，開啟**建立新的**，然後針對**指標命名空間**輸入 **CloudTrailMetrics**。

1. 在**指標名稱**中，輸入 **IAMPolicyEventCount**。

1. 在**指標值**中，輸入 **1**。

1. 保留 **Default value** (預設值) 空白。

1. 選擇 **Next** (下一步)。

1. 在 **Review and create** (檢閱和建立) 頁面上，檢閱您的選擇。選擇 **Create metric filter** (建立指標篩選條件) 以建立篩選條件，或選擇 **Edit** (編輯) 返回並變更值。

### 建立警示
<a name="cloudwatch-alarms-for-cloudtrail-iam-policy-changes-create-alarm"></a>

建立指標篩選條件之後，CloudTrail 線索日誌群組的 CloudWatch Logs 日誌群組詳細資訊頁面就會開啟。請依照此程序來建立警示。

1. 在**指標篩選條件**索引標籤上，尋找您在 [建立指標篩選條件](#cloudwatch-alarms-for-cloudtrail-iam-policy-changes-metric-filter) 中建立的指標篩選條件。填入指標篩選條件的核取方塊。在 **Metric filters** (指標篩選條件) 列，選擇 **Create alarm** (建立警示)。

1. 在 **Create Alarm** (建立警示) 頁面的 **Specify metric and conditions** (指定指標和條件) 中，輸入下列內容。

   1. 針對 **Graph** (圖形)，根據您在建立警示時所做的其他設定，該行被設置為 **1**。

   1. 針對 **Metric name** (指標名稱)，請保留目前的指標名稱**IAMPolicyEventCount**。

   1. 針對 **Statistic** (統計數字)，保留預設值。**Sum**。

   1. 針對 **Period** (期間)，保留預設值。**5 minutes**。

   1. 在 **Conditions ** (條件) 中，針對 **Threshold type **(閾值類型)，選擇 **Static **(靜態)。

   1. 針對**無論何時 *metric\$1name* 為 **，選擇 **Greater/Equal** (大於/等於)。

   1. 對於閾值，輸入 **1**。

   1. 在 **Additional configuration** (其他組態) 中，保留預設值。選擇**下一步**。

1. 在**設定動作**頁面上，對於**通知**，選擇**警示中**，表示當超過 5 分鐘內 1 個變更事件的閾值時，會採取動作，而 **IAMPolicyEventCount** 處於警示狀態。

   1. 對於**將通知傳送至下列 SNS 主題**，選擇**建立新主題**。

   1. 輸入 **IAM\$1Policy\$1Changes\$1CloudWatch\$1Alarms\$1Topic** 作為新 Amazon SNS 主題的名稱。

   1. 在**將接收通知的電子郵件端點**中，輸入您要在發出此警示時接收通知的使用者電子郵件地址。以逗號分隔電子郵件地址。

      每個電子郵件收件者會收到電子郵件，要求他們確認是否要訂閱 Amazon SNS 主題。

   1. 請選擇**建立主題**。

1. 在此範例中，略過其他動作類型。選擇 **Next** (下一步)。

1. 在 **Add name and description** (新增名稱和說明) 頁面中，輸入警示的易記名稱和說明。在此範例中，請輸入 **IAM Policy Changes** 作為名稱，**Raises alarms if IAM policy changes occur** 作為說明。選擇 **Next** (下一步)。

1. 在 **Preview and create** (預覽和建立) 頁面上，檢閱您的選擇。選擇 **Edit **(編輯) 來進行變更，或者選擇 **Create alarm** (建立警示) 來建立警示。

   建立警示後，CloudWatch 會開啟 **Alarms** (警示) 頁面。警示 **Actions** (動作) 欄位顯示 **Pending confirmation** (等待確認)，直到 SNS 主題上的所有電子郵件收件者都確認他們想要訂閱 SNS 通知。

## 設定 CloudWatch Logs 警示的通知
<a name="cloudtrail-configure-notifications-for-cloudwatch-logs-alarms"></a>

您可以設定 CloudWatch Logs 在每次 CloudTrail 警示觸發時傳送通知。這可讓您快速回應在 CloudTrail 事件中擷取到和 CloudWatch Logs 偵測到的重要操作事件。CloudWatch 使用 Amazon Simple Notification Service (SNS) 傳送電子郵件。如需詳細資訊，請參閱《*CloudWatch 使用者指南*》中的[設定 Amazon SNS 通知](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Notify_Users_Alarm_Changes.html#US_SetupSNS)。