如何确定上次启动EC2实例的用户的AWS账户用户名?

时间:2014-10-01 19:12:47

标签: amazon-web-services amazon-ec2

我们有很多EC2实例都用于各种项目。有时,开发人员会在实例上留下一个实例,即使他们没有使用它,这会浪费金钱。我们设置了警报以检查是否未使用实例,但我们也希望能够向开始实例的开发人员询问相关内容,而无需向所有开发人员发送大量电子邮件。

是否有某种方法可以确定上次启动EC2实例的用户的AWS用户名?有没有办法获取谁开始实例的信息?

1 个答案:

答案 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 ...
    ]
}  
相关问题