-1

我有域和许多子域......并且将创建更多子域。我想允许所有子域使用实际的域存储桶策略(S3)。

例如:example.com是我的主域,我想要abc.example.comabcd.example.comabcde.example.com使用 S3 存储桶。请注意,子域会很多,不能输入所有名称......我的问题是我们可以使用通配符.example.com/吗?

以下是我的 S3 存储桶策略文件:

请注意example.com仅用于描述问题。

{
    "Version": "2012-10-17",
    "Id": "Policy1444053343008",
    "Statement": [
        {
            "Sid": "Stmt1444053339232",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example.com/*"
        }
    ]
}
4

1 回答 1

1

来自 Amazon S3 文档使用 CNAME 自定义 Amazon S3 URL

存储桶名称必须与 CNAME 相同。

因此,您可以创建一个名为的存储桶abc.example.com,然后创建一个 DNSCNAME记录以将该 URL 别名为abc.example.com.s3.amazonaws.com. (注意:实际 URL 会因您的存储桶所在区域而异。)

这将解析为 Amazon S3 服务器的 IP 地址,然后使用 URL 来确定要使用的存储桶。存储桶没有自己的 IP 地址——它们是通过 S3 的 IP 地址访问的。因此,您不能将多个域名指向同一个存储桶。

相反,创建单独的存储桶并从这些存储桶重定向到一个“中央”存储桶。例如:

  • 创建一个名为def.example.com
  • 打开静态网站托管
  • 选择将所有请求重定向到另一个主机名
  • 指向他们abc.example.com

静态网站托管配置

  • 创建一个 DNS 条目(例如在Route 53中)以指向def.example.com控制台中提供的静态网站 URL

结果:任何请求都def.example.com/foo将重定向到abc.example.com.

缺点是您必须为要重定向的每个子域创建一个存储桶,但这可以自动化。

于 2015-10-17T02:48:39.893 回答