本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
监控 IAM root 用户活动
由 Mostefa Brougui 创作 () AWS
摘要
每个亚马逊 Web Services (AWS) 账户都有一个根用户。作为 Ident AWS ity and Access Management (IAM) 的安全最佳实践,我们建议您使用根用户来完成只有根用户才能执行的任务。有关完整列表,请参阅《AWS账户管理参考指南》中的需要根用户凭证的任务。由于 root 用户拥有对您的所有AWS资源和账单信息的完全访问权限,因此我们建议您不要使用此账户,也不要监控该账户是否存在任何可能表明根用户凭证遭到盗用的活动。
使用这种模式,您可以设置监控 IAM roo t 用户的事件驱动架构
使用IAM根用户凭证时,Amazon CloudWatch 和 Amazon 会分别在日志和跟踪中AWS CloudTrail 记录活动。在分支账户中,Amazon EventBridge 规则将事件发送到中心账户中的中央事件总线。在中心账户中, EventBridge 规则将事件发送到 AWS Lambda 函数。该函数使用亚马逊简单通知服务 (AmazonSNS) 主题来通知您根用户活动。
在这种模式中,您可以使用AWS CloudFormation 模板在分支账户中部署监控和事件处理服务。您可以使用 T HashiCorp erraform 模板在中心账户中部署事件管理和通知服务。
先决条件和限制
先决条件
在您的AWS环境中部署AWS资源的权限。
部署 CloudFormation 堆栈集的权限。有关更多信息,请参阅堆栈集操作的先决条件(CloudFormation 文档)。
Terraform 已安装并可供使用。有关更多信息,请参阅入门-AWS
(Terraform 文档)。 每个分支账户中的现有跟踪。有关更多信息,请参阅入门 AWS CloudTrail(CloudTrail 文档)。
该跟踪配置为将事件发送到 CloudWatch 日志。有关更多信息,请参阅向 CloudWatch 日志发送事件(CloudTrail 文档)。
您的中心账户和分支账户必须由 Organization AWS s 管理。
架构
下图说明了实现的构建基块。
使用IAM根用户凭证时, CloudWatch 分别在日志和跟踪中 CloudTrail 记录活动。
在分支账户中, EventBridge 规则将事件发送到中心账户中的中央事件总线。
在中心账户中, EventBridge 规则将事件发送到 Lambda 函数。
Lambda 函数使用亚马逊SNS主题来通知您根用户活动。
工具
AWS 服务
AWS CloudFormation帮助您设置AWS资源,快速一致地配置资源,并在各个AWS账户和地区的整个生命周期中对其进行管理。
AWS CloudTrail帮助您审计AWS账户的治理、合规和运营风险。
Amazon CloudWatch Lo gs 可帮助您集中管理所有系统、应用程序和AWS服务的日志,以便您可以对其进行监控并安全地存档。
Amazon EventBridge 是一项无服务器事件总线服务,可帮助您将应用程序与来自各种来源的实时数据连接起来。例如,AWSLambda 函数、使用API目标的HTTP调用终端节点或其他账户中的事件总线。AWS
AWSIdentity and Access Management (IAM) 通过控制谁经过身份验证并有权使用AWS资源,从而帮助您安全地管理对资源的访问权限。
AWSLambda 是一项计算服务,可帮助您运行代码,而无需预置或管理服务器。它仅在需要时运行您的代码,并且能自动扩缩,因此您只需为使用的计算时间付费。
亚马逊简单通知服务 (AmazonSNS) 可帮助您协调和管理发布者与客户之间的消息交换,包括网络服务器和电子邮件地址。
其他工具和服务
Terraform
是一款通过使用配置文件形式的代码来配置和管理云基础架构和资源的CLI应用程序。
代码存储库
此模式的源代码和模板可在GitHub 存储库
一个 Terraform 模板,其中包含您在中心账户中部署的资源
在分支账户中作为堆栈集实例部署的 CloudFormation 模板
该库的总体结构如下。
. |__README.md |__spoke-stackset.yaml |__hub.tf |__root-activity-monitor-module |__main.tf # contains Terraform code to deploy resources in the Hub account |__iam # contains IAM policies JSON files |__ lambda-assume-policy.json # contains trust policy of the IAM role used by the Lambda function |__ lambda-policy.json # contains the IAM policy attached to the IAM role used by the Lambda function |__outputs # contains Lambda function zip code
Epics 部分提供了部署模板的 step-by-step说明。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
克隆示例代码存储库。 |
| 将军 AWS |
更新 Terraform 模板。 |
| 将军 AWS |
将资源部署到AWS中心账户。 |
| 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
部署 CloudFormation 模板。 |
有关更多信息和说明,请参阅创建堆栈集(CloudFormation 文档)。 | 将军 AWS |
任务 | 描述 | 所需技能 |
---|---|---|
使用根用户凭证。 |
| 将军 AWS |
相关资源
安全最佳实践(IAM文档)
使用 StackSets(CloudFormation 文档)
入门
(Terraform 文档)
其他信息
Amazon GuardDuty 是一项持续的安全监控服务,可分析和处理日志,以识别您的AWS环境中意外和可能未经授权的活动。作为此解决方案的替代方案,如果您已启用 GuardDuty,它可以在使用根用户凭据时提醒您。 GuardDuty 结果为Policy:IAMUser/RootCredentialUsage
,默认严重性为 “低”。有关更多信息,请参阅管理 Amazon GuardDuty 调查结果。