Amazon s3 允许所有子域使用S3存储桶和文件共享

Amazon s3 允许所有子域使用S3存储桶和文件共享,amazon-s3,amazon,bucket,policies,Amazon S3,Amazon,Bucket,Policies,我有一个域名和许多子域。。。更多的子域将被创建。我希望允许所有子域使用实际的域存储桶策略(S3) 例如:example.com是我的主域名,我希望abc.example.com、abcd.example.com和abcde.example.com使用S3存储桶。请注意,子域将很多,无法键入所有名称。。。我的问题是,我们可以使用像.example.com/这样的通配符吗 下面是我的S3存储桶策略文件: 请注意example.com仅用于描述问题 { "Version": "2012-10-

我有一个域名和许多子域。。。更多的子域将被创建。我希望允许所有子域使用实际的域存储桶策略(S3)

例如:
example.com
是我的主域名,我希望
abc.example.com
abcd.example.com
abcde.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/*"
        }
    ]
}

来自Amazon S3文档:

bucket名称必须与CNAME相同

因此,您可以创建一个名为
abc.example.com
的bucket,然后创建一个DNS
CNAME
记录,将该URL别名为
abc.example.com.s3.amazonaws.com
。(注意:实际URL将根据您的存储桶所在的区域而有所不同。)

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

相反,创建单独的bucket并将这些bucket重定向到一个“中心”bucket。例如:

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

  • 创建一个DNS条目(如在路由53中),将
    def.example.com
    指向控制台中提供的静态网站URL
结果:
def.example.com/foo
的任何请求都将重定向到
abc.example.com
使用的相同存储桶


缺点是,您必须为每个要重定向的子域创建一个bucket,但这是可以自动完成的。

您能否提供有关您要实现的目标的更多信息?例如,您希望每个子域(例如
abc.example.com
)指向相同的AmazonS3存储桶还是不同的存储桶?您将为每个子域授予同等的权限,还是需要不同的策略?您目前正在尝试什么?您遇到了什么问题?仅供参考,bucket策略中的
Resource
参数指的是bucket的实际名称。这与用户实际如何访问bucket无关。John,我想让所有子域使用与我在S3中放置图像相同的bucket策略,我想将它们调用到我主题的图像中,以便它们在任何子域或实际域中使用。因此,我想要的是abc.example.com abcd.example.com example.com example.com以及更多的内容,以便为所有子域和主域访问相同的S3存储桶。我只想授予每个人查看的权限。它是工作的主要领域现在,但我希望它的工作子域也。请在此方面提供帮助bucket策略适用于bucket,无论他们如何访问bucket。如果您可以使子域指向bucket,它们将具有相同的访问权限。(然而,根据您的操作方式,您可能很难将多个子域指向一个bucket。)John,您能指导我将所有子域指向同一个bucket吗?或者共享一个可能在这方面有所帮助的URL。我只托管S3上的图像,并希望在所有子域上使用它。