首页 > 解决方案 > 获取所有 aws 资源的所有者电子邮件

问题描述

我正在尝试使用 boto3 和 lambda 构建一个脚本,以获取所有者的电子邮件地址,以获取aws 中跨区域创建的所有资源(至少从 EC2 开始)。这样做的目的是通知所有者他们拥有这么多资源。

import boto3
ec2 = boto3.client('ec2')
iam = boto3.client('iam').list_users()

iam json 包含所有用户信息,但没有电子邮件地址,ec2 具有所有者 ID,但我不确定如何获取所有者 ID。

如果有第三方服务,我也愿意考虑。

标签: amazon-web-servicesamazon-ec2aws-lambdaboto3

解决方案


AWS 中没有“资源所有权”的概念。

相反,当用户进行 API 调用(或使用控制台)来创建资源时,AWS 会确认他们有权进行 API 调用。如果是,则创建资源并且资源属于 AWS 账户。没有指向请求资源的用户的链接。

AWS CloudTrail服务保留 API 调用的审计日志,因此可以检查 CloudTrail 记录以查看哪个用户进行了创建资源的 API 调用。

有些人更喜欢使用标签来跟踪资源的所有权或用途。例如,使用标签来跟踪部门、项目或成本中心。

此外,请注意,资源可以由IAM 用户、IAM 角色(由用户承担,也可以通过 CloudTrail 进行跟踪)或其他AWS 服务(例如 Amazon EC2 Auto Scaling 自动启动 EC2 实例)创建。因此,在资源和创建它的“人”之间找到一对一的关系并不总是那么容易。


推荐阅读