S3存储桶的Route53子域别名

时间:2018-11-21 20:24:31

标签: amazon-web-services amazon-s3 amazon-route53 static-site

我正在尝试从S3存储桶中静态网页。

使用以下策略创建了S3存储桶test.dev.mydomain.com

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "PublicReadGetObject",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::test.dev.mydomain.com/*"
            }
        ]
    }

此后,我便可以访问http://test.dev.mydomain.com.s3-website-us-west-1.amazonaws.com

现在,我想在route53的mydomain.com下创建DNS记录。我试图在Route53中创建以下别名

名称: test.dev.mydomain.com
类型: A - IPv4 address(也尝试过CNAME
别名: Yes
别名目标: test.dev.mydomain.com.s3-website-us-west-1.amazonaws.com

但是得到 -Alias Target包含无效值。在保存记录时。

在John Rotenstein回答后,

更新

等待10分钟以上后可以从列表中选择存储桶并保存记录。

能够访问http://test.dev.mydomain.com.s3-website-us-west-1.amazonaws.com

但仍然test.dev.mydomain.com给予404 page not found

更新

最近的发现是test.dev.mydomain.com仅在Firefox中有效,在其他浏览器中无效。

2 个答案:

答案 0 :(得分:3)

我使它按如下方式工作:

  • 在ap-southeast-2区域中创建了一个Amazon S3存储桶
  • 激活的静态网站共享
  • 在Route 53中创建记录集,其内容如下:
    • 与存储桶名称匹配的DNS名称
    • 类型:A
    • 别名:是
    • 别名目标:从列表中选择的存储桶

注意:很久(10分钟?)之后,该存储桶才出现在列表中!

格式为:

  • 存储桶名称:foo.domain.com
  • 别名目标:s3-website-ap-southeast-2.amazonaws.com

请注意,目标不包含存储桶名称!。这是因为DNS名称将解析为S3,然后S3将使用完整的DNS名称来确定存储桶名称。

答案 1 :(得分:0)

Chrome&Safari将所有http重定向到https,并且由于此http://test.dev.mydomain.com在Chrome&Safari中不起作用。但是http://test.dev.mydomain.com.s3-website-us-west-1.amazonaws.com在起作用。

我通过将CloudFront添加到此子域中来解决此问题,并且一切工作在https