确定谁创建了特定的AWS资源

时间:2019-08-22 07:55:36

标签: amazon-web-services boto3

最近几年,我们正在使用多种AWS服务。现在,我们已经创建了许多aws资源,但没有通过标签创建。我们想用标签创建的w标记资源(支持标签)上的每个资源,并指定创建它的用户的姓名/电子邮件。是否可以通过任何API(Boto3)或控制台进行操作。根据我的研究,这似乎是不可能的,但我想与社区确认是否有任何方法可以做到。

1 个答案:

答案 0 :(得分:1)

没有现成的解决方案,但是您可以使用CloudWatch Events和Lambda创建自定义解决方案。去年,我仅对EC2资源实施了类似的解决方案。

  1. 为要标记的资源创建事件规则。例如,每当创建一个实例/卷/快照/ AMI时,以下事件规则就会调用目标Lambda函数。
{
  "detail-type": [
    "AWS API Call via CloudTrail"
  ],
  "detail": {
    "eventSource": [
      "ec2.amazonaws.com"
    ],
    "eventName": [
      "CreateVolume",
      "RunInstances",
      "CreateImage",
      "CreateSnapshot"
    ]
  }
}
  1. 目标Lambda函数解析事件数据。您需要提取所有资源ID和主体数据,并进行API调用以标记资源。以下示例使用Boto3 EC2 API; resource_id,用户名和主体是从事件中提取的变量。
ec2.create_tags(Resources=resource_ids, Tags=[{'Key': 'Owner', 'Value': username}, {'Key': 'PrincipalId', 'Value': principal}])

您也可以扩展此解决方案以标记其他资源。