从 AWS SDK,如何获取当前登录的用户名(或 IAM 用户)?
From AWS SDK, how to I get the current logged in username (or IAM user)?
我正在使用 Ruby SDK (V2),但我想我的问题比具体实现更笼统,因为我在任何 SDK 中都找不到答案。
如何获取我的会话当前所属的用户名(and/or IAM 用户)?
我让 SDK 运行 选择凭据的默认行为(ENV 变量,然后是 'default' 配置文件或其他(如果已指定),然后是机器角色)。然后我初始化我的客户端和 运行 命令。我想知道 'who is running the commands'。我希望获得 AWS 用户名,如果选择的凭证是其中的 IAM 用户,那么这个用户名也是如此。
有什么想法吗?
到目前为止我得到的最好的结果是在我构建了一个 Client
对象之后,我可以查询它的实际 config
并得到 Credentials
。但这只告诉我选择了哪些凭据(即 SharedCredentials profile='default'
与 Credentials key=.. secret=..
),并没有告诉我它背后的用户名是谁。
非常感谢!
注意您的术语——与 AWS API 的交互全部通过 HTTP,并且是无会话和无状态的,因此实际上没有当前 "logged in" 用户或 "session."
但是,对于一组给定的凭据,您可以从 Aws::IAM::CurrentUser
.
获取 "current" 用户(您正在使用其凭据的用户)的属性
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
...所以我怀疑这就是您要找的。
it defaults to the user making the request
STS(安全令牌服务)为此提供了一个API:
GetCallerIdentity
Returns 有关其凭据用于调用 API.
的 IAM 身份的详细信息
http://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html
我正在使用 Ruby SDK (V2),但我想我的问题比具体实现更笼统,因为我在任何 SDK 中都找不到答案。
如何获取我的会话当前所属的用户名(and/or IAM 用户)?
我让 SDK 运行 选择凭据的默认行为(ENV 变量,然后是 'default' 配置文件或其他(如果已指定),然后是机器角色)。然后我初始化我的客户端和 运行 命令。我想知道 'who is running the commands'。我希望获得 AWS 用户名,如果选择的凭证是其中的 IAM 用户,那么这个用户名也是如此。
有什么想法吗?
到目前为止我得到的最好的结果是在我构建了一个 Client
对象之后,我可以查询它的实际 config
并得到 Credentials
。但这只告诉我选择了哪些凭据(即 SharedCredentials profile='default'
与 Credentials key=.. secret=..
),并没有告诉我它背后的用户名是谁。
非常感谢!
注意您的术语——与 AWS API 的交互全部通过 HTTP,并且是无会话和无状态的,因此实际上没有当前 "logged in" 用户或 "session."
但是,对于一组给定的凭据,您可以从 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
...所以我怀疑这就是您要找的。
it defaults to the user making the request
STS(安全令牌服务)为此提供了一个API:
GetCallerIdentity
Returns 有关其凭据用于调用 API.
http://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html