在创建 IAM 用户时发送通知 - AWS Prescriptive Guidance

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在创建 IAM 用户时发送通知

由 Mansi Suratwala (AWS) 和 Sergiy Shevchenko (AWS) 编写

环境:生产

技术:安全性、身份、合规性;基础设施

工作负载:所有其他工作负载

AWS 服务:亚马逊 SNS;AWS Identity and Access Management;AWS Lambda;亚马逊 CloudWatch

总结

在 Amazon Web Services (AWS) 上,您可以使用此模式部署 AWS CloudFormation 模板,以便在创建 AWS 身份和访问管理 (IAM) 用户时自动接收通知。 

使用 IAM,您可以安全地管理 Amazon Web Services 和资源的访问权限。您可以创建和管理亚马逊云科技用户和组,并使用权限来允许和拒绝此类用户和组访问亚马逊云科技资源。

该 CloudFormation 模板创建了一个亚马逊 CloudWatch 事件和一个 AWS Lambda 函数。该事件使用 AWS CloudTrail 来监控在 AWS 账户中创建的任何 IAM 用户。如果创建了用户,则 CloudWatch 事件会启动 Lambda 函数,该函数会向您发送亚马逊简单通知服务 (Amazon SNS) Simple Notification Service 通知,告知您发生了新用户创建事件。

先决条件和限制

先决条件

  • 一个有效的 Amazon Web Services account。

  • 创建并部署了 AWS CloudTrail 跟踪

限制

  • AWS CloudFormation 模板CreateUser只能用于部署。 

架构

目标技术堆栈

  • IAM

  • AWS CloudTrail

  • 亚马逊 CloudWatch 活动

  • AWS Lambda

  • Amazon Simple Storage Service (Amazon S3)

  • Amazon SNS

目标架构

从用户到 IAM 再到 CloudWatch 事件再 CloudTrail 到 Lambda 和 S3 存储桶的处理,最后以 SNS 电子邮件通知结尾。

自动化和扩展

您可以针对不同的 AWS 区域和账户多次使用 AWS CloudFormation 模板。您只需在每个区域或账户中运行一次。要自动部署到多个账户,请使用 AWS CloudFormation StackSets。该 CloudFormation 模板将能够在每个账户中部署所有必需的资源。

工具

工具

  • IAM – AWS Identity and Access Management (IAM) 是一项 Web 服务,可帮助您安全地控制对 AWS 资源的访问。可以使用 IAM 来控制谁通过了身份验证(准许登录)并获得授权(拥有权限)来使用资源。

  • AWS CloudFormation — AWS CloudFormation 可帮助您建模和设置 Amazon Web Services 资源,这样您就可以减少管理这些资源的时间,将更多时间集中在在 AWS 中运行的应用程序上。您可以创建一个描述所需所有 AWS 资源的模板,并 CloudFormation 负责为您预置和配置这些资源。

  • AWS CloudTrail — AWS CloudTrail 可帮助您管理 AWS 账户的治理、合规以及运营和风险审计。用户、角色或 AWS 服务采取的操作在中记录为事件 CloudTrail。事件包括在 Amazon Web Services Management Console、AWS 命令行界面、AWS 开发工具包和 API 中所执行的操作。

  • Amazon CloudWatch Events — Amazon CloudWatch Events 提供一系列描述了 AWS 资源变化的系统事件。 near-real-time  

  • AWS Lambda – AWS Lambda 是一项计算服务,支持无需预置或管理服务器即可运行代码。只有在需要时 Lambda 才运行您的代码,并且能自动扩展,从每天几个请求扩展到每秒数千个请求。 

  • Amazon S3 – Amazon Simple Storage Service (Amazon S3) 是一项面向互联网的存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS)是一项托管服务,可通过 Lambda、HTTP、电子邮件、手机推送通知和手机短信 (SMS) 的形式提供消息。

代码

该项目的 .zip 文件作为附件提供。

操作说明

任务描述所需技能

定义 S3 存储桶。

要创建 S3 存储桶,请打开 Amazon S3 控制台。此 S3 存储桶将托管 Lambda 代码 .zip 文件。S3 存储桶名称不得包含前导斜杠。

云架构师
任务描述所需技能

上传 Lambda 代码。

附件部分中提供的 Lambda 代码 .zip 文件上传到您定义的 S3 存储桶。

云架构师
任务描述所需技能

部署 CloudFormation 模板。

在 CloudFormation 控制台上,部署作为该模式附件提供的 CloudFormation createIAMuser.yaml模板。在下一个操作说明中,提供模板参数的值。

云架构师
任务描述所需技能

提供 S3 存储桶名称。

输入您在第一个操作说明中创建或选择的 S3 存储桶的名称。

云架构师

提供 S3 密钥。

提供 Lambda 代码 .zip 文件在 S3 存储桶中的位置,不带前导斜杠(例如,<directory>/<file-name>.zip)。

云架构师

提供电子邮箱地址。

提供有效的电子邮件地址以接收 Amazon SNS 通知。

云架构师

定义日志记录级别。

定义 Lambda 函数的日志记录级别和频率。Info 指明有关应用程序进度的详细信息消息。Error 指明仍允许应用程序继续运行的错误事件。Warning 指明潜在的有害情况。

云架构师
任务描述所需技能

确认订阅。

成功部署模板后,它将向提供的电子邮件地址发送订阅电子邮件。要接收通知,您必须确认此电子邮件订阅。

云架构师

相关资源

附件

要访问与此文档相关联的其他内容,请解压以下文件:attachment.zip