

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

# Amazon ECS 叢集的執行期涵蓋範圍和疑難排解
<a name="gdu-assess-coverage-ecs"></a>

Amazon ECS 叢集的執行期涵蓋範圍包括在 AWS Fargate 和 Amazon ECS 容器執行個體上執行的任務[1](#ecs-container-instance)。

對於在 Fargate 上執行的 Amazon ECS 叢集，執行期涵蓋範圍會在任務層級進行評估。ECS 叢集執行期涵蓋範圍包括在您為 Fargate 啟用執行期監控和自動代理程式組態 （僅限 ECS) 之後開始執行的 Fargate 任務。根據預設，Fargate 任務是不可變的。GuardDuty 將無法安裝安全代理程式來監控已執行任務上的容器。若要包含這類 Fargate 任務，您必須停止並再次啟動任務。請務必檢查是否支援相關聯的服務。

如需 Amazon ECS 容器的相關資訊，請參閱[容量建立](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-capacity.html)。

**Topics**
+ [檢閱涵蓋範圍統計資料](#ecs-review-coverage-statistics-ecs-runtime-monitoring)
+ [使用 EventBridge 通知變更涵蓋範圍狀態](#ecs-runtime-monitoring-coverage-status-change)
+ [對 Amazon ECS-Fargate 執行期涵蓋範圍問題進行故障診斷](#ecs-runtime-monitoring-coverage-issues-troubleshoot)

## 檢閱涵蓋範圍統計資料
<a name="ecs-review-coverage-statistics-ecs-runtime-monitoring"></a>

與您自己的帳戶或成員帳戶相關聯的 Amazon ECS 資源涵蓋範圍統計資料，是所選 中所有 Amazon ECS 叢集中運作狀態良好的 Amazon ECS 叢集百分比 AWS 區域。這包括與 Fargate 和 Amazon EC2 執行個體相關聯的 Amazon ECS 叢集涵蓋範圍。可以用下列方程式將此表示為：

*(運作狀態良好的叢集/所有叢集) \$1 100*

### 考量事項
<a name="considerations-ecs-coverage-review-stats"></a>
+ ECS 叢集的涵蓋範圍統計資料包括 Fargate 任務或與 ECS 叢集相關聯的 ECS 容器執行個體涵蓋範圍狀態。Fargate 任務的涵蓋範圍狀態包括處於執行中狀態或最近完成執行的任務。
+ 在 **ECS 叢集執行時間涵蓋**範圍索引標籤中，**容器執行個體涵蓋**範圍欄位會指出與 Amazon ECS 叢集相關聯的容器執行個體涵蓋範圍狀態。

  如果您的 Amazon ECS 叢集僅包含 Fargate 任務，則計數會顯示為 **0/0**。
+ 如果您的 Amazon ECS 叢集與沒有安全代理程式的 Amazon EC2 執行個體相關聯，Amazon ECS 叢集也會有**運作狀態不佳**的涵蓋範圍狀態。

  若要識別相關聯 Amazon EC2 執行個體的涵蓋範圍問題並進行疑難排解，請參閱 Amazon EC2 執行個體[對 Amazon EC2 執行期涵蓋範圍問題進行故障診斷](gdu-assess-coverage-ec2.md#ec2-runtime-monitoring-coverage-issues-troubleshoot)的 。

選擇其中一種存取方法來檢閱您帳戶的涵蓋範圍統計資料。

------
#### [ Console ]
+ 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/)：// 開啟 GuardDuty 主控台。
+ 在導覽窗格中，選擇**執行期監控**。
+ 選擇**執行期涵蓋**範圍索引標籤。
+ 在 **ECS 叢集執行期涵蓋範圍**索引標籤下，您可以檢視叢集**清單**資料表中可用之每個 Amazon ECS 叢集涵蓋範圍狀態彙總的涵蓋範圍統計資料。
  + 您可以依下列資料欄篩選**叢集清單**資料表：
    + **帳戶 ID**
    + **叢集名稱**
    + **代理程式管理類型**
    + **涵蓋範圍狀態**
+ 如果您的任何 Amazon ECS 叢集的**涵蓋狀態**為**運作狀態不佳**，**問題**欄會包含**運作狀態不佳**原因的其他資訊。

  如果您 Amazon ECS 叢集與 Amazon EC2 執行個體相關聯，請導覽至 **EC2 執行個體執行期涵蓋範圍**索引標籤，並依**叢集名稱**欄位篩選，以檢視相關聯的**問題**。

------
#### [ API/CLI ]
+ 使用您自己的有效偵測器 ID、目前區域和服務端點執行 [ListCoverage](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListCoverage.html) API。您可以使用此 API 篩選和排序執行個體清單。
  + 您可以使用 `CriterionKey` 的下列選項之一變更範例 `filter-criteria`：
    + `ACCOUNT_ID`
    + `ECS_CLUSTER_NAME`
    + `COVERAGE_STATUS`
    + `MANAGEMENT_TYPE`
  + 您可以使用下列選項變更 `sort-criteria` 中的範例 `AttributeName`：
    + `ACCOUNT_ID`
    + `COVERAGE_STATUS`
    + `ISSUE`
    + `ECS_CLUSTER_NAME`
    + `UPDATED_AT`

      只有在相關聯的 Amazon ECS 叢集中建立新任務，或對應的涵蓋範圍狀態變更時， 欄位才會更新。
  + 您可以變更 *max-results* (最多 50 個)。
  + 若要尋找`detectorId`您帳戶和目前區域的 ，請參閱 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) 主控台中的**設定**頁面，或執行 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html) API。

  ```
  aws guardduty --region us-east-1 list-coverage --detector-id 12abc34d567e8fa901bc2d34e56789f0 --sort-criteria '{"AttributeName": "ECS_CLUSTER_NAME", "OrderBy": "DESC"}' --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"111122223333"}}] }'  --max-results 5
  ```
+ 執行 [GetCoverageStatistics](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_GetCoverageStatistics.html) API，以根據 `statisticsType` 擷取彙總的涵蓋範圍統計資料。
  + 您可以將範例 `statisticsType` 變更成下列選項之一：
    + `COUNT_BY_COVERAGE_STATUS` – 代表依涵蓋狀態彙總之 ECS 叢集的涵蓋範圍統計資料。
    + `COUNT_BY_RESOURCE_TYPE` – 根據清單中 AWS 資源類型彙總的涵蓋範圍統計資料。
    + 您可以在命令中變更範例 `filter-criteria`。您可將下列選項用於 `CriterionKey`：
      + `ACCOUNT_ID`
      + `ECS_CLUSTER_NAME`
      + `COVERAGE_STATUS`
      + `MANAGEMENT_TYPE`
      + `INSTANCE_ID`
  + 若要尋找`detectorId`您帳戶和目前區域的 ，請參閱 [https://console.aws.amazon.com/guardduty/](https://console.aws.amazon.com/guardduty/) 主控台中的**設定**頁面，或執行 [https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html](https://docs.aws.amazon.com/guardduty/latest/APIReference/API_ListDetectors.html) API。

  ```
  aws guardduty --region us-east-1 get-coverage-statistics --detector-id 12abc34d567e8fa901bc2d34e56789f0 --statistics-type COUNT_BY_COVERAGE_STATUS --filter-criteria '{"FilterCriterion":[{"CriterionKey":"ACCOUNT_ID", "FilterCondition":{"EqualsValue":"123456789012"}}] }'
  ```

------

如需涵蓋範圍問題的詳細資訊，請參閱 [對 Amazon ECS-Fargate 執行期涵蓋範圍問題進行故障診斷](#ecs-runtime-monitoring-coverage-issues-troubleshoot)。

## 使用 EventBridge 通知變更涵蓋範圍狀態
<a name="ecs-runtime-monitoring-coverage-status-change"></a>

Amazon ECS 叢集的涵蓋範圍狀態可能顯示為**運作狀態不佳**。若要了解涵蓋範圍狀態何時變更，建議您定期監控涵蓋範圍狀態，並在狀態變成**運作狀態不佳**時進行故障診斷。或者，您可以建立 Amazon EventBridge 規則，以在涵蓋範圍狀態從**運作狀態不佳**變更為**正常運作**或其他狀態時收到通知。GuardDuty 預設在您帳戶的[EventBridge 匯流排](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-event-bus.html)中發布此通知。

### 範例通知結構描述
<a name="ecs-gdu-coverage-status-eventbridge-schema"></a>

在 EventBridge 規則中，您可以使用預先定義的範例事件和事件模式來接收涵蓋範圍狀態通知。如需有關建立 EventBridge 規則的詳細資訊，請參閱《Amazon EventBridge 使用者指南》**中的[建立規則](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-get-started.html#eb-gs-create-rule)。

此外，您可以使用下列範例通知結構描述來建立自訂事件模式。請務必替換您帳戶的值。若要在 Amazon ECS 叢集的涵蓋範圍狀態從 變更為 `Healthy` 時收到通知`Unhealthy`， `detail-type` 應該是 *GuardDuty Runtime Protection Unhealthy*。若要在涵蓋範圍狀態從 `Unhealthy` 變更成 `Healthy` 時收到通知，請使用 *GuardDuty 執行期監控運作狀態不良*取代 `detail-type` 的值。

```
{
  "version": "0",
  "id": "event ID",
  "detail-type": "GuardDuty Runtime Protection Unhealthy",
  "source": "aws.guardduty",
  "account": "AWS 帳戶 ID",
  "time": "event timestamp (string)",
  "region": "AWS 區域",
  "resources": [
       ],
  "detail": {
    "schemaVersion": "1.0",
    "resourceAccountId": "string",
    "currentStatus": "string",
    "previousStatus": "string",
    "resourceDetails": {
        "resourceType": "ECS",
        "ecsClusterDetails": {
          "clusterName":"",
          "fargateDetails":{
            "issues":[],
            "managementType":""
          },
          "containerInstanceDetails":{
            "coveredContainerInstances":int,
            "compatibleContainerInstances":int
          }
        }
    },
    "issue": "string",
    "lastUpdatedAt": "timestamp"
  }
}
```

## 對 Amazon ECS-Fargate 執行期涵蓋範圍問題進行故障診斷
<a name="ecs-runtime-monitoring-coverage-issues-troubleshoot"></a>

如果 Amazon ECS 叢集的涵蓋範圍狀態為**狀況不良**，您可以在**問題**欄下檢視原因。

下表提供 Fargate （僅限 Amazon ECS) 問題的建議疑難排解步驟。如需 Amazon EC2 執行個體涵蓋範圍問題的資訊，請參閱適用於 Amazon EC2 執行個體[對 Amazon EC2 執行期涵蓋範圍問題進行故障診斷](gdu-assess-coverage-ec2.md#ec2-runtime-monitoring-coverage-issues-troubleshoot)的 。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/guardduty/latest/ug/gdu-assess-coverage-ecs.html)