amazon-web-services - 哪个用户启动了 EC2 实例?

标签 amazon-web-services amazon-ec2 amazon-iam

我有一些 EC2 实例,我真的不知道是谁启动了它们。

有没有办法知道谁启动了特定实例?

最佳答案

假设您已经在控制台中配置了 CloudTrail(以监控正确的事件),这是一个可能的解决方案,可以在给定实例 ID 的情况下检索启动某个 EC2 实例的用户名。
此解决方案使用 AWS CLI检索有关启动了哪些实例的信息,以及 用于解析。

调用 aws cloudtrail lookup-events 时函数,我们可以指定:

  • 事件的名称。在这种情况下,RunInstances。
  • 开始搜索的日期,start-date。这可能是 EC2 实例启动时。
  • 要搜索的截止日期,结束日期。这可能只是实例启动后的一分钟。

  • 首先,让我们定义实例 id 和区域变量:
    $ instance_id="i-08dcc12c018737061"
    $ region="us-east-1"
    
    然后,让我们找出实例何时启动:
    $ instance_launch_date=$(aws ec2 describe-instances --instance-ids $instance_id --region $region | jq '.Reservations[].Instances[].LaunchTime')
    $ echo $instance_launch_date
    "2020-07-08T15:21:02.000Z"
    
    现在,让我们清理日期,使其格式适合 CloudTrail API。
    $ launch_date=$(sed -E 's/\"([0-9]{4})-([0-9]{2})-([0-9]{2}).([0-9]{2}):([0-9]{2}):([0-9]{2}).+/\2\/\3\/\1 \4:\5:\6/' <<< $instance_launch_date)
    $ start_date=$(date -d "${launch_date}" +"%s")
    $ echo $start_date
    1594221662
    
    现在,让我们将结束日期定义为实例启动的日期加上 1 分钟:
    $ end_date=$(date -d "${launch_date} 1 min" +"%s")
    echo $end_date
    1594221722
    
    现在让我们调用 CloudTrail API,并使用 jq 过滤输出:
    aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=RunInstances --start-time $start_date --end-time $end_date --region $region | jq --arg INSTANCE_ID "$instance_id" '.Events[] | select(.CloudTrailEvent | fromjson | .responseElements.instancesSet.items[].instanceId | contains($INSTANCE_ID)) | .Username '
    "paolo"
    

    关于amazon-web-services - 哪个用户启动了 EC2 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23489381/

    相关文章:

    java - 从哪里获取 JSch 连接到 AWS EC2 的用户名/密码?

    amazon-web-services - 如何控制AWS Elasticsearch Service和Kibana的访问权限?

    amazon-web-services - 将 Cognito 与 IAM 和 Amplify 结合使用进行授权

    amazon-web-services - scaleUpTime 和scaleDownTime cron 表达式

    rest - 获取 415 - Postman post 方法中不支持的媒体类型

    python - 在 Python 中将文件上传到 AWS S3 存储桶文件夹导致正则表达式错误

    c - gcc 根据其版本创建不同的文件夹

    amazon-web-services - 如何识别 ec2 实例是现货实例还是按需实例

    Java AWS s3 : How to set and upload content with Md5 pre signed url

    amazon-web-services - 实例附加了哪个角色