DEV Community

Cover image for aws console : ouvrir la Console AWS depuis le terminal, en une commande

aws console : ouvrir la Console AWS depuis le terminal, en une commande

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

À 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
Enter fullscreen mode Exit fullscreen mode

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"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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  …
Enter fullscreen mode Exit fullscreen mode

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)
Enter fullscreen mode Exit fullscreen mode

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)