访问权限管理
Amazon S3 提供了各种访问管理工具。以下是这些功能和工具的列表。您并不需要所有这些访问管理工具,但必须使用一个或多个工具来授予对 Amazon S3 存储桶、对象和其它 S3 资源的访问权限。正确应用这些工具有助于确保只有目标用户才能访问您的资源。
最常用的访问管理工具是访问策略。访问策略可以是附加到 AWS 资源的基于资源的策略,例如存储桶的存储桶策略。访问策略也可以是附加到 AWS Identity and Access Management(IAM)身份(如 IAM 用户、组或角色)的基于身份的策略。访问策略描述了谁可以访问哪些内容。编写访问策略来向 AWS 账户和 IAM 用户、组和角色授予对资源执行操作的权限。例如,您可以向另一个 AWS 账户授予 PUT Object
权限,以使该账户可以向您的存储桶上传对象。
以下是 Amazon S3 中提供的访问管理工具。有关 Amazon S3 访问控制的更全面指南,请参阅 Amazon S3 中的访问控制。
存储桶策略
Amazon S3 存储桶策略是采用 JSON 格式的 AWS Identity and Access Management(IAM)基于资源的策略,该策略附加到特定的存储桶。使用存储桶策略来向其它 AWS 账户或 IAM 身份授予对相应存储桶及其中对象的权限。使用存储桶策略可以满足许多 S3 访问管理使用案例的要求。通过存储桶策略,您可以对存储桶访问权限进行个性化设置,以协助确保只有您已批准的身份才能访问资源并在其中执行操作。有关更多信息,请参阅 Amazon S3 的存储桶策略。
基于身份的策略
基于身份的策略或 IAM 用户策略是一种 AWS Identity and Access Management(IAM)策略。基于身份的策略是采用 JSON 格式的策略,该策略附加到您的 AWS 账户中的 IAM 用户、组或角色。您可以使用基于身份的策略,来向 IAM 身份授予对您的存储桶或对象的访问权限。您可以在您的账户中创建 IAM 用户、组和角色,并为其附加访问策略。然后,您可以授予对 AWS 资源(包括 Amazon S3 资源)的访问权限。有关更多信息,请参阅 Amazon S3 基于身份的策略。
S3 访问权限管控
使用 S3 Access Grants 为企业身份目录(例如 Active Directory)中的身份以及 AWS Identity and Access Management(IAM)身份创建对您的 Amazon S3 数据的访问授权。S3 Access Grants 可协助您大规模管理数据权限。此外,S3 Access Grants 还会记录最终用户身份以及用于访问 AWS CloudTrail 中 S3 数据的应用程序。这提供了详细的审计历史记录,细至与 S3 存储桶中数据的所有访问权限对应的最终用户身份。有关更多信息,请参阅 使用 S3 Access Grants 管理访问权限。
访问点
对于使用 S3 上的共享数据集的应用程序,Amazon S3 接入点可简化大规模管理数据访问的事宜。接入点是附加到存储桶的命名网络端点。您可以使用接入点来大规模执行 S3 对象操作,例如上传和检索对象。一个存储桶最多可附加 10000 个接入点,对于每个接入点,您可以强制实施不同的权限和网络控制,从而让您可以详细控制对于 S3 对象的访问权限。S3 接入点可以与同一个账户或其它可信账户中的存储桶相关联。接入点策略是与底层存储桶策略一起进行评估的基于资源的策略。有关更多信息,请参阅 通过接入点管理对共享数据集的访问。
访问控制列表 (ACL)
ACL 是用于确定被授权者和所授予权限的授权列表。ACL 向其它 AWS 账户授予基本的读取或写入权限。ACL 使用特定于 Amazon S3 的 XML 架构。ACL 是一种 AWS Identity and Access Management(IAM)策略。对象 ACL 用于管理对于对象的访问权限,而存储桶 ACL 用于管理对存储桶的访问权限。使用存储桶策略,整个存储桶只有单个策略,但可以为每个对象指定对象 ACL。我们建议您将 ACL 保持为关闭状态,除非有必须单独控制每个对象的访问权限的特殊情况。有关 ACL 的更多信息,请参阅 为您的存储桶控制对象所有权和禁用 ACL。。
警告
Amazon S3 中的大多数现代使用案例不需要使用 ACL。
对象所有权
要管理对于对象的访问权限,您必须是该对象的拥有者。您可以使用对象所有权存储桶级别设置,来控制上传到存储桶的对象的所有权。此外,使用对象所有权来开启 ACL。默认情况下,对象所有权设为强制存储桶拥有者设置,并且所有 ACL 均处于关闭状态。关闭 ACL 后,存储桶拥有者拥有存储桶中的所有对象,并独占管理对数据的访问权限。为了管理访问权限,存储桶拥有者使用策略或其它访问管理工具(ACL 除外)。有关更多信息,请参阅 为您的存储桶控制对象所有权和禁用 ACL。。
有关 Amazon S3 访问控制的更全面指南和其它最佳实践,请参阅 Amazon S3 中的访问控制。