我想设置不同的AWS Identity and Access Management (IAM)个用户,以便在该IAM用户创建AWS资源时,会自动为资源分配一个特定的标记。
例如:如果IAM用户F创建新的EC2实例,则该实例会自动标记为User:MrF。是否可以构建执行此操作的自定义策略?
答案 0 :(得分:5)
我的公司GorillaStack有一个开源的lambda函数,就是这样。
该功能“听”'对于要传递的CloudTrail日志,并使用创建它的用户的ARN标记创建的资源。对于中央帐户为其他帐户收集CloudTrail日志的情况,它还支持跨帐户标记。
在2015年re:Invent会议上大声喊出来,这非常酷:)
希望有所帮助!
答案 1 :(得分:3)
直接使用AWS API时无法使用(即无法命令所有AWS API代表您自动标记新资源),但是,具体取决于您使用的具体情况如果您通过事后标记将创建用户与资源相关联,则可以解决该限制:
您可以激活AWS CloudTrail,记录您帐户的AWS API调用并将日志文件发送给您,并提供您所追求的信息:
记录的信息包括API调用者的身份, API调用的时间,API调用者的源IP地址, 请求参数以及AWS返回的响应元素 服务。
根据该信息,您的专用服务可以分析日志,并根据记录的用户和创建的资源通过resp将post hoc标签应用于所有资源。 API动作。请查看我对Which user launched EC2 instance?的回答,了解在沿着这条路线行进时要考虑的一些注意事项/限制因素。
答案 2 :(得分:3)
更好的解决方案(更快,而且我认为比通过CloudTrail日志解析更便宜)是使用CloudTrail,但结合 CloudWatch Events 。
This is the basic concept described in a diagram
本文还介绍了如何设置IAM策略,该策略仅允许资源的创建者对其执行某些操作(如启动/停止,描述,编辑,终止)。
答案 3 :(得分:1)
我会选择AWS Config。创建一个规则,该规则在创建时自动标记资源。免费,可在多个帐户中使用。非常适合执行合规性。 https://aws.amazon.com/about-aws/whats-new/2019/03/aws-config-now-supports-tagging-of-aws-config-resources/
答案 4 :(得分:0)
目前IAM上没有这样的功能。如果您需要的是基于用户名的允许/拒绝,您可以做的是使用策略中的变量来允许或拒绝基于命名约定的访问,例如:
...
"Resource":"arn:aws:dynamodb:us-east-!:123456789:table/ItemsCatalog_${aws:username}"
...