为 S3 存储桶配置屏蔽公共访问权限设置
Amazon S3 屏蔽公共访问权限提供接入点、存储桶和账户的设置,帮助您管理对 Amazon S3 资源的公有访问。默认情况下,新存储桶、接入点和对象不允许公有访问。
有关更多信息,请参阅 阻止对您的 Amazon S3 存储的公有访问。
您可以使用 S3 控制台、AWS CLI、AWS SDK 和 REST API 授予对一个或多个存储桶的公共访问权限。您还可以对已经设为公共的存储桶屏蔽公共访问权限。有关更多信息,请参阅以下部分。
要为账户中的每个存储桶配置“屏蔽公共访问权限”设置,请参阅为您的账户配置屏蔽公共访问权限设置。有关为接入点配置屏蔽公共访问权限的信息,请参阅 在接入点上执行屏蔽公共访问权限操作。
Amazon S3 屏蔽公共访问权限将阻止使用允许对 S3 存储桶中的数据进行公有访问的任何设置的应用程序。本部分介绍如何为一个或多个 S3 存储桶编辑屏蔽公共访问权限设置。有关使用 AWS CLI、AWS SDK 和 Amazon S3 REST API 阻止公有访问的信息,请参阅阻止对您的 Amazon S3 存储的公有访问。
您可以在存储桶列表中查看您的存储桶是否可以公开访问。在访问列中,Amazon S3 会标注存储桶的权限,如下所示:
-
公有 – 所有人都拥有以下一项或多项访问权限:列出对象、写入对象、读取和写入权限。
-
对象可以是公有的 – 存储桶不是公有的,但具有适当权限的任何人都可以授予对象公有访问权限。
-
存储桶和对象不是公有的 – 存储桶和对象没有任何公有访问权限。
-
仅限此账户的授权用户 – 由于存在授予公有访问权限的策略,因此访问权限仅限于此账户中的 IAM 用户和角色以及 AWS 服务主体。
您还可以按访问类型来筛选存储桶搜索。从 Search for bucket(搜索存储桶)栏旁边的下拉列表中选择一种访问类型。
如果您在列出存储桶及其公有访问设置时看到 Error
,则您可能不具备所需的权限。检查以确保您已将以下权限添加到您的用户或角色策略:
s3:GetAccountPublicAccessBlock s3:GetBucketPublicAccessBlock s3:GetBucketPolicyStatus s3:GetBucketLocation s3:GetBucketAcl s3:ListAccessPoints s3:ListAllMyBuckets
在极少数情况下,请求也可能因 AWS 区域中断而失败。
为单个 S3 存储桶编辑 Amazon S3 屏蔽公共访问权限设置
如何您需要为单个 S3 存储桶更改公有访问设置,请执行以下步骤。
登录到 AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
在 Bucket name(存储桶名称)列表中,请选择所需的存储桶的名称。
-
选择 Permissions (权限)。
-
请选择 Edit(编辑)以更改存储桶的公有访问设置。有关四个 Amazon S3 屏蔽公共访问权限设置的更多信息,请参阅 屏蔽公共访问权限设置。
-
请选择要更改的设置,然后选择 Save (保存)。
-
当系统要求确认时,请输入
confirm
。然后选择 Confirm (确认) 以保存更改。
在创建存储桶时,可以更改 Amazon S3 屏蔽公共访问权限设置。有关更多信息,请参阅 创建桶。
要对存储桶屏蔽公共访问权限或删除公共访问权限屏蔽,请使用 AWS CLI 服务 s3api
。使用此服务的存储桶级别的操作如下所示:
-
PUT PublicAccessBlock(用于存储桶)
-
GET PublicAccessBlock(用于存储桶)
-
DELETE PublicAccessBlock(用于存储桶)
-
GET BucketPolicyStatus
有关更多信息和示例,请参阅 AWS CLI 参考中的 put-public-access-block
有关通过 REST API 使用 Amazon S3 屏蔽公共访问权限的信息,请参阅 Amazon Simple Storage Service API 参考中的以下主题。