Gen*_*ent 35 url policy amazon-s3 amazon-web-services
我有一个Amazon S3存储桶,我通过这样的策略公开
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow Public Access to All Objects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::bucket/*"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的桶现在可以看作 http://bucket.s3-website-us-east-1.amazonaws.com/
我看到其他人将他们的桶称为 http://s3-us-east-1.amazonaws.com/bucket/
我更喜欢第二个URL,但它会拒绝访问.
如何更改我的策略以允许第二个URL?
Mic*_*bot 40
您引用的URL结构称为REST端点,而不是Web站点端点.
注意:由于最初编写此答案,因此S3使用新的主机名在REST端点上推出了双栈支持,同时保留了现有的主机名.现将其整合到下面提供的信息中.
如果您的存储桶确实位于AWS的us-east-1区域 - S3文档以前称为"美国标准"区域,但随后正式更名为"美国东部(弗吉尼亚北部)地区" - - 然后http://s3-us-east-1.amazonaws.com/bucket/它不是该端点的正确形式,即使它看起来应该是这样.该区域的正确格式是http://s3.amazonaws.com/bucket/或http://s3-external-1.amazonaws.com/bucket/.¹
您使用的格式适用于所有其他S3区域,但不适用于美国标准美国东部(弗吉尼亚北部)[us-east-1].
S3现在还具有用于REST端点的双栈端点主机名,并且与原始端点主机名不同,例如,这些端口的名称在不同区域具有一致的格式s3.dualstack.us-east-1.amazonaws.com.这些端点支持IPv4和IPv6连接以及DNS解析,但在功能上与现有REST端点等效.
如果设置了您的权限和配置以使网站端点正常工作,那么REST端点也应该正常工作.
但是......两个端点不提供相同的功能.
粗略地说,REST端点更适合于机器访问,并且网站端点更适合人工访问,因为网站端点提供友好的错误消息,索引文档和重定向,而REST端点则不然.另一方面,REST端点为签名URL提供HTTPS和支持,而网站端点则不提供.
为您的应用选择正确类型的端点(REST或网站):
http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html#WebsiteRestEndpointDiff
与"全球终点"相比,¹ s3-external-1.amazonaws.com 被称为 "北弗吉尼亚终点" s3.amazonaws.com.如果使用"s3-external-1"主机名,则非正式地可以在此区域中的新对象上获得写后读写一致性,因为这会将您发送到可能提供该功能的可能物理端点的子集.此端点现在正式支持此行为,因此这可能是许多应用程序中更好的选择.以前,s3-external-2 曾被称为美国标准的"太平洋西北端点",尽管它现在是DNS中的CNAME,s3-external-1因此s3-external-2除了向后兼容性之外似乎没有任何目的.
| 归档时间: |
|
| 查看次数: |
92246 次 |
| 最近记录: |