Fog AWS:如何获取账户 ID

Fog AWS: How to get account ID

使用fog库ruby如何获取当前认证的账号ID?我使用 access_key_idsecret_access_key 进行身份验证。

在所有 api 中都没有这样的调用来获取原始帐户 ID。然而,有一个很好的技巧可以通过来自 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"

也许雾中有类似的东西

您可以通过 get-caller-identity API STS 服务获取此信息。

在Ruby中:

Aws::STS::Client.new(your_oprions).get_caller_identity[:account]