Amazon ECS 介面 VPC 端點 (AWS PrivateLink) - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 介面 VPC 端點 (AWS PrivateLink)

透過設定 Amazon ECS 以使用介面 VPC 端點,可提升 VPC 的安全狀態。介面端點採用一種技術 AWS PrivateLink,可讓您使用私有 IP 地址來私下存取 Amazon ECS APIs。 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 端點的考量事項

當在部署 Fargate 任務的相同 VPC ecr.api中存在 ecr.dkr和 的 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 端點。如需詳細資訊,請參閱透過介面端點許可提取 Amazon ECR 映像的 Fargate 任務

    • 若要讓任務從 Secrets Manager 中提取敏感資料,您必須建立 Secrets Manager 的介面 VPC 端點。如需詳細資訊,請參閱 《AWS Secrets Manager 使用者指南》中的搭配使用 Secrets Manager 與 VPC 端點

    • 如果 VPC 沒有網際網路閘道且任務使用的是 awslogs 日誌驅動程式來將日誌資訊傳送至 CloudWatch Logs,您必須為 CloudWatch Logs 建立介面 VPC 端點。如需詳細資訊,請參閱《Amazon CloudWatch Logs 使用者指南》中的使用 CloudWatch Events 搭配介面 VPC 端點

  • VPC 端點目前不支援跨區域請求。請確保在計劃對 Amazon ECS 發出 API 呼叫的相同區域中建立端點。例如,假設您想在美國東部 (維吉尼亞北部) 執行任務。那麼,您必須在美國東部 (維吉尼亞北部) 建立 Amazon ECS VPC 端點。在任何其他區域建立的 Amazon ECS VPC 端點無法在美國東部 (維吉尼亞北部) 執行任務。

  • 透過 Amazon Route 53,VPC 端點僅支援 Amazon 提供的 DNS。如果您想要使用自己的 DNS,您可以使用條件式 DNS 轉送。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 DHCP 選項集

  • 連接到 VPC 端點的安全群組必須允許從 VPC 的私有子網路,透過 TCP 連接埠 443 傳入的連線。

  • 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 Events 搭配介面 VPC 端點

  • VPC 端點目前不支援跨區域請求。請確保在計劃對 Amazon ECS 發出 API 呼叫的相同區域中建立端點。例如,假設您想在美國東部 (維吉尼亞北部) 執行任務。那麼,您必須在美國東部 (維吉尼亞北部) 建立 Amazon ECS VPC 端點。在任何其他區域中建立的 Amazon ECS VPC 端點無法在美國東部 (維吉尼亞北部) 執行任務。

  • 透過 Amazon Route 53,VPC 端點僅支援 Amazon 提供的 DNS。如果您想要使用自己的 DNS,您可以使用條件式 DNS 轉送。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的 DHCP 選項集

  • 連接到 VPC 端點的安全群組必須允許從 VPC 的私有子網路,透過 TCP 連接埠 443 傳入的連線。

建立 Amazon ECS 的 VPC 端點

若要為 Amazon ECS 服務建立 VPC 端點,請使用 Amazon VPC 使用者指南中的使用界面 VPC 端點程序存取 AWS 服務來建立下列端點。如果您的 VPC 中有現有的容器執行個體,您應該依照其列出順序建立端點。如果您計劃在建立 VPC 端點後才建立您的容器執行個體,則其順序並不重要。

注意

如果您未設定所有端點,您的流量會經過公有端點,而不是 VPC 端點。

當您建立端點時,Amazon ECS 也會為端點建立私有 DNS 名稱。例如,ecs-a---region.amazonaws.com.rproxy.goskope.comecs-agent 和 ecs-t.region.amazonaws.com ecs-telemetry。

  • 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 端點政策

您可以將端點政策連接至控制 Amazon ECS 存取權的 VPC 端點。此政策會指定下列資訊:

  • 可執行動作的主體。

  • 可執行的動作。

  • 可供執行動作的資源。

如需詳細資訊,請參閱 Amazon VPC 使用者指南中的使用 VPC 端點控制對服務的存取

範例:Amazon ECS 動作的 VPC 端點政策

以下是 Amazon ECS 端點政策的範例。在連接至端點後,此政策會授予存取許可,以允許建立並列出叢集。CreateClusterListClusters 動作不接受任何資源,因此資源定義已針對所有資源設為 *。

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