可以通过boto获取AWS账户名吗?
我有一个AWS的密钥和秘密密钥,想用boto
这个工具来获取我的账户名称。
我可以获取到账户ID,但AWS的账户名称对我来说还是个谜。
4 个回答
2
只有在你使用IAM(身份和访问管理)并且想要获取那个别名的时候,这个操作才可能。如果你有根账户的凭证,就无法获取账户名称。
相关的调用方法是:get_account_alias()
3
虽然有点晚了,但可能对将来有帮助。如果你在使用组织服务的话,可以用下面的代码来获取账户名称。
org = boto3.client('organizations')
account_name = org.describe_account(AccountId='account-id').get('Account')
print(account_name ['Name'])
7
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')