如何从ec2实例获取电子邮件信息?

问题描述

如何找到用于通过SSH创建EC2 / lightsail实例的电子邮件地址?

解决方法

首先,他们可能并不总是像别人所说的那样成为电子邮件。至于调用AWS API,您需要能够承担一个能够调用ec2:RunInstances的角色。例如,如果您将此角色授予了Lambda函数,那么Lambda确实可以创建一个新的ec2实例,但这并不像它有一封电子邮件。

使用标签 您想看到的是那个ec2实例的调用者ec2:RunInstances。如果启用了“费用分配”标签,则可以使用aws:createdBy标签,如here所述。要访问实例中的标签,您首先需要id,然后查询标签:

instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 describe-tags \
  --filters "Name=resource-id,Values=$instance_id" 'Name=key,Values=aws:createdBy' \
  --query 'Tags[].Value' --output text

CloudTrail 如果您不在实例中,则可以搜索名称为RunInstances的事件,并找到responseElements.instanceSet.items[].instanceId == 'YOUR INSTANCE ID'的位置。我相信,如果您已从创建日期起为您的实例启用它,我也相信可以在AWS Config中完成。

,

不确定是否可以获取电子邮件ID,但是肯定可以在EC2实例上使用以下命令来获取accountid。为了安全起见,AWS可能不允许获取电子邮件地址。

curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | grep -i accountid