Amazon ECS 接口 VPC 端点 (Amazon PrivateLink) - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon ECS 接口 VPC 端点 (Amazon PrivateLink)

您可以将 Amazon ECS 配置为使用接口 VPC 端点以改善 VPC 的安全状况。接口终端节点由一项技术提供支持 Amazon PrivateLink,该技术允许您使用私有 IP 地址私密访问 Amazon ECS API。 Amazon PrivateLink 将您的 VPC 和 Amazon ECS 之间的所有网络流量限制到亚马逊网络。您无需互联网网关、NAT 设备或虚拟私有网关。

有关 Amazon PrivateLink 和 VPC 终端节点的更多信息,请参阅 Amazon VPC 用户指南中的 VPC 终端节点

Amazon ECS VPC 端点注意事项

Fargate 启动类型的 Amazon ECS VPC 端点的考虑因素

在为 Amazon ECS 设置接口 VPC 端点之前,请注意以下事项:

  • 使用 Fargate 启动类型的任务不需要亚马逊 ECS 的接口 VPC 终端节点,但您可能需要以下几点中描述的 Amazon ECR、Secret CloudWatch s Manager 或 Amazon Logs 的接口 VPC 终端节点。

    • 要允许您的任务从 Amazon ECR 拉取私有镜像,您必须为 Amazon ECR 创建接口 VPC 端点。有关更多信息,请参阅 Amazon Elastic Container Registry 用户指南中的接口 VPC 端点 (Amazon PrivateLink)

      如果您的 VPC 没有互联网网关,您必须为 Amazon S3 创建网关端点。有关更多信息,请参阅《Amazon Elastic Container Registry 用户指南》中的创建 Amazon S3 网关端点。Amazon S3 的接口端点不能与 Amazon ECR 一起使用。

      重要

      如果您将 Amazon ECR 配置为使用接口 VPC 端点,则可以创建包含条件键的任务执行角色,以限制对特定 VPC 或 VPC 端点的访问。有关更多信息,请参阅 通过接口端点拉取 Amazon ECR 映像的 Fargate 任务的可选 IAM 权限

    • 要允许您的任务从 Secrets Manager 拉取敏感数据,您必须为 Secrets Manager 创建接口 VPC 端点。有关更多信息,请参阅 Amazon Secrets Manager 用户指南中的将 Secrets Manager 与 VPC 端点结合使用

    • 如果您的 VPC 没有 Internet 网关,并且您的任务使用awslogs日志驱动程序向日志发送日志信息,则必须为 CloudWatch 日志创建接口 VPC 终端节点。 CloudWatch 有关更多信息,请参阅 Amazon CloudWatch CloudWatch 日志用户指南中的将日志与接口 VPC 终端节点配合使用

  • VPC 端点当前不支持跨区域请求。确保在计划向 Amazon ECS 发出 API 调用的同一区域中创建端点。例如,假设您要在美国东部(弗吉尼亚州北部)运行任务。然后,您必须在美国东部(弗吉尼亚州北部)创建 Amazon ECS VPC 端点。在任何其他区域创建的 Amazon ECS VPC 端点都无法在美国东部(弗吉尼亚州北部)运行任务。

  • VPC 端点仅通过 Amazon Route 53 支持 Amazon 提供的 DNS。如果您希望使用自己的 DNS,可以使用条件 DNS 转发。有关更多信息,请参阅《Amazon VPC 用户指南》中的 DHCP 选项集

  • 附加到 VPC 端点的安全组必须允许 TCP 端口 443 上来自 VPC 私有子网的传入连接。

  • Envoy 代理的 Service Connect 管理使用 com.amazonaws.region.ecs-agent VPC 端点。当您不使用 VPC 端点时,Envoy 代理的 Service Connect 管理将使用该区域中的 ecs-sc 端点。有关每个区域的 Amazon ECS 端点的列表,请参阅 北京区域端点宁夏区域端点

