本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 集群的运行时覆盖率和故障排除
Amazon ECS 集群的运行时间覆盖范围包括在 Amazon ECS 容器实例上 AWS Fargate 运行的任务1。
对于在 Fargate 上运行的 Amazon ECS 集群,运行时间覆盖率是在任务级别评估的。ECS 集群运行时覆盖率包括在您为 Fargate(仅限 ECS)启用了运行时监控和自动代理配置后开始运行的 Fargate 任务。默认情况下,Fargate 任务是不可变的。 GuardDuty 将无法安装安全代理来监视已在运行的任务上的容器。要包含此类 Fargate 任务,必须停止并重新启动该任务。务必要检查相关服务是否受支持。
有关 Amazon ECS 容器的信息,请参阅容量创建。
查看覆盖率统计数据
对于与您自己的账户或成员账户关联的 Amazon ECS 资源,覆盖率统计数据是选定 AWS 区域中正常 Amazon ECS 集群占所有 Amazon ECS 集群的百分比。这包括对与 Fargate 和 Amazon 实例关联的 Ama EC2 zon ECS 集群的保障。下式将其表示为:
(正常集群/所有集群)*100
注意事项
-
ECS 集群的覆盖率统计数据包括与该 ECS 集群关联的 Fargate 任务或 ECS 容器实例的覆盖率状态。Fargate 任务的覆盖率状态包括处于正在运行状态或最近完成运行的任务。
-
在 ECS 集群运行时覆盖率选项卡中,覆盖的容器实例字段指示与 Amazon ECS 集群关联的容器实例的覆盖率状态。
如果 Amazon ECS 集群仅包含 Fargate 任务,则计数将显示为 0/0。
-
如果您的 Amazon ECS 集群与一个没有安全代理的 Amazon EC2 实例相关联,则 Amazon ECS 集群的覆盖范围也将处于不健康状态。
要确定关联亚马逊 EC2 实例的覆盖范围问题并对其进行故障排除,对 Amazon EC2 运行时覆盖问题进行故障排除请参阅 Amazon EC2 实例。
选择一种访问方法来查看您账户的覆盖率统计数据。
有关覆盖率问题的更多信息,请参阅对 Amazon ECS-Fargate 运行时覆盖率问题进行故障排除。
保险状态会随着 EventBridge通知而变化
Amazon ECS 集群的覆盖率状态可能显示为不正常。要检测覆盖率状态何时变为不正常,我们建议您定期监控覆盖率状态,并在状态变为不正常时进行故障排除。或者,您可以创建 Amazon EventBridge 规则,以便在保险状态从 “不健康” 变为 “健康” 或其他情况时收到通知。默认情况下,会在EventBridge 公交车上为您的账户 GuardDuty 发布此内容。
示例通知架构
在 EventBridge 规则中,您可以使用预定义的示例事件和事件模式来接收覆盖状态通知。有关创建 EventBridge 规则的更多信息,请参阅 Amazon EventBridge 用户指南中的创建规则。
此外,您还可以使用以下示例通知架构来创建自定义事件模式。确保替换账户的值。要在您的 Amazon ECS 集群的覆盖状态从变Healthy
为时收到通知Unhealthy
,detail-type
应该是GuardDuty Runtime
Protection Unhealthy
。要在保险状态从变为时收到通知Healthy
,Unhealthy
请将的detail-type
值替换为GuardDuty Runtime Protection Healthy
。
{ "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 运行时覆盖率问题进行故障排除
如果 Amazon ECS 集群的覆盖率状态为不正常,则可以在问题列下查看原因。
下表提供了 Fargate(仅限 Amazon ECS)问题的建议故障排除步骤。有关亚马逊 EC2 实例覆盖范围问题的信息,对 Amazon EC2 运行时覆盖问题进行故障排除请参阅 Amazon EC2 实例。
问题类型 | 额外信息 | 建议的问题排查步骤 |
---|---|---|
代理未报告 |
代理未报告 |
验证 Amazon ECS 集群的 VPC 端点配置是否正确。有关更多信息,请参阅 验证 VPC 端点配置。 如果您的组织设置了服务控制策略(SCP),请验证权限边界未限制 |
|
在额外信息部分中查看 VPC 问题的详细信息。 |
|
代理已退出 |
ExitCode: |
在额外信息部分中查看问题详细信息。 |
原因: |
||
ExitCode: |
||
代理已退出:原因: |
任务执行角色必须具有以下 Amazon Elastic Container Registry(Amazon ECR)权限:
有关更多信息,请参阅 提供 ECR 权限和子网详细信息。 添加 Amazon ECR 权限后,必须重启任务。 如果问题仍然存在,请参阅我的 AWS Step Functions 工作流意外失败。 |
|
VPC 端点创建失败 |
启用私有 DNS 需要同时启用私有 DNS, |
确保以下 VPC 属性设置为 如果您使用的 Amazon VPC 控制台创建亚马逊 VPC,请务必同时选择 “启用 DNS 主机名” 和 “启用 DNS 解析”。https://console.aws.amazon.com/vpc/ |
未预置代理 |
|
某个不受支持的 |
中任务的 CPU 架构 |
此任务在不受支持的 CPU 架构上运行。有关支持的 CPU 架构的更多信息,请参阅验证架构要求。 |
|
|
缺失 ECS 任务执行角色。有关提供任务执行角色和所需权限的信息,请参阅提供 ECR 权限和子网详细信息。 |
|
|
网络配置问题出现的原因可能是 VPC 配置缺失或子网缺失或为空。 验证您的网络配置是否正确。有关更多信息,请参阅 提供 ECR 权限和子网详细信息。 有关更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Amazon ECS 任务定义参数。 |
|
集群带有排除标签时启动的任务将排除在运行时监控之外。受影响的任务 ID: ' |
当您将预定义的 GuardDuty 标签从 将标签更新为 |
|
集群带有排除标签时部署的服务将排除在运行时监控之外。受影响的服务名称:' |
使用排除标签 将标签更新为 |
|
未涵盖在启用自动代理配置之前启动的任务。受影响的任务 ID: |
当集群包含在为 Amazon ECS 启用自动代理配置之前启动的任务时, GuardDuty 将无法对其进行保护。重新启动任务以供其监控。 GuardDuty |
|
在启用自动代理配置之前部署的服务不包括在内。受影响的服务名称:' |
如果在为 Amazon ECS 启用自动代理配置之前部署服务, GuardDuty则不会接收 ECS 集群的运行时事件。 |
|
服务 “ |
不支持在启用运行时监控之前启动的服务。 您可以按照《亚马逊弹性容器服务开发者指南》中使用控制台更新 Amazon ECS 服务下的步骤重启服务或使用 |
|
在启用运行时监控之前启动的任务需要重新启动。受影响的任务 ID: |
在 Amazon ECS 中,任务是不可变的。要评估运行时行为或正在运行的 AWS Fargate 任务,请确保已启用运行时监控,然后重新启动任务 GuardDuty以添加容器 sidecar。 |
|
其他 |
|
使用以下问题来确定问题的根本原因:
|