Можете ли вы получить имя учетной записи AWS от boto?

У меня есть ключ AWS и секретный ключ, и я хочу позвонить boto, чтобы получить имя учетной записи.

Я могу получить идентификатор учетной записи, но имя учетной записи AWS остается загадкой.


person blacksheep9000    schedule 03.09.2014    source источник
comment
Пожалуйста, проверьте ответы здесь stackoverflow.com/questions/ 36709461/   -  person Montaro    schedule 14.12.2016
comment
Похоже, что этот вопрос конкретно относится к boto2, поскольку boto3 не отсутствовал, когда был задан этот вопрос. Просто ради интереса я проверил, и первоначальная фиксация была на самом деле через 6 часов после публикации этого вопроса: /boto/boto3/commit/ :)   -  person Jake    schedule 05.10.2017


Ответы (4)


Чтобы получить псевдоним учетной записи AWS в boto3:

alias = boto3.client('iam').list_account_aliases()['AccountAliases'][0]

Чтобы получить идентификатор учетной записи (номер счета):

id = boto3.client('sts').get_caller_identity().get('Account')
person RichVel    schedule 04.12.2018

из Получить идентификатор учетной записи AWS из Boto

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

потом

name =   boto3.client('organizations').describe_account(AccountId=id).get('Account').get('Name')
person G. Lasne    schedule 19.04.2017
comment
получение имени привело к ошибке botocore.exceptions.ParamValidationError - person Grant Robert Smith; 17.10.2018
comment
Это полезно только в том случае, если учетная запись является членом какой-либо организации. - person Abhishek Chudekar; 04.05.2021

Это возможно только в том случае, если вы используете IAM и хотите получить этот псевдоним. Если у вас есть учетные данные root, получить имя учетной записи невозможно.

Связанный звонок: get_account_alias()

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

person Adam Papai    schedule 03.09.2014
comment
Псевдоним не совпадает с именем учетной записи. - person blacksheep9000; 04.09.2014

Это поздно, но может быть полезно для будущего. Если вы используете службу организации, то с помощью приведенного ниже кода вы можете получить имя учетной записи.

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

Дополнительная информация

person saranjeet singh    schedule 05.07.2020