本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 集群的运行时间覆盖和故障排除
Amazon ECS 集群的运行时覆盖范围包括运行的任务 AWS Fargate 和亚马逊ECS容器实例1。
对于在 Fargate 上运行的 Amazon ECS 集群,运行时间覆盖率是在任务级别评估的。ECS集群运行时覆盖范围包括那些在启用 Fargate 的运行时监控和自动代理配置后开始运行的 Fargate 任务(仅限)。ECS默认情况下,Fargate 任务是不可变的。 GuardDuty 将无法安装安全代理来监视已在运行的任务上的容器。要包含此类 Fargate 任务,必须停止并重新启动该任务。务必要检查相关服务是否受支持。
有关 Amazon ECS 容器的信息,请参阅容量创建。
查看覆盖率统计数据
与您自己的账户或成员账户关联的 Amazon ECS 资源的覆盖率统计数据是健康的亚马逊ECS集群占所选所有亚马逊ECS集群的百分比 AWS 区域。这包括对与 Fargate 和亚马逊ECS实例关联的亚马逊EC2集群的保障。下式将其表示为:
(正常集群/所有集群)*100
注意事项
-
集群的覆盖率统计数据包括与该ECS集群关联的 Fargate 任务或ECS容器实例的ECS覆盖状态。Fargate 任务的覆盖率状态包括处于正在运行状态或最近完成运行的任务。
-
在ECS集群运行时覆盖率选项卡中,已覆盖的容器实例字段表示与您的 Amazon ECS 集群关联的容器实例的覆盖状态。
如果您的 Amazon ECS 集群仅包含 Fargate 任务,则计数将显示为 0/0。
-
如果您的 Amazon ECS 集群与没有安全代理的 Amazon EC2 实例相关联,则该亚马逊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(ECS仅限亚马逊)问题的建议故障排除步骤。有关亚马逊EC2实例覆盖范围问题的信息,对 Amazon EC2 运行时覆盖问题进行故障排除请参阅 Amazon EC2 实例。
问题类型 | 额外信息 | 建议的问题排查步骤 |
---|---|---|
代理未报告 |
代理未报告 |
验证您的 Amazon ECS 集群任务的VPC终端节点配置是否正确。有关更多信息,请参阅 验证VPC端点配置。 如果您的组织有服务控制策略 (SCP),请验证权限边界是否限制了 |
|
在额外信息中查看VPC问题详情。 |
|
代理已退出 |
ExitCode: |
在额外信息部分中查看问题详细信息。 |
原因: |
||
ExitCode: |
||
代理已退出:原因: |
任务执行角色必须具有以下亚马逊弹性容器注册表 (AmazonECR) 权限:
有关更多信息,请参阅 提供ECR权限和子网详细信息。 添加 Amazon ECR 权限后,必须重新启动任务。 如果问题仍然存在,请参阅我的 AWS Step Functions 工作流意外失败。 |
|
VPC终端节点创建失败 |
启用私有DNS需要将两者的 |
确保将以下VPC属性设置为 如果您使用亚马逊VPC控制台创建亚马逊VPC,请务必同时选择 “启用DNS主机名” 和 “启用DNS解析”。https://console.aws.amazon.com/vpc/ |
未预置代理 |
|
某个不受支持的 |
中的任务不支持的CPU架构 |
此任务在不支持的CPU架构上运行。有关支持的CPU架构的信息,请参见验证架构要求。 |
|
|
缺少ECS任务执行角色。有关提供任务执行角色和所需权限的信息,请参阅提供ECR权限和子网详细信息。 |
|
|
网络配置问题可能是由于缺少VPC配置、子网缺失或为空而出现的。 验证您的网络配置是否正确。有关更多信息,请参阅 提供ECR权限和子网详细信息。 有关更多信息,请参阅《亚马逊弹性容器服务开发者指南》中的亚马逊ECS任务定义参数。 |
|
其他 |
|
使用以下问题来确定问题的根本原因:
|