我想与使用该模板创建堆栈的用户自动标记CloudFormation模板中定义的某些AWS资源。可以访问模板中的任何类型的用户ID吗?
答案 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需要由用户运行-而不是角色,因此您的用户密钥必须复制到服务器-然后在脚本末尾再次删除。
不理想,但是它给您一个选择。