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 端点。
-
为新区域创建所有三个 VPC 端点(例如
com.amazonaws.ca-west-1.ecs-agent
)。 -
删除复制来源区域的所有三个 VPC 端点(例如
com.amazonaws.us-east-1.ecs-agent
)。
-
Fargate 启动类型的 Amazon ECS VPC 端点的考虑因素
当 ecr.dkr
和 ecr.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.
VPC 端点。当您不使用 VPC 端点时,Envoy 代理的 Service Connect 管理将使用该区域中的region
.ecs-agentecs-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:poll
和 ecs:StartTelemetrySession
API。
如果您当前有使用 EC2 启动类型的任务,则在创建 VPC 端点后,每个容器实例都需要采用新的配置。为实现此目的,您必须重新启动每个容器实例或重新启动每个容器实例上的 Amazon ECS 容器代理。要重新启动容器代理,请执行以下操作。
重启 Amazon ECS 容器代理
-
通过 SSH 登录到容器实例。
-
停止 容器代理。
sudo docker stop ecs-agent
-
启动容器代理。
sudo docker start ecs-agent
在创建 VPC 端点并在每个容器实例上重新启动 Amazon ECS 容器代理后,所有新启动的任务都将采用新配置。
为 Amazon ECS 创建 VPC 端点策略
您可以为 VPC 端点附加控制对 Amazon ECS 的访问的端点策略。该策略指定以下信息:
-
可执行操作的主体。
-
可执行的操作。
-
可对其执行操作的资源。
有关更多信息,请参阅《Amazon VPC 用户指南》中的使用 VPC 端点控制对服务的访问。
示例:Amazon ECS 操作的 VPC 端点策略
下面是用于 Amazon ECS 的端点策略示例。当附加到终端节点时,此策略会向您授予创建和列出集群的访问权限。CreateCluster
和 ListClusters
操作不接受任何资源,因此,所有资源的资源定义将设置为 *。
{ "Statement":[ { "Effect": "Allow", "Action": [ "ecs:CreateCluster", "ecs:ListClusters" ], "Resource": [ "*" ] } ] }