AWS Cloudformation:是否可以在Cloudformation模板中访问用户ID?

时间:2019-04-04 19:11:54

标签: amazon-web-services amazon-cloudformation

我想与使用该模板创建堆栈的用户自动标记CloudFormation模板中定义的某些AWS资源。可以访问模板中的任何类型的用户ID吗?

2 个答案:

答案 0 :(得分:0)

我认为这不可能。

AWS服务与AWS账户绑定。 IAM确认特定用户有权进行API调用后,生成的资源将与帐户(而不是特定用户)相关联。例如,无法查看EC2实例并确定谁启动了该实例。

但是,此信息可在 AWS CloudTrail 中使用,但这更多的是审核日志-不会将用户信息提供回服务。

因此,我怀疑堆栈没有提供有关启动它的用户的信息。

答案 1 :(得分:0)

有一种方法可以做到,但它并不漂亮,并且有一个警告。

您可以在ec2实例上运行如下所示的bash脚本:

AWS_INSTANCE_ID=`curl -s http://169.254.169.254/latest/meta-data/instance-id`
USER_ID=`aws sts get-caller-identity --output text --query 'Arn'`
aws ec2 create-tags --resources "${AWS_INSTANCE_ID}" --tags 'Key=CreatedBy,Value="${USER_ID}"' --region eu-west-1

这将使用在该实例上运行CLI的用户名标记当前实例。

不过,需要说明的是,CLI需要由用户运行-而不是角色,因此您的用户密钥必须复制到服务器-然后在脚本末尾再次删除。

不理想,但是它给您一个选择。