Quand on gère des dizaines de comptes et de rôles AWS, ouvrir la Console est un rituel pénible : retrouver le bon profil, cliquer pour se connecter, recommencer pour changer de compte. J'ai fini par packager le raccourci que j'utilise au quotidien en une commande toute simple :
aws console mon-profil
Regardez-le en action :
Et voilà, la Console s'ouvre dans le navigateur, connectée au bon compte. Ça s'installe en une commande et ça s'utilise comme une sous-commande native de l'AWS CLI.
Installation
Pré-requis : AWS CLI v2, curl, python3, et des profils SSO / assume-role.
curl -fsSL -o aws-console-url.tar.gz \
https://github.com/psantus/aws-console-url/archive/refs/tags/v1.1.0.tar.gz
tar xzf aws-console-url.tar.gz
cd aws-console-url-1.0.0
./install.sh
L'installeur enregistre deux alias équivalents dans ~/.aws/cli/alias : aws console (court) et aws console-url (explicite).
aws console mon-profil --print # affiche l'URL au lieu d'ouvrir le navigateur
À l'usage
aws console mon-profil # ouvre la console, loué avec le profil correspondant
aws console mon-profil --print # affiche juste l'URL de connexion
aws console mon-profil --region us-east-1 # force la région d'atterrissage
aws console mon-profil --browser "Safari" # choisir le navigateur
Par défaut, l'URL s'ouvre dans votre navigateur système (macOS, Linux et WSL/Git Bash sous Windows sont gérés). Pour en fixer un :
export AWS_CONSOLE_BROWSER="Google Chrome"
Atterrir directement sur un service
Un deuxième argument (ou --service) vous emmène droit sur la console d'un service, pas seulement la page d'accueil :
aws console mon-profil ec2 # ouvre directement la console EC2
aws console mon-profil s3 # S3 (console globale)
aws console mon-profil lambda # Lambda dans la bonne région
aws console mon-profil --service rds
La plupart des services suivent /<service>/home ; quelques cas particuliers (s3, iam, route53, billing globaux ; stepfunctions → states) sont gérés automatiquement. Pour tout deep-link exotique, --destination <url> reste disponible.
Le multi-session, gratuitement
La Console AWS permet d'être connecté à jusqu'à 5 comptes simultanément dans le même navigateur. L'outil l'active automatiquement : chaque profil s'ouvre dans sa propre session au lieu d'écraser la précédente.
aws console compte-a # session A
aws console compte-b # session B, en parallèle : les deux restent connectées
La première fois, la Console affiche une invite « Enable multi-session » : un clic, une fois par navigateur, et c'est réglé. (--no-multi pour revenir au comportement classique mono-session.)
Le trio d'alias shell : al / ap / ac
Pour aller encore plus vite au quotidien, dans le fichier shell/aws-helpers.sh je fournis trois fonctions à sourcer dans votre ~/.zshrc (ou ~/.bashrc) :
| alias | fonction |
|---|---|
al |
login : s'assure qu'une session SSO valide existe (idempotent) |
ap |
profile : positionne le AWS_PROFILE ambiant |
ac |
console : ouvre la console (ac <profile>, ou juste ac après ap) |
source /chemin/vers/aws-console-url/shell/aws-helpers.sh
export AWS_DEFAULT_SSO_PROFILE="mon-profil-sso" # optionnel, utilisé par al
Le workflow type devient :
al # on s'assure d'être connecté
ap mon-profil # on choisit un profil
ac # on ouvre sa console (utilise $AWS_PROFILE)
ac autre-compte # ...ou un autre explicitement (multi-session)
ac accepte aussi bien un profil explicite que le $AWS_PROFILE posé par ap, et transmet toutes les options à aws console.
Et pour aller au bout du confort, une complétion zsh (shell/completion.zsh) complète au TAB les noms de profils (lus en direct depuis votre config AWS), les services et les options :
ac de<TAB> # → dev-readonly dev-admin …
ac mon-profil e<TAB> # → ec2 ecs ecr efs events …
Comment ça marche ; petit point sécu
Sous le capot, l'outil s'appuie entièrement sur l'AWS CLI et sur le
flow de fédération documenté par AWS :
aws console <profil>
│
├─ aws configure export-credentials → credentials temporaires (la CLI gère SSO/STS)
├─ aws sts get-caller-identity → ID de compte
│
├─ GET signin.aws.amazon.com/federation?Action=getSigninToken
└─ open signin.aws.amazon.com/federation?Action=login&... (navigateur)
Il ne réinvente rien : c'est l'AWS CLI qui résout les credentials, et l'outil se contente de construire l'URL de connexion à la Console.
Accessoirement, ça en fait un outil 100 % auditable (~150 lignes de bash) qui ne lit jamais votre cache de tokens SSO, ne stocke aucun credential et ne contacte que signin.aws.amazon.com : aucune exfiltration de vos identifiants n'est possible.
C'est open source
Le code est sous licence MIT, sur GitHub. Si l'outil vous fait gagner du
temps, vous pouvez me sponsoriser ☕.
Top comments (0)