À la recherche d'un moyen rapide d'extraire mon numéro de compte, j'avais initialement pensé à l'utiliser, aws iam get-account-authorization-details --max-items 1
mais il y a plusieurs problèmes à le faire de cette façon. Existe-t-il un moyen de le faire qui pourrait ne pas croiser les origines des comptes?
99
aws sts get-caller-identity|jq -r ".Account"
aws sts get-caller-identity --output json | jq '.Account' | sed 's/\"//g'
--query 'Account'
pièce.jq
implication ou votre installation sur un système. Certains serveurs interdisent les installations de packages superflus pour des raisons de sécurité. Vous pourriez faire quelque chose comme ça,aws sts get-caller-identity --output json |grep Account |awk -F ': "' '{print$2}' |sed 's/\".*//'
mais c'est un peu ennuyeux et vous pourriez aussi bien le faire--query 'Account' --output text
à ce stade.D'après ma réponse connexe pour l'AWS PowerShell CLI , votre ID de compte fait partie de l'Arn des ressources que vous créez ... et de celles qui sont automatiquement créées pour vous. Certaines ressources vous répertorieront également en tant que OwnerId.
Le groupe de sécurité par défaut est automatiquement créé pour vous dans le VPC par défaut de chaque région en tant que groupe de sécurité réservé. De la documentation :
Cela en fait un candidat fiable pour récupérer notre identifiant de compte, à condition que vous soyez dans EC2 classic ou que vous ayez un VPC par défaut (* voir les cas extrêmes si vous ne le faites pas).
Exemple:
Cela permet
--query
de filtrer la sortie jusqu'à l '"ID du propriétaire" pour le premier résultat de cette demande, puis utilise--output
pour afficher votre ID de compte en texte brut:Cas de bord:
(Merci @kenchew) Notez que si vous avez supprimé votre VPC par défaut dans une région donnée, ce groupe de sécurité n'existe plus et vous devez utiliser l'une de ces solutions alternatives:
Lectures complémentaires:
la source
Si vous exécutez sur un serveur exécuté avec un rôle assumé, vous ne pouvez pas appeler
aws sts get-caller-identity
. De plus,describe-security-groups
vous ne pouvez pas toujours utiliser le--group-names
filtre (cela ne fonctionne pas si vous n'avez pas de VPC par défaut), alors choisissez simplement le premier groupe de sécurité. J'ai trouvé que c'était le plus fiable, quel que soit le type d'authentification que vous utilisez ou le type de VPC dont vous disposez.la source
Ma méthode préférée est à utiliser
aws iam get-user [--profile <profile>]
car vous n'avez besoin que du rôle de libre-service IAM pour que cela fonctionne.la source