【问题标题】:Connecting to S3 bucket thru S3 VPC Endpoint inside EC2 instance timing out通过 EC2 实例内的 S3 VPC 端点连接到 S3 存储桶超时
【发布时间】:2016-07-23 06:55:17
【问题描述】:

我从私有子网中运行的 EC2 实例内部收到“无法连接到端点 URL:“https://s3.amazonaws.com/

这是一个配置:

  1. 创建了一个具有 2 个私有子网(是.. 没有公共子网)的 VPC,即 使用 VPN 连接连接到我们的数据中心。此 VPC 不 有任何 IG 或 NAT。

  2. 在内部创建 EC2 实例(Amazon Linux AMI) 私有子网之一。

  3. 使用 Putty 连接到 EC2- 成功地。
  4. 现在创建了一个端点 - S3 连接到 VPC(在第 1 步中)和策略如下(由 aws 提供 管理控制台):

    {
        "Statement": [
            {
                "Action": "*",
                "Effect": "Allow",
                "Resource": "*",
                "Principal": "*"
            }
        ]
    } 
    
  5. 路由会自动添加到目的地为 pl-xxxxxxxx(com.amazonaws.us-east-1.s3) 且目标为 在第 4 步中创建的端点,状态为 Active,Propogated - No
  6. 在 VPC 的安全组中添加了 2 个出站规则:(HTTP:80, HTTP:443) 到目标前缀 s3 端点,以 pl-xxxxxxxx(同第 5 步)。
  7. 使用亚马逊管理控制台在 S3 中创建了一个存储桶
  8. 编辑桶策略如下

        {
        "Version": "2012-10-17",
        "Id": "Policy1459706251964",
        "Statement": [
            {
                "Sid": "Stmt1459706246215",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:*",
                "Resource": [
                    "arn:aws:s3:::mybucket/*",
                    "arn:aws:s3:::mybucket"
                ]
            }
        ]
    }
    
  9. 现在在腻子会话中输入以下命令

     aws s3 ls --debug --endpoint-url https://s3.amazonaws.com/mybucket
    
  10. 我收到“EndpointConnectionError:无法连接到 #9 中的端点 URL

我知道我遗漏了一些东西..任何帮助都会很大 赞赏..

【问题讨论】:

  • 我不确定你从哪里得到us-east1.s3.amazonaws.com,但这几乎肯定是无效的。在 us-east-1 区域中,S3 的正确端点是 s3.amazonaws.coms3-external-1.amazonaws.com
  • @Michael-sqlbot - 你是对的。在 AWS 文档中,对于东海岸 - 它是 s3.amazon.com。我试过了,但没有用。然后我搜索了一下,发现有人遇到了类似的问题,他指的是 {us-east1.s3.amazonaws.com}。现在我重新更正了同样的错误。
  • 路由自动添加到VPC路由 ...自动添加?这听起来不对,但我是从记忆中开始的——验证 所有 适当的路由表,尤其是用于此实例子网的路由表确实具有该 pl-xxxxxxxx 条目。然后,我会放宽出站安全组以允许所有流量,然后查看您是否有连接。您不想一次解决多个问题。
  • @Michael-sqlbot - 听从你的指示:
  • 我还检查了子网中是否定义了 。然后我检查了 VPC 的路由。它已正确定义,并且具有 3 routes defined- 1) <VPC CIDR> as Destination, "local" as Target, "Active" as Status and "No" as "Propogated" 2)<pl-xxxxxxx> as Destination, "<vpcendpoint>" as Target, "Active" as Status and "No" as "Propogated" 3) 0.0.0.0/0 as Destination, "<VGW>" as Target, "Active" as Status and "Yes" as Propogated 然后我放宽了与此 VPC 关联的安全组的出站规则并允许所有流量。

标签: amazon-web-services amazon-s3 amazon-ec2 amazon-vpc


【解决方案1】:

如果有人遇到类似问题,请与您的公司 IT 部门核实 DNS 解析是否正确设置。解决方法是 - 在等待我们的内部 IT 完成这项工作时,我使用了 Amazon DNS。

【讨论】:

  • 是的,可以做到。有几个令人信服的理由坚持使用 VPC 解析器而不是使用您的公司 DNS 服务器。您可以将“私有”Route 53 托管区域与您的 VPC 关联,作为解决“内部”主机名的一种方式,如果这是一个问题的话。使用依赖于 VPN 连接的外部 DNS 当然意味着更高的延迟,并依赖于 VPN 连接的可用性,以便您在 AWS 中部署的内容正常运行。
猜你喜欢
  • 2019-01-14
  • 1970-01-01
  • 1970-01-01
  • 2016-01-22
  • 2019-09-29
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2021-02-22
相关资源
最近更新 更多