我正在使用Ruby SDK(V2),但我想我的问题比具体实现更通用,因为我在任何SDK中都找不到答案.
如何获取我的会话当前所属的用户名(和/或IAM用户)?
我让SDK运行其默认行为来选择凭证(ENV vars,然后是'default'配置文件或其他如果指定,然后选择机器角色).然后我初始化我的客户端并运行命令.我想知道'谁在运行命令'.我希望获得AWS用户名,如果所选凭据是其中的IAM用户,那么此用户名也是如此.
有任何想法吗?到目前为止我得到的最好的是,在我构建一个Client
对象之后,我可以查询它的实际情况config
并得到它Credentials
.但这只会给我选择的凭据(即SharedCredentials profile='default'
vs. Credentials key=.. secret=..
),而不会告诉我背后的用户名是谁.
非常感谢!
请注意您的术语-与AWS API的交互都是通过HTTP进行的,并且是无会话和无状态的,因此实际上并没有当前“已登录”用户或“会话”的概念。
但是,对于给定的一组凭据,您可以从获取“当前”用户(正在使用其凭据的用户)的属性Aws::IAM::CurrentUser
。
http://docs.aws.amazon.com/sdkforruby/api/Aws/IAM/CurrentUser.html
缺乏示例的歉意-我通常不熟悉Ruby-但是基于我知道的直接查询API和带有命令行客户端可以完成的工作,发现了这一点aws iam get-user
。可用的属性都是一样的:user_name
,password_last_used
,create_date
,user_id
,path
,和arn
...所以我怀疑这是你在找什么。
从查询API文档:
它默认为发出请求的用户