如何从 ec2 实例获取电子邮件信息?
Posted
技术标签:
【中文标题】如何从 ec2 实例获取电子邮件信息?【英文标题】:How do I get email information from ec2 instance? 【发布时间】:2021-02-10 17:13:16 【问题描述】:如何找到我通过 SSH 创建 EC2/lightsail 实例时使用的电子邮件地址?
【问题讨论】:
AWS 账户电子邮件地址? EC2 实例本身没有电子邮件地址。 根据我在文档中查看的内容,您不需要电子邮件地址来创建 lightail(或 EC2)实例,并且在据我所知,用于描述实例的输出。这是您在自己的环境中使用的标签吗?还是您的 IAM 用户帐户是使用您的电子邮件作为用户名设置的?您是否启用了 CloudTrail? 【参考方案1】:首先,他们可能并不总是像其他人所说的那样是一封电子邮件。要调用 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 中完成。
【讨论】:
【参考方案2】:不确定我们是否可以获取电子邮件 ID,但我们肯定可以在 EC2 实例上使用以下命令获取 accountid。出于安全考虑,AWS 可能不允许获取电子邮件地址。
curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | grep -i accountid
【讨论】:
以上是关于如何从 ec2 实例获取电子邮件信息?的主要内容,如果未能解决你的问题,请参考以下文章
如何将电子邮件适配器添加到我的亚马逊 EC2 实例以启用我的应用程序的密码重置