【发布时间】:2015-01-25 10:44:00
【问题描述】:
使用 fog ruby 库如何获取当前身份验证的帐户 ID?我使用access_key_id 和secret_access_key 进行身份验证。
【问题讨论】:
标签: ruby-on-rails ruby amazon-web-services fog
使用 fog ruby 库如何获取当前身份验证的帐户 ID?我使用access_key_id 和secret_access_key 进行身份验证。
【问题讨论】:
标签: ruby-on-rails ruby amazon-web-services fog
您可以通过 STS 服务的get-caller-identity API 获取此信息。
在 Ruby 中:
Aws::STS::Client.new(your_oprions).get_caller_identity[:account]
【讨论】:
在所有 api 中都没有这样的调用来获取原始 accounID。然而,通过来自 IAM API 的get_user 调用,有一个很好的技巧
如果您正在调用 AWS API,则必须使用 IAM 用户密钥来执行此操作。每个 IAM 用户都有一个 ARN(亚马逊资源名称),ARN 上应包含 AccountID。
我不知道如何使用雾,但使用 AWS-SDK 你可以使用Aws::IAM::CurrentUser
require 'aws-sdk'
i = Aws::IAM::CurrentUser.new(region: region, credentials: credentials)
puts i.arn
您应该会看到调用者用户的 ARN,上面有 AccountID。此外,通过 aws-cli 控制台应用程序,您将获得相同的答案
aws iam get-user --query "User.Arn"
也许雾中也有类似的东西
【讨论】: