使用 S3 访问分析器 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 S3 访问分析器

如果存在已配置为允许 Internet 上的任何人或其他 AWS 账户(包括组织外部的 AWS 账户)访问的 S3 存储桶,S3 访问分析器会向您发出提醒。对于每个公共存储桶或共享存储桶,您会收到有关公共或共享访问的来源和级别的信息。例如,S3 访问分析器可能会显示存储桶具有通过存储桶访问控制列表 (ACL)、存储桶策略或访问点策略提供的读取或写入访问权限。掌握了这些信息,您就可以立即采取精确的纠正措施,将存储桶访问权限恢复为您期望的设置。

在 S3 访问分析器中查看存在风险的存储桶时,只需单击一下即可阻止对存储桶的所有公有访问。我们建议您阻止所有对存储桶的访问,除非您需要公有访问才能支持特定使用案例。在阻止所有公有访问之前,请确保您的应用程序在没有公有访问权限的情况下可以继续正常工作。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的使用 Amazon S3 阻止公有访问

您还可以向下钻取到存储桶级别权限设置,以配置精细访问。对于需要公有访问的特定和经验证的使用案例(例如静态网站托管、公共下载或跨账户共享),您可以通过对存储桶的结果进行存档来确认和记录存储桶保持公开或共享的意图。您可以随时重新访问和修改这些存储桶配置。您还可以将结果下载为 CSV 格式的报告以供审计使用。

Amazon S3 控制台上提供 S3 访问分析器,无需额外费用。S3 访问分析器由 AWS Identity and Access Management (IAM) 访问分析器提供支持。要在 Amazon S3 控制台上使用 S3 访问分析器,您必须访问 IAM 控制台,然后按区域启用 IAM 访问分析器。

有关 IAM 访问分析器的更多信息,请参阅《IAM 用户指南》中的什么是访问分析器?有关 S3 访问分析器的更多信息,请查看以下部分。

重要
  • S3 访问分析器需要账户级分析器。要使用 S3 访问分析器,您必须访问 IAM 访问分析器并创建具有一个账户作为信任区域的分析器。有关更多信息,请参阅《IAM 用户指南》中的启用访问分析器

  • 添加或修改存储桶策略或存储桶 ACL 后,访问分析器会在 30 分钟内根据更改生成和更新结果。与账户级别阻止公有访问设置相关的结果可能在您更改设置后长达 6 小时无法生成或更新。

S3 访问分析器提供哪些信息?

S3 访问分析器提供可在 AWS 账户之外访问的存储桶的结果。Internet 上的任何人均可访问在 Buckets with public access (具有公有访问权限的存储桶) 下面列出的存储桶。如果 S3 访问分析器标识了公有存储桶,您还会在页面顶部看到一条警告,其中显示您的区域中公有存储桶的数量。Buckets with access from other AWS accounts — including third-party AWS accounts (可从其他 AWS 账户(包括第三方 AWS 账户)访问的存储桶) 下面列出的存储桶将与其他 AWS 账户(包括组织外部的账户)有条件地共享。

对于每个存储桶,S3 访问分析器提供以下信息:

  • Bucket name

  • Discovered by Access analyzer (由访问分析器发现) - 当 S3 访问分析器发现公有或共享存储桶访问时。

  • Shared through (共享方式) ‐ 如何通过存储桶策略、存储桶 ACL 或访问点策略共享存储桶。可以通过策略和 ACL 来共享存储桶。如果您想要找到并查看存储桶访问的来源,您可以使用此列中的信息作为起点,立即采取精确的纠正措施。

  • Status (状态) - 存储桶结果的状态。S3 访问分析器显示所有公有存储桶和共享存储桶的结果。

    • Active (活动) - 结果尚未审核。

    • Archived (已存档) - 结果已按预期审核和确认。

    • All (全部) - 公有存储桶或与其他 AWS 账户(包括组织外部的 AWS 账户)共享的存储桶的所有结果。

  • Access level (访问级别) - 为存储桶授予的访问权限:

    • List (列出) - 列出资源。

    • Read (读取) - 读取但不编辑资源内容和属性。

    • Write (写入) - 创建、删除或修改资源。

    • Permissions (权限) - 授予或修改资源权限。

    • Tagging (标记) - 更新与资源关联的标记。

启用 S3 访问分析器

要使用 S3 访问分析器,您必须完成以下必备步骤。

  1. 授予所需的权限。

    有关更多信息,请参阅《IAM 用户指南》中的使用访问分析器所需的权限

  2. 请访问 IAM 以便为要使用访问分析器的每个区域创建账户级分析器。

    S3 访问分析器需要账户级分析器。要使用 S3 访问分析器,您必须创建具有一个账户作为信任区域的分析器。有关更多信息,请参阅《IAM 用户指南》中的启用访问分析器

阻止所有公有访问

如果您想要通过单击一次来阻止对存储桶的所有访问,则可以使用 S3 访问分析器中的 Block all public access (阻止所有公有访问) 按钮。当您阻止对存储桶的所有公有访问时,系统不会授予公有访问权限。我们建议您阻止所有对存储桶的公有访问,除非您需要公有访问才能支持特定和经验证的使用案例。在阻止所有公有访问之前,请确保您的应用程序在没有公有访问权限的情况下可以继续正常工作。

如果您不想阻止对存储桶的所有公有访问,则可以在 Amazon S3 控制台上编辑阻止公有访问设置,以配置存储桶的精细访问级别。有关更多信息,请参阅《Amazon Simple Storage Service 开发人员指南》中的使用 Amazon S3 阻止公有访问

