Aujourd’hui, nous allons voir comment paramétrer notre client AWS Cli afin d’interagir avec notre plateforme AWS.
Les Credentials
Première chose : paramétrer les credentials afin de s’authentifier.
Inclure un nom entre crochet, mon trigramme « jla » dans cet exemple :
[root@monHost ~]# cat .aws/credentials [default] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [jla] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [...]
A noter que pour utiliser le AWS Cli sans préciser de paire de clé, alors c’est le [default] qui est utilisé.
Par exemple, pour lister les instances en marche :
aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --output json
Les Profiles
Les profiles classiques/simples :
Afin de se simplifier la vie, il est possible de spécifier quelques paramétrages par défaut. Par exemple, une région, si toute votre infra est stockée au même endroit :
[root@monHost ~]# cat .aws/config [default] output = json region = eu-west-1
En multi-zones, nous pouvons utiliser plusieurs profiles en plus de celui par défaut pour attaquer une autre région (Paris dans cet exemple) :
[profile paris] output = json region = eu-west-3
Pour l’utiliser, il suffit de le préciser dans la ligne de commande :
aws ec2 describe-instances --profile wiki --filters "Name=instance-state-name,Values=running"
Les profiles en héritage des credentials :
Nous pouvons, pour des question de clarté, avoir des profiles parents qui utilisent des credentials (paires de clés).
Prenons un exemple avec du multi-comptes AWS totalement indépendants : un pour la production, un pour la pré-production.
Chaque profile va spécifier le format de sortie en json et la région Paris ou Irlande :
[root@monHost ~]# cat .aws/config [profile preprod_paris] output = json region = eu-west-3 source_profile = preprod [profile preprod_irlande] output = json region = eu-west-1 source_profile = preprod [profile prod_paris] output = json region = eu-west-3 source_profile = prod [profile prod_irlande] output = json region = eu-west-1 source_profile = prod
On note ici l’utilisation du paramètre source_profile. Ce paramètre fait référence aux credentials que nous avons évoqué en début d’article.
Ajoutons nos clés correspondantes aux 2 comptes :
[root@monHost ~]# cat .aws/credentials [preprod] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [prod] aws_access_key_id = XXXXXXXXXXXXXXXXXXXXXXX aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Nous pouvons maintenant lister les machines en marche sur la production de Paris uniquement :
aws ec2 describe-instances --profile prod_paris --filters "Name=instance-state-name,Values=running"
Ou bien la pré-produciton en Irlande :
aws ec2 describe-instances --profile preprod_irlande --filters "Name=instance-state-name,Values=running"
La bonne paire de clés sera alors utilisée sur la bonne région pour vous retourner les bonnes informations.
L’utilisation du Multi-Factor Authentification et des rôles
Vous utilisez peut-être, du moins vous devriez y penser, l’authentification via MFA.
Aussi, l’utilisation de rôles IAM permet de se connecter sur plusieurs environnements avec un seul compte tier.
Exemple :
- Un compte « MonEntrepriseProduction » et un rôle « AdminProd » qui aura les droits sur ce compte.
- Un compte utilisateur (chaque personne du service) auquel on va permettre l’utilisation du rôle « AdminProd ».
- Une authentification via le Google Authentificator sur mon smartphone Android (MFA) pour le login sur mon compte utilisateur.
[root@monHost ~]# cat .aws/config [profile jla_paris] output = json region = eu-west-3 source_profile = jla role_arn = arn:aws:iam::19910XXXXXX:role/AdminProd mfa_serial = arn:aws:iam::067591XXXXXX:mfa/jonathan.lambert@easyxxxx.fr
On ajoute donc les paramètres suivants :
- role_arn que vous pourrez trouver sous le rôle AdminProd dans votre service IAM > Roles > AdminProd
- mfa_serial que vous pourrez trouver sans rôle dans votre service IAM > Utilisateurs > VotreUtilisateur
On a donc une interrogation de la part du Cli qui nous demande le code MFA à saisir pour se logguer :
[root@monHost ~]# aws ec2 describe-instances --profile jla_paris --filters "Name=instance-state-name,Values=running" Enter MFA code for arn:aws:iam::067591XXXXXX:mfa/jonathan.lambert@easyxxxx.fr: { "Reservations": [ [...]
Une fois le code à 6 chiffres saisi, on obtient notre résultat !
Vous êtes désormais capables de vous authentifier via le AWS Cli de multiples façons 🙂
—
Envie de vous former sur les technologies AWS ? Débutez votre parcours par les notions techniques de bases AWS afin de monter en compétences sur les solutions Amazon Web Services.
2 réflexions sur “Configurer son AWS Cli sous Linux”
Ping : Gouvernez vos ressources AWS avec Config Service - EASYTEAM
Ping : Cloner un Security Group inter-région / inter-compte - EASYTEAM
Les commentaires sont fermés.