使用 ACL 管理访问 - Amazon Simple Storage Service

使用 ACL 管理访问

访问控制列表 (ACL) 是基于资源的选项之一 (请参阅 有关管理访问的概述),可用于管理对存储桶和对象的访问。您可以使用 ACL 向其他 AWS 账户授予基本的读/写权限。使用 ACL 管理权限有一些限制。

例如,您可以仅向其他 AWS 账户授予权限;您无法向您账户中的用户授予权限。无法授予条件性权限,也无法显式拒绝权限。ACL 适用于特定情景。例如,如果存储桶拥有者允许其他 AWS 账户上载对象,则对这些对象的权限只能由拥有此对象的 AWS 账户使用对象 ACL 加以管理。

预设情况下,当另一个 AWS 账户 将对象上载到您的 S3 存储桶,该账户(对象编写者)拥有该对象,拥有对象的访问权限,并可以授予其他用户通过 ACL 访问该数据元的权限。您可以使用对象所有权来更改此原定设置行为,以便禁用 ACL,并且作为存储桶拥有者,您可以自动拥有存储桶中的每个对象。因此,数据的访问控制基于策略,例如 IAM policy、S3 存储桶策略、虚拟私有云(VPC)端点策略和 AWS Organizations 服务控制策略(SCP)。

Amazon S3 中的大多数现代使用案例不再需要使用 ACL,我们建议您禁用 ACL,除非在需要单独控制每个对象的访问的异常情况下。使用对象所有权,您可以禁用 ACL 并依赖策略进行访问控制。禁用 ACL 时,您可以轻松通过不同的 AWS 账户 上载的对象维护存储桶。作为存储桶拥有者,您拥有存储桶中的所有对象,并可以使用策略管理对它们的访问。有关更多信息,请参阅 为您的存储桶控制对象所有权和禁用 ACL。

重要

如果您的存储桶使用存储桶拥有者强制执行的 S3 对象所有权设置,则必须使用策略授予对存储桶及其中对象的访问权限。设置 ACL 或更新 ACL 的请求失败并返回 AccessControlListNotSupported 错误代码。仍然支持读取 ACL 的请求。

有关 ACL 的更多信息,请参阅以下主题: