亚马逊AWS官方博客

在 AWS Control Tower 账户中启用 AWS IAM Access Analyzer

Original URL: https://aws.amazon.com/cn/blogs/mt/enabling-aws-identity-and-access-analyzer-on-aws-control-tower-accounts/

 

在实际合作中,很多客户都希望寻求一种可行方法,针对多AWS账户组织在单一位置集中管理合规性并获取额外的信息洞察。在这方面,我们通常从AWS Control Tower开始讨论,这也是设置并管理多账户AWS环境时最简单的方法。AWS Control Tower是一项AWS托管服务,能够自动创建符合良好架构框架的多账户AWS环境,从而简化AWS Organization当中的新账户配置与集中合规性保障流程。在AWS Control Tower的帮助下,构建者只需要几次点击,即可配置新的AWS账户,并切实遵循企业内部制定的安全管理政策。

接下来的对话,走向如何使用其他AWS服务与功能增强可见性与安全态势。例如AWS身份与访问管理访问分析器( AWS Identity and Access Management (IAM) Access Analyzer)等功能就是其中的典型代表。通过IAM访问分析器,安全团队与管理员能够更轻松地检查当前策略是否严格保证只对资源实施预期访问。IAM访问分析器通过分析策略授权的权限,帮助大家了解谁能够访问您的资源。我们将这类分析结果,称为可证明安全性( provable security),这也是对云安全性的一种高级别保证。

在本文中,我们将在整个AWS Control Tower多账户环境下启用IAM访问分析器,并汇总相关结果以逐步探索如何借此提高组织安全性。

解决方案概述

主账户负责控制整个组织的AIM访问分析器。但是,大多数客户会将特定的成员账户指定为安全主账户。在默认情况下,AWS Control Tower会创建一个安全审计账户,用于跨账户审计并处理集中式安全操作。我们将使用此审计账户作为IAM访问分析器的委派管理员。其中涉及两个步骤:首先,为审计账户授权;第二,以组织整体为信任区启用IAM访问分析器。在启用之后,所有成员账户的IAM访问分析器结果都将被汇总至审计账户当中。如此一来,我们就可以通过单一中央位置对整个组织内的关键安全事件进行有效监控。

先决条件

要完成本解决方案演练,您需要首先部署AWS Control Tower,且保证能够使用管理凭证访问AWS Control Tower主账户。

在组织之内全面启用IAM访问分析器之前,您需要掌握以下信息:

  • 您IAM访问分析器委派管理员账户的账户ID。您可以在AWS Control Tower主账户的AWS Organizations控制台中找到审计账户编号,此账户ID为12位数字格式。

委派IAM访问分析器

只有主账户才能对IAM访问分析器进行委派管理员的添加、删除或变更。在您的AWS Control Tower主账户内导航至IAM控制台,而后选择Access Analyzer设置。在这里,您可以添加委派的管理员。请填写之前记录的审计账户12位账户ID,而后保存更改。

在审计账户中启用访问分析器

要启用访问分析器,您需要在审计账户中创建一个analyzer。在本示例中,我们创建的分析器将以整个组织作为信任区。

IAM访问分析器只负责对附加至所处单个AWS区域内各资源的策略进行分析。为了实现所有区域全覆盖,我们在本示例中使用AWS CloudFormation StackSet在所有区域内启用分析器。

第一步是使用您熟悉的文本编辑器,创建一套AWS CloudFormation模板:

AWSTemplateFormatVersion: 2010-09-09 Description: Enables IAM Access Analyzer Resources:   Analyzer:     Type: ‘AWS::AccessAnalyzer::Analyzer’     Properties:       AnalyzerName: !Sub ‘AccessAnalyzer-${AWS::Region}-${AWS::AccountId}’       Type: ORGANIZATION

接下来,在您的AWS Control Tower主账户中,启动该AWS CloudFormation StackSet。

  • 在AWS管理控制台中,前往AWS CloudFormation。
  • 选择StackSets,而后选择Create StackSet。
  • 选择Template is ready,而后上传我们之前创建完成的模板文件。
  • 在Specify Stack Details页面上,为您的栈指定一个名称,例如“IAMAccessAnalyzer”。
  • 在步骤3中配置StackSet选项。选择Self-service permissions 并保证其中的IAM管理员角色名称为 AWSControlTowerStackSetRole,且IAM执行角色名称为AWSControlTowerExecution

 

  • 选择账户中部署各栈,并输入您审计账户的12位账户ID。大家还可以指定需要进行栈部署的具体区域。这里,我们选择部署至所有区域。

 

接下来,您可以通过StackSet中的Operations选项卡监控过程,并查看部署状态。部署完成之后,继续下一步。

验证

在StackSet部署完成之后,登录至您的审计账户,并通过IAM控制台中查看发现结果。

此外,如果您启用了Security Hub,则IAM访问分析器的发现结果也将被自动发送至其中。

资源清理

IAM访问分析器属于AWS账户中的一项功能,可供您免费使用。如果您希望禁用访问分析器,则可以直接删除该栈,而后按照《AWS CloudFormation用户指南》中的说明删除StackSet,并从主账户中删除委派的管理员。

总结

在本文中,我们演示了如何在整个AWS Control Tower组织中启用IAM访问分析器。我们展示了如何将IAM访问分析器的管理权限委派至AWS Control Tower审计账户,以及如何在所有区域中启用分析器。在组织层面实施IAM访问分析器,能够帮助大家快速确定哪些资源允许来自AWS Organization之外的访问,进而提高组织的整体安全性。

扩展信息

IAM Access Analyzer AWS Control Tower治理 多账户Security Hub 多账户框架

 

本篇作者

Jason Moldan

AWS全球公共部门解决方案架构师。他与政府客户合作实施云解决方案并处理各类技术问题。他拥有20余年的技术从业经历,拥有圣托马斯大学信息技术硕士学位。在业余时间,他喜欢与家人露营和旅行。

Andrew Gacek

Amazon Web Services公司Automated Reasoning for Identity小组首席应用科学家。他致力于应用自动推理技术解决客户在身份验证与访问控制领域遇到的问题。Andrew拥有明尼苏达大学计算机科学博士学位。