在极少数情况下,对于 Amazon S3 阻止公有访问评估报告为公有的存储桶,S3 访问分析器可能不会报告任何结果。发生这种情况的原因是,Amazon S3 阻止公有访问会审核当前操作以及将来可能添加的任何潜在操作的策略,从而导致存储桶变为公有。另一方面,S3 访问分析器只分析在评估访问状态时为 Amazon S3 服务指定的当前操作。

使用 S3 访问分析器阻止对存储桶的所有公有访问

  1. 登录 AWS 管理控制台,并通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧导航窗格中的 Dashboards (控制面板) 下,选择 Access analyzer for S3 (S3 访问分析器)

  3. 在 S3 访问分析器中,选择一个存储桶。

  4. 选择 Block all public access (阻止所有公有访问)

  5. 要确认您阻止对存储桶的所有公有访问的意图,请在 Block all public access (bucket settings) [阻止所有公有访问(存储桶设置)] 中输入 confirm

    Amazon S3 会阻止对存储桶的所有公有访问。存储桶结果的状态更新为 resolved (已解决),并且存储桶从 S3 访问分析器列表中消失。如果要查看已解决的存储桶,请在 IAM 控制台上打开 IAM 访问分析器。

查看和更改存储桶访问权限

如果您不打算对公有账户或其他 AWS 账户(包括组织外部的账户)授予访问权限,则可以修改存储桶 ACL、存储桶策略或访问点策略来删除对存储桶的访问权限。Shared through (共享方式) 列显示存储桶访问权限的所有来源:存储桶策略、存储桶 ACL 和/或访问点策略。

查看和更改存储桶策略、存储桶 ACL 或访问点策略

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在导航窗格中,选择 Access analyzer for S3 (S3 访问分析器)

  3. 要查看是否已通过存储桶策略、存储桶 ACL 或访问点策略授予公有访问权限或共享访问权限,请查看 Shared through (共享方式) 列。

  4. Buckets (存储桶) 下,选择您想要更改或查看其存储桶策略、存储桶 ACL 或访问点策略的存储桶的名称。

  5. 如果要更改或查看存储桶 ACL:

    1. 选择 Permissions

    2. 选择访问控制列表

    3. 查看您的存储桶 ACL,并根据需要进行更改。

      有关更多信息,请参阅 如何设置 ACL 存储桶权限?

  6. 如果要更改或查看存储桶策略:

    1. 选择 Permissions

    2. 选择存储桶策略

    3. 根据需要查看或更改存储桶策略。

      有关更多信息,请参阅 如何添加 S3 存储桶策略?

  7. 如果要查看或更改访问点策略:

    1. 选择 Access points (访问点)

    2. 选择访问点名称。

    3. 根据需要查看或更改访问权限。

      有关更多信息,请参阅 管理和使用 Amazon S3 访问点

    如果您编辑或删除存储桶 ACL、存储桶策略或访问点策略以删除公有访问或共享访问权限,则存储桶结果的状态会更新为已解决。已解决的存储桶结果从 S3 访问分析器列表中消失,但您可以在 IAM 访问分析器中查看它们。

对存储桶结果进行存档

如果存储桶对公共账户或其他 AWS 账户(包括组织外部的账户)授予访问权限,以便支持特定使用案例(例如,静态网站、公共下载或跨账户共享),则可以存档该存储桶的结果。当您对存储桶结果进行存档时,即表示您确认并记录存储桶保持公开或共享的意图。已存档的存储桶结果将保留在您的 S3 访问分析器列表中,以便您始终知道哪些存储桶是公有存储桶或共享存储桶。

在 S3 访问分析器中存档存储桶结果

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在导航窗格中,选择 Access analyzer for S3 (S3 访问分析器)

  3. 在 S3 访问分析器中,选择一个活动存储桶。

  4. 要确认您想让公共账户或其他 AWS 账户(包括组织外部的账户)访问此存储桶的意图,请选择 Archive (存档)

  5. 输入 confirm,然后选择 Archive (存档)

    
                        允许对所选存储桶进行公有访问对话框的控制台屏幕截图。

激活已存档的存储桶结果

对结果进行存档后,您可以随时重新访问这些结果并将其状态更改回活动状态,这表明存储桶需要另一次审核。

在 S3 访问分析器中激活存档存储桶结果

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在导航窗格中,选择 Access analyzer for S3 (S3 访问分析器)

  3. 选择已存档的存储桶结果。

  4. 选择 Mark as active (标记为活动)

查看结果详细信息

如果您需要查看有关存储桶的更多信息,可以在 IAM 控制台的 IAM 访问分析器中打开存储桶结果详细信息。

在 S3 访问分析器中查看结果详细信息

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在导航窗格中,选择 Access analyzer for S3 (S3 访问分析器)

  3. 在 S3 访问分析器中,选择一个存储桶。

  4. 选择查看详细信息

    结果详细信息将在 IAM 控制台的 IAM 访问分析器中打开。

下载 S3 访问分析器报告

您可以将存储桶结果下载为 CSV 格式的报告,供审计使用。该报告包含的信息与您在 Amazon S3 控制台的 S3 访问分析器中看到的信息相同。

下载报告

  1. 通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/

  2. 在左侧的导航窗格中,选择 Access analyzer for S3 (S3 访问分析器)

  3. 在“Region (区域)”筛选器中,选择相应的区域。

    S3 访问分析器会更新以显示所选区域的存储桶。

  4. 选择 Download report (下载报告)

    系统会生成 CSV 报告并保存到您的计算机中。