本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon ECS 接口 VPC 终端节点 (AWS PrivateLink)
您可以将 Amazon ECS 配置为使用接口 VPC 终端节点以改善 VPC 的安全状况。接口终端节点由 AWS PrivateLink 提供支持,您可以使用该技术通过私有 IP 地址私下访问 Amazon ECS API。PrivateLink 将 VPC 和 Amazon ECS 之间的所有网络流量限制在 Amazon 网络以内。您无需互联网网关、NAT 设备或虚拟私有网关。
有关 AWS PrivateLink 和 VPC 终端节点的更多信息,请参阅 中的 VPC 终端节点。Amazon VPC 用户指南
关于 Amazon ECS VPC 终端节点的注意事项
在为 Amazon ECS 设置接口 VPC 终端节点之前,请注意以下事项:
-
使用 Fargate 启动类型的任务无需 Amazon ECS 的接口 VPC 终端节点,但您可能需要 Amazon ECR、Secrets Manager 或 Amazon CloudWatch Logs 的接口 VPC 终端节点,如以下要点中所述。
-
要允许您的任务从 Amazon ECR 拉取私有镜像,您必须为 Amazon ECR. 创建接口 VPC 终端节点。有关更多信息,请参阅 中的AWS接口 VPC 终端节点 ( PrivateLink)。Amazon Elastic Container Registry 用户指南
重要 如果您将 Amazon ECR 配置为使用接口 VPC 终端节点,则可以创建包含条件键的任务执行角色,以限制对特定 VPC 或 VPC 终端节点的访问。有关更多信息,请参阅 可选 IAM 权限 Fargate 任务拉动 Amazon ECR 界面端点上的图像.
-
要允许您的任务从 Secrets Manager 拉取敏感数据,您必须为 Secrets Manager. 创建接口 VPC 终端节点。有关更多信息,请参阅 https://docs.amazonaws.cn/secretsmanager/latest/userguide/vpc-endpoint-overview.html 中的将 Secrets Manager 与 VPC 终端节点结合使用AWS Secrets Manager 用户指南。
-
如果您的 VPC 没有 Internet 网关,并且您的任务使用
awslogs
日志驱动程序将日志信息发送到 CloudWatch Logs,则必须为 CloudWatch Logs. 创建接口 VPC 终端节点。有关更多信息,请参阅 CloudWatch Logs 中的将 Amazon CloudWatch Logs User Guide 与接口 VPC 终端节点一起使用.
-
-
使用 EC2 启动类型的任务要求启动它们的容器实例运行
1.25.1
或更高版本的 Amazon ECS 容器代理。有关更多信息,请参阅 Amazon ECS 容器代理版本. -
VPC 终端节点当前不支持跨区域请求。确保在计划向 发出 API 调用的同一区域中创建终端节点。Amazon ECS.
-
VPC 终端节点仅通过 支持 Amazon 提供的 DNS。Amazon Route 53. 如果您希望使用自己的 DNS,可以使用条件 DNS 转发。有关更多信息,请参阅https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/VPC_DHCP_Options.html中的 Amazon VPC 用户指南DHCP 选项集.
-
附加到 VPC 终端节点的安全组必须允许端口 443 上来自 VPC 的私有子网的传入连接。
为 创建 VPC 终端节点Amazon ECS
要为 Amazon ECS 服务创建 VPC 终端节点,请使用 https://docs.amazonaws.cn/AmazonVPC/latest/UserGuide/vpce-interface.html#create-interface-endpoint 中的Amazon VPC 用户指南创建接口终端节点过程来创建以下终端节点。如果您的 VPC 中当前有容器实例,则应按其列出的顺序创建终端节点。如果您计划在创建 VPC 终端节点后创建容器实例,则顺序无关紧要。
-
com.amazonaws.
region
.ecs-agent -
com.amazonaws.
region
.ecs-telemetry -
com.amazonaws.
region
.ecs
region
表示 AWS 支持的 Amazon ECS 区域的区域标识符,例如 us-east-2
的 美国东部(俄亥俄)区域。
如果您当前有使用 EC2 启动类型的任务,则在创建 VPC 终端节点后,每个容器实例都需要采用新的配置。为实现此目的,您必须重新启动每个容器实例或重新启动每个容器实例上的 Amazon ECS 容器代理。要重新启动容器代理,请执行以下操作。
重新启动 Amazon ECS 容器代理
-
通过 SSH 登录到容器实例。有关更多信息,请参阅 连接到您的容器实例.
-
停止 容器代理。
sudo docker stop ecs-agent
-
启动容器代理。
sudo docker start ecs-agent
在创建 VPC 终端节点并在每个容器实例上重新启动 Amazon ECS 容器代理后,所有新启动的任务都将采用新配置。
创建 Secrets Manager 和 Systems Manager 终端节点
如果您在任务定义中引用 Secrets Manager 密钥或 Systems Manager 参数仓库参数以将敏感数据注入到容器中,则需要为 Secrets Manager 或 Systems Manager 创建接口 VPC 终端节点,以便这些任务可以访问这些服务。您只需通过托管敏感数据的特定服务创建终端节点。有关更多信息,请参阅 指定敏感数据.
有关 Secrets Manager VPC 终端节点的更多信息,请参阅 中的Secrets Manager将 与 VPC 终端节点结合使用。AWS Secrets Manager 用户指南
有关 Systems Manager VPC 终端节点的更多信息,请参阅 中的Systems Manager将 与 VPC 终端节点结合使用。AWS Systems Manager 用户指南
为 创建 VPC 终端节点策略Amazon ECS
您可以为 VPC 终端节点附加控制对 的访问的终端节点策略。Amazon ECS. 该策略指定以下信息:
-
可执行操作的委托人。
-
可执行的操作。
-
可对其执行操作的资源。
有关更多信息,请参阅 Amazon VPC 用户指南 中的使用 VPC 终端节点控制对服务的访问。
示例:Amazon ECS 操作的 VPC 终端节点策略
下面是用于 的终端节点策略示例。Amazon ECS. 附加到终端节点时,此策略授予对所有资源上所有委托人列出的 Amazon ECS 操作的访问权限。
{ "Statement":[ { "Principal":"*", "Effect":"Allow", "Action":[ "ecs:
action-1
", "ecs:action-2
", "ecs:action-2
" ], "Resource":"*" } ] }