如何使用相同的策略和权限重新创建已删除的 IAM 用户或角色?
AWS Identity and Access Management (IAM) 用户或角色已删除,我想使用相同的策略和权限重新创建它。
简短描述
当您使用 AWS 管理控制台移除 IAM 用户时,IAM 会自动删除与该用户关联的资源。这些资源包括任何组成员资格、密码、访问密钥、内联策略和 MFA 设备。
当您使用 AWS 管理控制台删除用户组时,IAM 会自动删除或移除与该组关联的资源。将移除所有组成员,分离托管策略,并删除所有内联策略。
解决方法
您无法恢复已删除的 IAM 用户或角色。但是,您可以使用以下 AWS 服务查看与特定 IAM 用户和组关联的 API 和资源:
然后,重新创建 IAM 用户或 IAM 组并重新配置所有关联资源。
使用 CloudTrail 事件历史记录查看已删除的 IAM 用户或角色
使用 CloudTrail 在事件历史记录中搜索已删除的 IAM 用户或角色名称,以获取关联资源的 API 历史记录。
**注意:**您可以使用 CloudTrail 搜索过去 90 天的事件历史记录。
- 打开 CloudTrail 控制台。
- 在导航窗格中,选择 Event history(事件历史记录)。
- 选择 Lookup attributes(查找属性)下拉列表,然后选择 Resource Name(资源名称)。
- 在 Enter a lookup value(输入查询值)文本框中,输入 IAM 用户或角色名称。
**注意:**您还可以为 CloudTrail 事件设置自定义筛选器。
结果可能包含与已删除的 IAM 用户或角色关联的以下 API:
- DetachUserPolicy 和 DetachRolePolicy: 标识用户或角色托管策略。
- PutUserPolicy 和 PutRolePolicy: 标识用户或角色的内联策略。
- CreateRole: 识别信任策略文档以及创建 IAM 角色时与 IAM 角色关联的任何权限边界策略。
- CreateUser: 识别创建 IAM 用户时与 IAM 用户关联的任何权限边界策略。
- PutUserPermissionsBoundary 和 PutRolePermissionsBoundary: 识别创建 IAM 用户或角色后与 IAM 用户或角色关联的任何权限边界策略。
使用 CloudWatch 日志组
使用 CloudWatch 日志组搜索过去 90 天以外的 API 历史记录。
**注意:**您必须创建并配置跟踪记录才能记录到 Amazon CloudWatch 日志组。有关详细信息,请参阅 Creating a trail with the CloudTrail console(使用 CloudTrail 控制台创建跟踪记录)。
- 打开 CloudWatch 控制台。
- 在导航窗格中,展开 Logs(日志),然后选择 Log Management(日志管理)。
- 在 Log groups(日志组)中,选择您的日志组。
- 在日志组页面上,选择 Search Log Group(搜索日志组)。
- 在 Filter events(筛选事件)中,输入查询搜索用户的 API 调用或特定 API 操作。然后,选择刷新图标。
- 在日志组搜索输出中,展开 Timestamp(时间戳)以查看 API 调用结果的详细信息。
搜索用户 API 调用日志的查询示例:
{ $.userIdentity.userName = "Alice" }
**注意:**将 Alice 替换为搜索查询的 IAM 用户名。
搜索角色 API 调用日志的查询示例:
{ $.userIdentity.sessionContext.sessionIssuer.userName = "AliceRole" }
**注意:**将 AliceRole 替换为 IAM 角色名称以进行搜索查询。
**注意:**您还可以使用 CloudWatch Logs Insights 分析日志数据。有关详细信息,请参阅如何使用 CloudWatch Logs Insights 检索并分析我的 CloudTrail 日志?
使用 Athena 查询 CloudTrail 跟踪日志以查看已删除的 IAM 用户或角色
您可以使用 Athena 查询过去 90 天内的 CloudTrail 日志。如果您的跟踪配置为记录数据事件,则您还可以查找数据事件。您无法在 CloudTrail 事件历史记录中查看数据事件。
**注意:**要使用 Athena 查询 CloudTrail 日志,必须将跟踪记录配置为记录到 Amazon Simple Storage Service (Amazon S3) 存储桶。
- 打开 Athena 控制台,然后选择 Query editor(查询编辑器)。
- 根据您的使用案例输入以下查询示例,然后选择 Run(运行)。
返回与应用于特定 IAM 用户的配置更改相关的所有 CloudTrail 事件的查询示例:
SELECT * FROM example-athena-table WHERE eventsource = 'iam.amazonaws.com' AND requestParameters LIKE '%DeletedIAMUserName%' AND readonly = 'false'
返回与应用于特定 IAM 角色的配置更改相关的所有 CloudTrail 事件的查询示例:
SELECT * FROM example-athena-table WHERE eventsource = 'iam.amazonaws.com' AND requestParameters LIKE '%DeletedIAMRoleName%' AND readonly = 'false'
**注意:**将 athena-table 替换为您的 Athena 表名,将 DeletedIAMUserName 或 DeletedIAMRoleName 替换为您的 IAM 用户或角色。
您还可以使用 CloudTrail 日志创建 Athena 表来运行查询。有关详细信息,请参阅 Query AWS CloudTrail logs(查询 CloudTrail 日志)。
使用 AWS Config 查看已删除的 IAM 用户或角色
您可以查看 AWS Config 在您的 AWS 账户中记录的资源,例如已删除的 IAM 用户或角色。
- 在 us-east-1 AWS 区域中打开 AWS Config 控制台。
- 在导航窗格中,选择 Resources(资源)。
- 在 Resource Inventory(资源清单)页面的 Resource type(资源类型)中,选择下拉列表。
- 选择 AWS IAM Role(AWS IAM 角色)或 AWS IAM User(AWS IAM 用户)。
- 选择要打开的 Included deleted resources(已包含的已删除资源)开关,然后选择 Apply(应用)。
- 从 Resource identifier(资源标识符)列中,选择标记为“deleted”(已删除)的 IAM 用户或角色。
- 在 Resources(资源)页面上,选择 Resource Timeline(资源时间表)。
- 在 Timeline(时间表)页面上,查看已删除的 IAM 用户或角色的 General details(常规详细信息)和 Events(事件)。
AWS Config 资源时间表包含删除前与 IAM 角色或用户关联的内联策略、托管策略和权限的详细信息。有关详细信息,请参阅 Viewing resources referenced with AWS Config(查看 AWS Config 中引用的资源)。
相关信息
Viewing Compliance History for your AWS Resources with AWS Config(使用 AWS Config 查看 AWS 资源的合规历史记录)
- 语言
- 中文 (简体)
