S3 存储桶的 Route53 子域别名

Route53 subdomain alias for S3 bucket

我正在尝试从 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

但是越来越 - 别名目标包含无效值。 保存记录时。

在 John Rotenstein 的回答后更新

在等待超过 10 分钟后,能够从列表中 select 存储桶并保存记录。

能够访问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,不适用于任何其他浏览器。

我按如下方式使它工作:

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

注意:花了很长时间(10分钟?)才出现在列表中!

格式为:

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

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

Chrome & Safari 将所有 http 重定向到 https,因此 http://test.dev.mydomain.com 在 Chrome & Safari 中无法正常工作。但是 http://test.dev.mydomain.com.s3-website-us-west-1.amazonaws.com 正在工作。

我通过向此 sub/domain 添加 CloudFront 解决了这个问题,并且一切正常 https