

# 访问权限管理
<a name="security-access-management"></a>

Amazon S3 提供了各种访问管理工具。以下是这些功能和工具的列表。您并不需要所有这些访问管理工具，但必须使用一个或多个工具来授予对 Amazon S3 存储桶、对象和其它 [S3 资源](access-management.md#access-management-resources)的访问权限。正确应用这些工具有助于确保只有目标用户才能访问您的资源。

最常用的访问管理工具是*访问策略*。访问策略可以是附加到 AWS 资源的*基于资源的策略*，例如存储桶的存储桶策略。访问策略也可以是附加到 AWS Identity and Access Management（IAM）身份（如 IAM 用户、组或角色）的*基于身份的策略*。访问策略描述了谁可以访问哪些内容。编写访问策略来向 AWS 账户和 IAM 用户、组和角色授予对资源执行操作的权限。例如，您可以向另一个 AWS 账户授予 `PUT Object` 权限，以使该账户可以向您的存储桶上传对象。

以下是 Amazon S3 中提供的访问管理工具。有关 Amazon S3 访问控制的更全面指南，请参阅 [Amazon S3 中的访问控制](access-management.md)。

**存储桶策略**  
Amazon S3 存储桶策略是采用 JSON 格式的 [AWS Identity and Access Management（IAM）基于资源的策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)，该策略附加到特定的存储桶。使用存储桶策略来向其它 AWS 账户或 IAM 身份授予对相应存储桶及其中对象的权限。使用存储桶策略可以满足许多 S3 访问管理使用案例的要求。通过存储桶策略，您可以对存储桶访问权限进行个性化设置，以协助确保只有您已批准的身份才能访问资源并在其中执行操作。有关更多信息，请参阅 [Amazon S3 的存储桶策略](bucket-policies.md)。

**基于身份的策略**  
基于身份的策略或 IAM 用户策略是一种 [AWS Identity and Access Management（IAM）策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。基于身份的策略是采用 JSON 格式的策略，该策略附加到您的 AWS 账户中的 IAM 用户、组或角色。您可以使用基于身份的策略，来向 IAM 身份授予对您的存储桶或对象的访问权限。您可以在您的账户中创建 IAM 用户、组和角色，并为其附加访问策略。然后，您可以授予对 AWS 资源（包括 Amazon S3 资源）的访问权限。有关更多信息，请参阅 [Amazon S3 基于身份的策略](security_iam_id-based-policy-examples.md)。

**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 管理访问权限](access-grants.md)。

**接入点**  
对于使用 S3 上的共享数据集的应用程序，Amazon S3 接入点可简化大规模管理数据访问的事宜。接入点是附加到存储桶的命名网络端点。您可以使用接入点来大规模执行 S3 对象操作，例如上传和检索对象。一个存储桶最多可附加 10000 个接入点，对于每个接入点，您可以强制实施不同的权限和网络控制，从而让您可以详细控制对于 S3 对象的访问权限。S3 接入点可以与同一个账户或其它可信账户中的存储桶相关联。接入点策略是与底层存储桶策略一起进行评估的基于资源的策略。有关更多信息，请参阅 [通过接入点管理对共享数据集的访问](access-points.md)。

**访问控制列表 (ACL)**  
ACL 是用于确定被授权者和所授予权限的授权列表。ACL 向其它 AWS 账户授予基本的读取或写入权限。ACL 使用特定于 Amazon S3 的 XML 架构。ACL 是一种 [AWS Identity and Access Management（IAM）策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。对象 ACL 用于管理对于对象的访问权限，而存储桶 ACL 用于管理对存储桶的访问权限。使用存储桶策略，整个存储桶只有单个策略，但可以为每个对象指定对象 ACL。我们建议您将 ACL 保持为关闭状态，除非有必须单独控制每个对象的访问权限的情况。有关 ACL 的更多信息，请参阅 [为您的存储桶控制对象所有权和禁用 ACL。](about-object-ownership.md)。

**警告**  
Amazon S3 中的大多数现代使用案例不需要使用 ACL。

**对象所有权**  
要管理对于对象的访问权限，您必须是该对象的拥有者。您可以使用对象所有权存储桶级别设置，来控制上传到存储桶的对象的所有权。此外，使用对象所有权来开启 ACL。默认情况下，对象所有权设为*强制存储桶拥有者设置*，并且所有 ACL 均处于关闭状态。关闭 ACL 后，存储桶拥有者拥有存储桶中的所有对象，并独占管理对数据的访问权限。为了管理访问权限，存储桶拥有者使用策略或其它访问管理工具（ACL 除外）。有关更多信息，请参阅 [为您的存储桶控制对象所有权和禁用 ACL。](about-object-ownership.md)。

有关 Amazon S3 访问控制的更全面指南和其它最佳实践，请参阅 [Amazon S3 中的访问控制](access-management.md)。