Подтвердить что ты не робот

Быстрый способ получить номер учетной записи AWS из инструментов AWS CLI?

Ища быстрый способ получить номер моего счета, я изначально думал об использовании aws iam get-account-authorization-details --max-items 1 но с этим было несколько проблем. Есть ли способ сделать это, что не может пересечь происхождение аккаунта?

4b9b3361

Ответ 1

Вы можете получить номер учетной записи из подкоманды Secure Token Service subcommand get-caller-identity, используя следующую информацию:

aws sts get-caller-identity --output text --query 'Account'

Ответ 2

Из моего связанного ответа для CLI AWS PowerShell ваш идентификатор учетной записи является частью арн ресурсов, которые вы создаете... и тех, которые создаются автоматически для вас. Некоторые ресурсы также будут указывать вас как OwnerId.

Группа безопасности по умолчанию автоматически создается для каждого VPC региона по умолчанию в качестве зарезервированной группы безопасности. Из документации:

Вы не можете удалить группу безопасности по умолчанию. Если вы попытаетесь удалить группу безопасности по умолчанию EC2-Classic, вы получите следующую ошибку: Client.InvalidGroup.Reserved: группа безопасности по умолчанию зарезервирована. Если вы попытаетесь удалить группу безопасности по умолчанию VPC, вы получите следующую ошибку: Client.CannotDelete: указанная группа: "sg-51530134" name: "default" не может быть удален пользователем.

Это делает его надежным кандидатом для получения нашего идентификатора учетной записи, если вы находитесь в EC2 classic или у вас есть VPC по умолчанию (* смотрите крайние случаи, если вы этого не сделаете).

Пример:

aws ec2 describe-security-groups \
    --group-names 'Default' \
    --query 'SecurityGroups[0].OwnerId' \
    --output text

Он использует --query для фильтрации вывода до "идентификатора владельца" для первого результата этого запроса, а затем использует --output для вывода идентификатора вашей учетной записи в виде открытого текста:

123456781234

Краевые случаи:

(Спасибо @kenchew) Обратите внимание, что если вы удалили свой VPC по умолчанию в данном регионе, эта группа безопасности больше не существует, и вам следует использовать одно из следующих альтернативных решений:

Дальнейшее чтение:

Ответ 3

Если вы работаете на сервере, который работает с предполагаемой ролью, вы не можете вызвать aws sts get-caller-identity. Кроме того, при describe-security-groups вы не всегда можете использовать фильтр --group-names (он не работает, если у вас нет VPC по умолчанию), поэтому просто выберите первую группу безопасности. Я нашел это самым надежным независимо от того, какую аутентификацию вы используете или какой VPC у вас есть.

aws ec2 describe-security-groups --query 'SecurityGroups[0].OwnerId' --output text

Ответ 4

Мой любимый метод - использовать aws iam get-user [--profile <profile>] поскольку для этого вам нужна только роль самообслуживания IAM.