EC2 启动类型的 Amazon ECS VPC 端点的考虑因素

在为 Amazon ECS 设置接口 VPC 端点之前,请注意以下事项:

  • 使用 EC2 启动类型的任务要求启动它们的容器实例运行 1.25.1 或更高版本的 Amazon ECS 容器代理。有关更多信息,请参阅 Linux 容器实例管理

  • 要允许您的任务从 Secrets Manager 拉取敏感数据,您必须为 Secrets Manager 创建接口 VPC 端点。有关更多信息,请参阅 Amazon Secrets Manager 用户指南中的将 Secrets Manager 与 VPC 端点结合使用

  • 如果您的 VPC 没有 Internet 网关,并且您的任务使用awslogs日志驱动程序向日志发送日志信息,则必须为 CloudWatch 日志创建接口 VPC 终端节点。 CloudWatch 有关更多信息,请参阅 Amazon CloudWatch CloudWatch 日志用户指南中的将日志与接口 VPC 终端节点配合使用

  • VPC 端点当前不支持跨区域请求。确保在计划向 Amazon ECS 发出 API 调用的同一区域中创建端点。例如,假设您要在美国东部(弗吉尼亚州北部)运行任务。然后,您必须在美国东部(弗吉尼亚州北部)创建 Amazon ECS VPC 端点。在任何其他区域创建的 Amazon ECS VPC 端点都无法在美国东部(弗吉尼亚州北部)运行任务。

  • VPC 端点仅通过 Amazon Route 53 支持 Amazon 提供的 DNS。如果您希望使用自己的 DNS,可以使用条件 DNS 转发。有关更多信息,请参阅《Amazon VPC 用户指南》中的 DHCP 选项集

  • 附加到 VPC 端点的安全组必须允许 TCP 端口 443 上来自 VPC 私有子网的传入连接。

为 Amazon ECS 创建 VPC 端点

要为 Amazon ECS 服务创建VPC端点,请使用 Amazon VPC 用户指南中的创建接口端点过程创建以下端点。如果您的 VPC 中当前有容器实例,则应按其列出的顺序创建终端节点。如果您计划在创建 VPC 终端节点后创建容器实例,则顺序无关紧要。

  • com.amazonaws.region.ecs-agent

  • com.amazonaws.region.ecs-telemetry

  • com.amazonaws.region.ecs

注意

区域 表示 Amazon ECS 支持的 Amazon 区域的区域标识符,例如美国东部(俄亥俄)区域的 us-east-2

ecs-agent端节点使用 ecs:poll API,ecs-telemetry终端节点使用ecs:pollecs:StartTelemetrySession API。

如果您当前有使用 EC2 启动类型的任务,则在创建 VPC 端点后,每个容器实例都需要采用新的配置。为实现此目的,您必须重新启动每个容器实例或重新启动每个容器实例上的 Amazon ECS 容器代理。要重新启动容器代理,请执行以下操作。

重启 Amazon ECS 容器代理
  1. 通过 SSH 登录到容器实例。

  2. 停止 容器代理。

    sudo docker stop ecs-agent
  3. 启动容器代理。

    sudo docker start ecs-agent

在创建 VPC 端点并在每个容器实例上重新启动 Amazon ECS 容器代理后,所有新启动的任务都将采用新配置。

为 Amazon ECS 创建 VPC 端点策略

您可以为 VPC 端点附加控制对 Amazon ECS 的访问的端点策略。该策略指定以下信息:

  • 可执行操作的主体。

  • 可执行的操作。

  • 可对其执行操作的资源。

有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 端点控制对服务的访问

示例:Amazon ECS 操作的 VPC 端点策略

下面是用于 Amazon ECS 的端点策略示例。当附加到终端节点时,此策略会向您授予创建和列出集群的访问权限。CreateClusterListClusters 操作不接受任何资源,因此,所有资源的资源定义将设置为 *。

{ "Statement":[ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:ListClusters" ], "Resource": [ "*" ] } ] }