我们有很多EC2实例都用于各种项目。有时,开发人员会在实例上留下一个实例,即使他们没有使用它,这会浪费金钱。我们设置了警报以检查是否未使用实例,但我们也希望能够向开始实例的开发人员询问相关内容,而无需向所有开发人员发送大量电子邮件。
是否有某种方法可以确定上次启动EC2实例的用户的AWS用户名?有没有办法获取谁开始实例的信息?
答案 0 :(得分:3)
如果启用AWS CloudTrail,您可以获得有关哪些API由谁调用以及何时调用的详细机器可读日志。然后将日志定期放入S3存储桶中。以下是EC2 StartInstances日志条目的示例:
{
"Records": [{
"eventVersion": "1.0",
"userIdentity": {
"type": "IAMUser",
"principalId": "EX_PRINCIPAL_ID",
"arn": "arn:aws:iam::123456789012:user/Alice",
"accessKeyId": "EXAMPLE_KEY_ID",
"accountId": "123456789012",
"userName": "Alice"
},
"eventTime": "2014-03-06T21:22:54Z",
"eventSource": "ec2.amazonaws.com",
"eventName": "StartInstances",
"awsRegion": "us-west-2",
"sourceIPAddress": "205.251.233.176",
"userAgent": "ec2-api-tools 1.6.12.2",
"requestParameters": {
"instancesSet": {
"items": [{
"instanceId": "i-ebeaf9e2"
}]
}
},
"responseElements": {
"instancesSet": {
"items": [{
"instanceId": "i-ebeaf9e2",
"currentState": {
"code": 0,
"name": "pending"
},
"previousState": {
"code": 80,
"name": "stopped"
}
}]
}
}
},
... additional entries ...
]
}