多区域访问点权限
通过多区域访问点发出请求时,Amazon S3 会授权针对多区域访问点和请求路由到的底层存储桶的请求。因此,要成功请求,多区域访问点和至少一个底层存储桶都必须允许该操作。
例如,假设您通过多区域访问点使用您的 Amazon 账户中的名为 AppDataReader
的用户发出一个 GetObject
请求。为了帮助确保请求不会被拒绝,用户 AppDataReader
必须被授予 s3:GetObject
多区域访问点和多区域访问点基础的每个存储桶权限。AppDataReader
将无法从任何未授予此权限的存储桶中检索数据。
通常,底层存储桶仍有单独的 S3 阻止公共访问设置、策略和访问控制列表(ACL,包括对象 ACL),这些设置在所有情况下都保持有效。
管理多区域访问点的公共访问
多区域访问点支持每个多区域访问点的独立阻止公有访问设置。创建多区域访问点时,您可以指定应用于该多区域访问点的阻止公有访问设置。
对于通过多区域访问点发出的任何请求,Amazon S3 将评估该多区域访问点、底层存储桶以及拥有多区域访问点和底层存储桶的账户的阻止公共访问设置。如果这些设置中的任何一个指示应阻止请求,则 Amazon S3 会拒绝请求。有关 Amazon S3 阻止公有访问功能的更多信息,请参阅 阻止对您的 Amazon S3 存储的公有访问。
默认情况下,为多区域访问点启用所有阻止公有访问设置。您必须明确禁用不希望应用于多区域访问点的任何设置。Amazon S3 当前不支持在创建多区域访问点之后更改访问点的阻止公有访问设置。
将访问控制委派给多区域访问点策略
您可以将存储桶的访问控制委托给多区域访问点访问策略。以下示例存储桶策略允许对存储桶拥有者账户所拥有的所有访问点进行完全访问。对此存储桶的所有访问都由附加到其访问点的策略控制。我们建议您以这种方式为所有不需要直接访问存储桶的使用案例配置存储桶。
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "
Bucket ARN
", "Bucket ARN
/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID
" } } }] }
以下示例存储桶策略将访问控制委派给存储桶的任何多区域访问点。如果要委派对特定多区域访问点的访问权限,可以使用 s3:DataAccessPointArn
条件键。
{ "Version": "2012-10-17", "Statement" : [ { "Effect": "Allow", "Principal" : { "AWS": "*" }, "Action" : "*", "Resource" : [ "
Bucket ARN
", "Bucket ARN
/*"], "Condition": { "StringEquals" : { "s3:DataAccessPointArn" : "MRAP_ARN
" } } }] }