为 S3 存储桶配置阻止公有访问设置 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

为 S3 存储桶配置阻止公有访问设置

Amazon S3 阻止公有访问提供访问点、存储桶和账户的设置,帮助您管理对 Amazon S3 资源的公有访问。默认情况下,新存储桶、访问点和对象不允许公有访问。

有关更多信息,请参阅 阻止对您的 Amazon S3 存储的公有访问

您可以使用 S3 控制台、Amazon CLI、Amazon 开发工具包和 REST API 为存储桶配置阻止公有访问设置。有关更多信息,请参阅以下部分。

要为账户中的所有存储桶配置阻止公有访问设置,请参阅 为您的账户配置阻止公有访问设置。有关为接入点配置阻止公有访问的信息,请参阅 在接入点上执行阻止公有访问操作

Amazon S3 阻止公有访问将阻止使用允许对 S3 存储桶中的数据进行公有访问的任何设置的应用程序。本部分介绍如何为一个或多个 S3 存储桶编辑阻止公有访问设置。有关使用 Amazon CLI、Amazon 开发工具包和 Amazon S3 REST API 阻止公有访问的信息,请参阅 阻止对您的 Amazon S3 存储的公有访问

您可以在存储桶列表中查看您的存储桶是否可以公开访问。在访问列中,Amazon S3 会标注存储桶的权限,如下所示:

  • 公有 – 所有人都拥有以下一项或多项访问权限:列出对象、写入对象、读取和写入权限。

  • 对象可以是公有的 – 存储桶不是公有的,但具有适当权限的任何人都可以授予对象公有访问权限。

  • 存储桶和对象不是公有的 – 存储桶和对象没有任何公有访问权限。

  • 仅限此账户的授权用户 – 由于存在授予公有访问权限的策略,因此访问权限仅限于此账户中的 IAM 用户和角色以及 Amazon 服务委托人。

您还可以按访问类型来筛选存储桶搜索。从 Search for bucket (搜索存储桶) 栏旁边的下拉列表中选择一种访问类型。

为单个 S3 存储桶编辑 Amazon S3 阻止公有访问设置

如何您需要为单个 S3 存储桶更改公有访问设置,请执行以下步骤。

  1. 登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. Bucket name (存储桶名称) 列表中,选择所需的存储桶的名称。

  3. 选择 Permissions

  4. 选择 Edit (编辑) 以更改存储桶的公有访问设置。有关四个 Amazon S3 阻止公有访问设置的更多信息,请参阅阻止公有访问设置

  5. 选择要更改的设置,然后选择 Save (保存)

  6. 当系统要求确认时,请输入 confirm。然后选择 Confirm (确认) 以保存更改。

在创建存储桶时,可以更改 Amazon S3 阻止公有访问设置。有关更多信息,请参阅 创建存储桶

为了对存储桶执行阻止公有访问操作,请使用 Amazon CLI 服务 s3api。使用此服务的存储桶级别的操作如下所示:

  • PUT PublicAccessBlock(用于存储桶)

  • GET PublicAccessBlock(用于存储桶)

  • DELETE PublicAccessBlock(用于存储桶)

  • GET BucketPolicyStatus

有关更多信息和示例,请参阅《Amazon CLI 参考》中的 put-public-access-block

Java
AmazonS3 client = AmazonS3ClientBuilder.standard() .withCredentials(<credentials>) .build(); client.setPublicAccessBlock(new SetPublicAccessBlockRequest() .withBucketName(<bucket-name>) .withPublicAccessBlockConfiguration(new PublicAccessBlockConfiguration() .withBlockPublicAcls(<value>) .withIgnorePublicAcls(<value>) .withBlockPublicPolicy(<value>) .withRestrictPublicBuckets(<value>)));
重要

此示例仅适用于使用 AmazonS3 客户端类的存储桶级别操作。对于账户级别的操作,请参阅以下示例。

Other SDKs

有关使用其他 Amazon 开发工具包的信息,请参阅使用 Amazon 开发工具包和浏览器进行 Amazon S3 开发

有关通过 REST API 使用 Amazon S3 阻止公有访问的信息,请参阅《Amazon Simple Storage Service API 参考》中的以下主题。