本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
自动清点多个账户和地区的 AWS 资源
由 Matej Macek 创作 () AWS
摘要
这种模式概述了一种自动化方法,用于维护多个帐户的全面 AWS 资源清单,以及 AWS 区域. 它旨在帮助基础设施和安全工程师改善其资源管理实践。它用于跟踪资源变化,Amazon Athena 用于查询,Amazon 用于 AWS Config 交互式控制面板 QuickSight 。您可以通过部署 AWS CloudFormation 堆栈来实现此解决方案。
此解决方案类似于使用 Amazon Athena QuickSight 和AWS Amazon 可视化 AWS Config 数据(博
以@@ 合规为中心 — 这种方法可以帮助您满足监管要求 PCIDSS
,例如 NISTSP 800-53 、ISO/IEC27001 HIPAAGDPR 、以及其他要求准确资产库存的要求。 自定义框架 — 它为为各种 AWS 资源创建 QuickSight 仪表板提供了基础,因此您可以根据自己的特定要求自定义解决方案。
以用户为导向的增强功能 — 这种方法结合了来自实际用例的反馈,并满足了对更全面解决方案的要求。
在动态、多账户或多区域环境中,基础设施、安全和财务团队经常面临可见性和协作方面的挑战。该解决方案旨在解决这些难题,并显著减少创建和维护资源清单所需的时间和精力。结果是资源集中视图,可帮助您改进资源分配决策,识别和降低风险,优化成本,并提高整体可见性和协作。这种方法弥合了概念性解决方案与实际实施需求之间的差距,以实现安全、合规和运营目的。
先决条件和限制
先决条件
以下处于活动状态 AWS 账户:
管理账户-用于在整个组织内计费、创建账户和控制访问权限的集中账户
审计账户 — 用于安全监控、合规性检查和偏差通知的集中中心
日志存档账户 — 用于存储和分析所收集数据的集中账户
在审计账户中,一种 AWS Config 聚合器,用于收集和汇总来自目标账户和地区的配置数据
在日志存档帐户中,设置以下内容:
部署预置以下资源的 CloudFormation 堆栈的权限:
一个 AWS Lambda 函数
亚马逊 S3 通知配置
Athena 数据库、表和视图
QuickSight 数据集和数据源
在中运行自动化的权限 AWS Systems Manager
访问权限 QuickSight
限制
解决方案依赖于 AWS Config。 AWS Config 通常会在检测到更改后立即或按您指定的频率记录对资源的配置更改。但是,这是尽力而为,有时可能需要更长的时间。
此解决方案仅跟踪AWS Config 支持的资源类型。
该解决方案不跟踪其他云提供商或本地环境中的资源库存。
有些 AWS 服务 并非全部可用 AWS 区域。有关区域可用性,请参阅 AWS 文档中的服务终端节点和配额页面,然后选择该服务的链接。
架构
下图显示了收集、组织、分析和可视化组织中多个账户的配置和合规性数据的简化流程。 AWS
图表显示了以下工作流:
AWS Config 聚合器定期收集有关目标账户和区域中资源的配置和合规性数据,然后将这些数据传输到日志存档账户中的 Amazon S3 存储桶。
向 Amazon S3 存储桶添加新 AWS Config 数据会调用一个 AWS Lambda 函数。
Lambda 函数通过为密钥配置与每个快照文件的区域和日期相对应的值来对数据进行分区。这有助于 AWS Glue 有效地查询和处理配置和合规性数据。
Amazon Athena 使用架构 AWS Glue 对存储在 Amazon S3 存储桶中的数据SQL运行查询。它利用中的架构元数据 AWS Glue 来理解数据的结构。
Athena 中的@@ 视图定义和提取目标数据集。
Amazon 中的@@ 控制面板可 QuickSight 帮助您可视化和分析数据集。
工具
AWS 服务
Amazon Athena 是一项交互式查询服务,可帮助您使用标准直接在 Amazon S3 中分析数据。SQL
AWS CloudFormation帮助您设置 AWS 资源,快速一致地配置资源,并在和的整个 AWS 账户 生命周期中对其进行管理 AWS 区域。
AWS Config提供了您的资源 AWS 账户 及其配置方式的详细视图。它可以帮助您确定资源之间的关联方式,以及它们的配置如何随时间变化。 AWS Config 聚合器从多个 AWS 账户 区域收集 AWS Config 配置和合规性数据。
AWS Glue是一项完全托管的提取、转换和加载 (ETL) 服务。它可以帮助您在数据存储和数据流之间对数据进行可靠地分类、清理、扩充和移动。此模式使用 AWS Glue 数据目录和架构注册表。
AWS Lambda 是一项计算服务,可帮助您运行代码,无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。
AWS Organizations是一项账户管理服务,可帮助您将多个账户整合 AWS 账户 到一个由您创建和集中管理的组织中。
Amazon QuickSight 是一项云规模的商业智能 (BI) 服务,可帮助您在单个控制面板中可视化、分析和报告数据。
Amazon Simple Storage Service (Amazon S3) 是一项基于云的对象存储服务,可帮助您存储、保护和检索任意数量的数据。
AWS Systems Manager 可帮助您管理在 AWS Cloud中运行的应用程序和基础设施。它简化了应用程序和资源管理,缩短了检测和解决操作问题的时间,并帮助您大规模安全地管理 AWS 资源。AWS Systems Manager 自动化简化了许多人的常见维护、部署和补救任务 AWS 服务。
代码存储库
此模式的 AWS CloudFormation 模板可在可AWS Config 视化
最佳实践
我们建议您遵循设置和管理安全的多账户 AWS 环境中的最佳实践,而不是 AWS 规范 AWS Control Tower性指导。
我们建议您创建一个 AWS Config 聚合器来收集整个 AWS 组织的配置和合规性数据。有关更多信息,请参阅文档中的多账户多区域数据聚合。 AWS Config
在部署此解决方案之前,我们建议您查看 A mazon S3
、AWS Config 、Athena 和的当前定价信息。QuickSight
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
下载 CloudFormation 模板。 | 下载 Config-V isualization QuickSight-A SSM utomation.y | AWS管理员、云管理员、 DevOps 工程师 |
修改 CloudFormation 模板。 | 只有当你正在使用AWS Control Tower
| DevOps 工程师、AWS管理员 |
创建堆 CloudFormation 栈。 | 按照从 CloudFormation 控制台创建堆栈中的说明进行操作。请注意以下几点:
| AWS管理员、云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
找到你的 QuickSight 用户名。 |
| AWS管理员、云管理员、 DevOps 工程师 |
找到传送渠道名称和 Amazon S3 存储桶名称。 |
| AWS管理员、云管理员、 DevOps 工程师 |
在 Systems Manager 中运行自动化。 |
| AWS管理员、云管理员、 DevOps 工程师 |
任务 | 描述 | 所需技能 |
---|---|---|
刷新数据。 | 要根据您的特定要求安排数据集刷新,请按照刷新SPICE数据中的说明进行操作。 | AWS管理员、 DevOps 工程师、云管理员 |
创建 分析。 | 要在中创建可帮助您 QuickSight 可视化资源的控制面板,请按照在 Amazon 中开始分析中的说明进行操作 QuickSight。 | QuickSight 管理员 |
创建控制面板。 |
| QuickSight 管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
删除 Systems Manager 自动化创建的资源。 |
| AWS管理员、云管理员、 DevOps 工程师 |
删除 CloudFormation 堆栈。 | 要删除 | AWS管理员、云管理员、 DevOps 工程师 |
故障排除
事务 | 解决方案 |
---|---|
Amazon QuickSight 正在尝试连接 | 一项服务控制政策限制您在该 QuickSight 地区订阅 Amazon。在服务控制策略中,手动指定目标 AWS 区域。
以下是示例:
|
在亚马逊 Athena 中,您会看到以下消息:
| 确保您已准备好一个 Amazon S3 存储桶,用于存储来自亚马逊 Athena 的查询结果。然后,按照使用 Amazon Athena 控制台指定查询结果位置中的说明进行操作。 |
相关资源
AWS 文档
AWS 博客文章
其他资源