使用 IAM 访问分析器大规模评估公共和跨账户访问权限,来自 AWS 存储博客
通过 IAM 访问分析器批量评估公有和跨账户访问
by Akshat Sandh 于 2024年4月18日 在 亚马逊简单存储服务S3,AWS IAM 访问分析器,最佳实践,中级200,安全、身份与合规,存储,技术教程永久链接评论
关键要点
组织当前比以往任何时候都更产生、使用和存储数据,因此确保数据安全成为关键。实施最小权限访问原则非常重要,同时用户寻找可以简化审计流程的工具。IAM 访问分析器为 S3 提供了一种简单的方法,以识别和修复不当的公共访问和跨账户访问。本文将详细介绍如何设置和使用 IAM 访问分析器,包括如何查看和修复发现的问题。在当前,组织产生、使用和存储的数据量不断增加,数据安全的保障也日益为企业所重视。企业通常会实施最小权限访问原则,限制用户仅访问其必需的数据,并建立审核工作流程以确保其实施的有效性。这些工作流程可以评估和修复控制每个资源访问的策略。为了让审计工作流程自动化,从而减少时间并提高审计的准确性和重复性,用户都希望能够找到简便的工具来评估宽泛的访问控制,以解答诸如“我有哪些数据是公开可访问的?”和“哪些用户可以访问哪些数据?”等问题。
亚马逊 S3 提供了一套访问控制机制来帮助组织实现这一目标。用户可以使用诸如 S3 阻止公有访问 等宽泛的保护措施,以确保他们的数据不被互联网公开访问,并通过桶和 AWS 身份与访问管理IAM 策略实施更加细粒度的控制。对于审计,AWS 身份与访问管理IAM访问分析器是一种工具,可以让您设置、验证和精炼权限,以识别和修正具有过度外部访问权限的亚马逊 S3 资源。
在本文中,将介绍 IAM 访问分析器为 S3 的设置和使用,包括如何查看发现和修复访问权限。IAM 访问分析器的设置过程仅需一次,设置完成后,能够简化识别和修复过度权限访问的过程,帮助您确保实施最小权限访问原则。
解决方案步骤
解决方案步骤包括以下内容:
导航到 IAM 访问分析器 for S3创建分析器查看发现审查发现并进行修复公共桶跨账户访问步骤 1:导航到 IAM 访问分析器 for S3
您可以在亚马逊 S3 控制台左侧的导航面板中找到 IAM 访问分析器 for S3。请注意,IAM 访问分析器是区域特定的,因此您必须为每个包含桶的 AWS 区域创建新的分析器,以生成相关发现。当您第一次打开控制台页面时,您会看到提示信息,指示该区域尚未启用访问分析器。如果您之前未启用 IAM 访问分析器 for S3,请选择蓝框中的 IAM 访问分析器 链接见 图 1,导航到 IAM 访问分析器控制台以设置分析器。
图 1:IAM 访问分析器 for S3 页面区域尚未启用 IAM 访问分析器
步骤 2:创建分析器
在本节中,我们将逐步讲解创建分析器的过程,命名并定义正确的信任域。
选择页面右上角的 创建分析器 按钮见 图 2,此操作将引导您进入创建分析器的向导。图 2:IAM 访问分析器首页
在 创建分析器 页面见 图 3,您可以选择更改分析器的 名称,并可选择性地添加 标签。在 信任域 部分,我们建议选择 当前账户 而不是 当前组织该选项适用于组织管理账户。选择 当前组织 会将您的整个组织视为信任域,仅为来自您组织外部帐户或公共访问的路径生成发现,而不将结果发送回亚马逊 S3 控制台。选择 当前账户 有助于为您的选定账户生成跨账户访问和公开访问的发现,并将发现结果快速发送回亚马逊 S3 控制台。选择 创建分析器。图 3:创建分析器 页面,您可以选择 名称 和 信任域
步骤 3:查看发现
返回 IAM 访问分析器 for S3 页面查看分析结果。正如您在 图 4 中所见,发现结果分为两个部分:
具有公共访问的桶 此部分列出了可以被任何互联网用户访问的桶,换句话说,用户无须有效的 AWS 凭据即可访问您的数据。访问分析器评估桶策略和您的桶上的访问控制列表ACL,以找到可以这样访问的资源。其他 AWS 账户的访问桶 包括第三方 AWS 账户 此部分列出了已配置为跨账户访问的桶。访问分析器会评估桶策略和你的桶上的 ACL,以寻找与其他 AWS 账户共享的资源。
图 4:创建后 IAM 访问分析器 for S3 页面的示例发现结果
步骤 4:审查发现并采取行动
在本节中,我将讨论如何审查和修复公共桶以及允许跨账户访问的发现。
公共桶如果某个桶不应具有公共访问权限,您可以选择该桶,并通过两次点击 阻止所有公共访问 操作。此操作将立即在您的桶上应用 S3 阻止公共访问策略。S3 阻止公共访问会阻止未身份验证的访问,因此,用户必须拥有有效的凭据才能访问您的桶。其他在桶策略中定义的限制将继续适用。通过审查桶策略,您也可以验证需要访问桶的 IAM 用户或角色是否确实有访问权限。
图 5:在 IAM 访问分析器 for S3 页面上选择桶
输入 “confirm” 并选择 确认 后,此发现应消失,因为公共访问现已被阻止。
图 6:从 IAM 访问分析器 for S3 页面阻止所有公共访问到 S3 桶
免费版加速器试用七天如果您对桶的公共访问有有效使用案例例如,如果您的桶托管了无需用户身份验证便可在互联网上共享的文件,则必须首先选择您希望归档的发现。
图 7:在 IAM 访问分析器 for S3 页面上选择要归档的发现
然后,您可以输入 “confirm”并选择 确认 来归档该发现。归档发现不会从公共访问桶的列表中删除桶,而且您可以稍后将发现标记为活动状态。
图 8:在 IAM 访问分析器 for S3 页面上归档您的发现
如果您使用桶托管静态网站,我们建议您使用 Amazon CloudFront 的源访问控制,不仅可以提供 HTTPS 支持,对于某些工作负载如音频和视频托管也可以降低成本,这些工作负载受益于缓存,同时允许您阻止对桶的公共访问。
跨账户访问与公共桶一样,您可以归档发现并将发现标记为活动。在审查具有跨账户访问权限的桶时,您可以查看是通过桶策略还是 ACL 授予的权限。
让我们举个例子,权限是通过桶策略授予的。您应当首先审查桶策略,确认该策略中的每个账户确实需要访问您账户中的相关亚马逊 S3 资源。以下示例策略允许账户 123456789012 中的 user1 读取getObject并写入putObject S3bucket。
图 9:示例桶策略
在审查策略和 ACL 时,您可能会发现某些权限不再需要。在这种情况下,您可以删除 ACL 或编辑桶策略以移除该访问权限。确认桶策略仅允许预期的跨账户访问后,您可以在桶上归档该发现。
其他注意事项
我们建议在您拥有桶的每个 AWS 区域设置 IAM 访问分析器 for S3,以便在您创建新桶时生成发现。IAM 访问分析器 for S3 不支持对象级访问控制。您可以使用亚马逊 S3 Inventory 报告查找亚马逊 S3 ACL 元数据 和亚马逊 S3 服务器访问日志及 AWS CloudTrail 查看何时使用它们来授权访问您的资源。您可以逐个禁用 ACL 或使用亚马逊 S3 阻止公共访问 设置在桶或账户级别关闭 ACL,如果您认为这是必要的。请记住,如果未设置桶所有者强制执行,您账户中的 IAM 角色或用户仍然可以使用对象 ACL 将您的数据公开可用,如果他们有相关权限,因此我们建议完全禁用对象 ACL。如果您需要将目录如 Active Directory (AD) 或 IAM主体中的身份映射到亚马逊 S3 中的数据集,建议使用亚马逊 S3 访问授权。考虑在整个组织中使用 IAM 访问分析器。IAM 访问分析器的功能已扩展,超出了我们在本文中涉及的功能,例如自定义策略检查、精炼访问的规则,以及与 AWS Security Hub 和 Amazon EventBridge 的集成。有关未使用的访问和在部署前检查策略的更多信息,请查阅 IAM 访问分析器文档。结论
在本文中,我们介绍了如何设置 IAM 访问分析器 for Amazon S3 并对发现结果采取行动。我们覆盖了阻止公共访问公共桶的过程以及归档发现。我们还涵盖了评估跨账户访问。
为 S3 设置 IAM 访问分析器可以减少审计 S3 资源访问所需的时间和精力。您只需为某个区域设置一次分析器,该分析器将评估该区域中的所有资源。
感谢您阅读本文,如果您有任何意见或问题,请随时在评论区留言。
标签:亚马逊简单存储服务Amazon S3,AWS 云存储
Akshat Sandh
Akshat 是 AWS 亚马逊 S3 团队的高级技术产品经理。他热衷于帮助用户在 亚马逊 S3 上进行扩展。在加入 AWS 之前,Akshat 在亚马逊最后一公里配送运营方面任职。居住在西雅图的他喜欢摄影和园艺。