Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 专用托管实例的docker hub和vpc端点的路由表:AWS_Amazon Web Services_Amazon S3_Amazon Ec2_Amazon Dynamodb_Amazon Ecs - Fatal编程技术网

Amazon web services 专用托管实例的docker hub和vpc端点的路由表:AWS

Amazon web services 专用托管实例的docker hub和vpc端点的路由表:AWS,amazon-web-services,amazon-s3,amazon-ec2,amazon-dynamodb,amazon-ecs,Amazon Web Services,Amazon S3,Amazon Ec2,Amazon Dynamodb,Amazon Ecs,我有一个docker映像,它只是一个Java应用程序。java应用程序从DynamoDB和S3存储桶读取数据并输出一些东西(这是一个测试应用程序)。我已将docker图像托管到公共docker hub repo上 在AWS中,我创建了私有子网,该子网通过AWS ECS托管EC2。现在要有高安全性;我将VPC端点用于容器的DynamoDB和S3 bucket操作 我使用NAT网关允许EC2从docker hub中提取docker图像 问题: 当我移除VPC端点时,应用程序能够通过NAT读取Dyna

我有一个docker映像,它只是一个Java应用程序。java应用程序从DynamoDB和S3存储桶读取数据并输出一些东西(这是一个测试应用程序)。我已将docker图像托管到公共docker hub repo上

在AWS中,我创建了私有子网,该子网通过AWS ECS托管EC2。现在要有高安全性;我将VPC端点用于容器的DynamoDB和S3 bucket操作

我使用NAT网关允许EC2从docker hub中提取docker图像

问题:

当我移除VPC端点时,应用程序能够通过NAT读取DynamoDB和S3。这意味着流量是通过公共网络传输的

想法:

  • 无法将Dockerhub的Ip地址列入白名单,因为它可能会更改
  • 由于AWS ECS处理所有docker pull etc任务,因此我无法控制自定义
  • 我不想使用AWS容器注册表。我更喜欢dockerhub
  • DynamoDB/S3专用地址未知
  • 问题:

  • 如何确保docker hub的流量只允许通过NAT
  • 如何确保DynamoDB和S3访问只能通过端点

  • 感谢您的帮助

    如果您希望仅将NAT(通过DNS主机名)上的出站流量限制为DockerHub,您将需要一个第三方解决方案,该解决方案可以在出站流量穿越internet之前允许或拒绝出站流量

    您将在具有NAT网关访问权限的单独子网中安装此设备。然后,在ECS的现有子网中,您将更新路由表,使
    0.0.0.0/0
    路由与此设备对话(通过指定其ENI)。如果您检查,可能已经有一个解决方案来完成域过滤器

    或者您可以自动创建一个工具,该工具能够为DockerHub清除白名单中的IP地址,然后让它将这些地址添加为允许使用NACL的所有流量规则。此NACL将仅应用于NAT网关所在的子网

    关于您的第二个问题,从VPC的角度来看,通过将S3和DynamoDB端点的前缀列表添加到路由表中,它将通过专用路由转发命中这些API端点的任何请求


    此时,DynamoDB无法阻止公共路由交互,但S3可以。根据其bucket策略,您可以拒绝任何尝试在列出的VPC端点之外进行交互的访问。但是,请注意不要阻止自己从控制台访问,只阻止您不希望允许的特定动词。

    谢谢。市场解决方案我不确定它至少对基于生产的解决方案有多好。VPCE的Bucket策略是一个很好的解决方案。但总的来说,对于基于产品的应用程序,我看不到更简单的解决方案,除非我选择使用AWS容器注册表,然后就不需要NAT了