是否可以在命令行(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