Amazon ECS 接口 VPC 端点 (AWS PrivateLink) - Amazon Elastic Container Service

Amazon ECS 接口 VPC 端点 (AWS PrivateLink)

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

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

注意事项

从 2023 年 12 月 23 日起推出的区域中的端点注意事项

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

  • 您必须拥有以下区域特定的 VPC 端点:

    注意

    如果未配置所有端点,则您的流量将通过公共端点,而不是 VPC 端点。

    • com.amazonaws.region.ecs-agent

    • com.amazonaws.region.ecs-telemetry

    • com.amazonaws.region.ecs

    例如,加拿大西部(卡尔加里)(ca-west-1)区域需要以下 VPC 端点:

    • com.amazonaws.ca-west-1.ecs-agent

    • com.amazonaws.ca-west-1.ecs-telemetry

    • com.amazonaws.ca-west-1.ecs

  • 使用模板在新区域中创建 AWS 资源并且该模板是从 2023 年 12 月 23 日之前推出的区域复制而来时,则根据具体的复制来源区域,请执行以下操作之一。

    例如,复制来源区域为美国东部(弗吉尼亚州北部)(us-east-1),复制目的地区域为加拿大西部(卡尔加里)(ca-west-1)。

    配置 操作

    复制来源区域没有任何 VPC 端点。

    为新区域创建所有三个 VPC 端点(例如 com.amazonaws.ca-west-1.ecs-agent)。

    复制来源区域包含区域特定的 VPC 端点。

    1. 为新区域创建所有三个 VPC 端点(例如 com.amazonaws.ca-west-1.ecs-agent)。

    2. 删除复制来源区域的所有三个 VPC 端点(例如 com.amazonaws.us-east-1.ecs-agent)。

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

ecr.dkrecr.api 的 VPC 端点所在 VPC 与部署 Fargate 任务的 VPC 相同时,则将使用该 VPC 端点。如果没有 VPC 端点,则其将使用 Fargate 接口。

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

  • 使用 Fargate 启动类型的任务不需要 Amazon ECS 的接口 VPC 端点,但您可能需要 Amazon ECR、Secrets Manager 或 Amazon CloudWatch Logs 的接口 VPC 端点,如以下几点所述。

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

      重要

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

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

    • 如果您的 VPC 没有互联网网关,并且您的任务使用 awslogs 日志驱动程序将日志信息发送到 CloudWatch Logs,则必须为 CloudWatch Logs 创建一个接口 VPC 端点。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的将 CloudWatch Logs 与接口 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 端点的列表,请参阅 Amazon ECS 端点和配额

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

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

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

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

  • 如果您的 VPC 没有互联网网关,并且您的任务使用 awslogs 日志驱动程序将日志信息发送到 CloudWatch Logs,则必须为 CloudWatch Logs 创建一个接口 VPC 端点。有关更多信息,请参阅 Amazon CloudWatch Logs 用户指南中的将 CloudWatch Logs 与接口 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 终端节点后创建容器实例,则顺序无关紧要。

注意

如果未配置所有端点,则您的流量将通过公共端点,而不是 VPC 端点。

  • com.amazonaws.region.ecs-agent

  • com.amazonaws.region.ecs-telemetry

  • com.amazonaws.region.ecs

注意

区域 表示 Amazon ECS 支持的 AWS 区域的区域标识符,例如美国东部(俄亥俄)区域的 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": [ "*" ] } ] }