可以通过boto获取AWS账户名吗?

16 投票
4 回答
26261 浏览
提问于 2025-04-19 14:42

我有一个AWS的密钥和秘密密钥,想用boto这个工具来获取我的账户名称。

我可以获取到账户ID,但AWS的账户名称对我来说还是个谜。

4 个回答

2

只有在你使用IAM(身份和访问管理)并且想要获取那个别名的时候,这个操作才可能。如果你有根账户的凭证,就无法获取账户名称。

相关的调用方法是:get_account_alias()

http://boto.readthedocs.org/en/latest/ref/iam.html#boto.iam.connection.IAMConnection.get_account_alias

3

虽然有点晚了,但可能对将来有帮助。如果你在使用组织服务的话,可以用下面的代码来获取账户名称

org = boto3.client('organizations')
account_name = org.describe_account(AccountId='account-id').get('Account')
print(account_name ['Name'])

更多信息请查看这里

7

来自 如何通过Boto获取AWS账户ID

id = boto3.client('sts').get_caller_identity().get('Account')

然后

name =   boto3.client('organizations').describe_account(AccountId=id).get('Account').get('Name')
28

要在 boto3 中获取 AWS 账户别名:

alias = boto3.client('iam').list_account_aliases()['AccountAliases'][0]
  • 虽然 API 的响应可以返回多个账户别名,但 AWS 的文档说明每个账户只能有一个别名。
  • 账户别名账户名称 是不同的,别名是字母和数字的组合,比账户号码更容易使用。别名需要在账户的 IAM 设置中创建(或者通过 AWS CLI 创建)- 不是所有账户都有别名。
  • 获取别名所需的权限比通过 boto3 的 organizations 服务 获取账户名称所需的权限要少。

要获取账户 ID(账户号码):

id = boto3.client('sts').get_caller_identity().get('Account')

撰写回答