是否可以在命令行(CLI)中仅使用aws访问密钥和秘密密钥获取aws帐户ID

是否可以在命令行(CLI)中仅使用aws访问密钥和秘密密钥获取aws帐户ID

是否可以在命令行(CLI)中仅使用aws访问密钥和秘密密钥获取aws帐户ID

我有访问密钥和秘密密钥。是否可以使用命令行中的帐户 ID 来获取帐户 ID。

答案1

这是正确的方法:

~ $ aws sts get-caller-identity
{
    "Account": "123456789012", 
    "UserId": "AIDABCDEFGHJKL...", 
    "Arn": "arn:aws:iam::123456789012:user/some.user"
}

它适用于 IAM 用户、跨账户 IAM 角色、EC2 IAM 角色等。

与 一起使用jq仅获取帐户 ID:

~ $ aws sts get-caller-identity | jq -r .Account
123456789012

答案2

sts 获取访问密钥信息命令可让您获取 AWS 账户 ID,即使您只知道AWS_ACCESS_KEY_ID.

$ aws sts get-access-key-info --access-key-id ${AWS_ACCESS_KEY_ID}
{
    "Account": "123456789012"
}

答案3

几乎每个 AWS 对象都包含账户 ID。例如,我的 IAM 用户是 arn:aws:iam::ACCOUNT_ID:user/Andrew.Lorien,我的一个 cloudformation 堆栈的 ID 是 arn:aws:cloudformation:us-west-2:ACCOUNT_ID:stack/my-存储库/12345678-90ab-cdef-1234-567890abcdef。因此,您可以查询您所拥有的任何信息,并从中提取 ID。这是一个 bash 单行代码,它获取第一个 IAM 用户(类似 arn:aws:iam::ACCOUNT_ID:user/USER_NAME 的字符串)并提取账户 ID。

aws iam list-users --query "Users[0].Arn" --output text | cut -d ":" -f 5

相关内容