gpt4 book ai didi

amazon-web-services - ECS服务: can't pull docker image from ECR registry without assign public ip to service tasks

转载 作者:行者123 更新时间:2023-12-03 07:11:44 25 4
gpt4 key购买 nike

我有以下 cloudformation 堆栈,它定义了 ECS Service :

ApiService:
Type: AWS::ECS::Service
DependsOn:
- LoadBalancerListener80
- LoadBalancerListener443
Properties:
Cluster: !Ref EcsClusterArn
DeploymentConfiguration:
MaximumPercent: 200
MinimumHealthyPercent: 100
DeploymentController:
Type: ECS
DesiredCount: 1
HealthCheckGracePeriodSeconds: 10
LaunchType: FARGATE
LoadBalancers:
- ContainerName: !Join ['-', ['container', !Ref AWS::StackName]]
ContainerPort: !Ref Port
TargetGroupArn: !Ref LoadBalancerTargetGroup
NetworkConfiguration:
AwsvpcConfiguration:
AssignPublicIp: ENABLED # <-- if disabled, pulling from ecr registry fails
SecurityGroups:
- !Ref ApiServiceContainerSecurityGroup
Subnets: !Ref Subnets
SchedulingStrategy: REPLICA
ServiceName: !Ref AWS::StackName
TaskDefinition: !Ref ApiServiceTaskDefinition

我注意到没有 enabling public IP auto-assign ,服务任务无法从 ECR 注册表中提取 docker 镜像。我不明白为什么我需要容器具有公共(public) IP 才能从注册表中提取图像...服务安全组允许所有出站流量,子网可以通过互联网网关访问互联网,并且 IAM 角色允许从ECR...那么为什么需要公共(public)IP?我不希望我的容器有公共(public) IP,它们应该只能在 VPC 内部访问。或者我误解了,这只是会接收公共(public) IP 的任务(无论出于何种原因),而容器在 VPC 内仍然是私有(private)的?

最佳答案

"the IAM role allows pulling from ECR"

IAM 角色仅授予其权限,不提供网络连接。

"the subnets can access the internet through an internet gateway"

我认为您会发现 Internet 网关仅提供对分配有公共(public) IP 的资源的 Internet 访问。

ECR 是一项存在于 VPC 外部的服务,因此您需要以下其中一项才能建立与 ECR 的网络连接:

  1. 公共(public)IP。

  2. NAT Gateway ,具有到子网中 NAT 网关的路由。

  3. ECR Interface VPC Endpoint ,具有到子网中端点的路由。

关于amazon-web-services - ECS服务: can't pull docker image from ECR registry without assign public ip to service tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66482570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com