====== Interface de ligne de commande AWS - AWS CLI ====== ===== Présentation ===== L'AWS Command Line Interface (AWS CLI) est un outil à code source libre qui permet d'interagir avec les services AWS à l'aide des commandes du terminal de ligne de commande. Toutes les fonctions AWS d'administration, de gestion et d'accès IaaS (infrastructure en tant que service) du AWS Management Console sont disponibles dans l'API AWS et AWS CLI. L'AWS CLI fournit un accès direct aux API publiques des services AWS. La AWS CLI version 2 est la version majeure la plus récente de AWS CLI et prend en charge toutes les dernières fonctionnalités. * Lien : https://docs.aws.amazon.com/fr_fr/cli/latest/userguide/cli-chap-welcome.html ===== Recommandations ===== Afin de renforcer la sécurité du compte AWS, il est recommandé de ne pas utiliser les informations d'identification du compte root AWS. Il est préférable de créer et d'utiliser un utilisateur disposant du moindre privilège pour fournir des informations d'accès aux tâches à exécuter. ===== Installation de AWS CLI 2 ===== Lien vers la documentation d'installation : https://docs.aws.amazon.com/fr_fr/cli/latest/userguide/getting-started-install.html Vérifier l'installation de AWS CLI 2 : PS> aws --version aws-cli/2.13.1 Python/3.11.4 Windows/10 exe/AMD64 prompt/off ===== Utiliser les images officielles de AWS CLI 2 d'Amazon ECR Public/Docker Hub ===== Les images officielles offrent une isolation, une portabilité et une sécurité qui directement prises en charge et maintenues par AWS. Cela permet d'utiliser la AWS CLI version 2 dans un environnement basé sur des conteneurs sans avoir à gérer soi-même l'installation. ==== Prérequis ==== Vérifiez que Docker est installé. PS> docker --version Docker version 24.0.2, build cb74dfc ==== Installation depuis Amazon ECR Public==== L'image officielle d'Amazon ECR Public AWS CLI version 2 est hébergée sur Amazon ECR Public dans le référentiel aws-cli/aws-cli. * Lien : https://gallery.ecr.aws/aws-cli/aws-cli Format des commandes AWS CLI en utilisant le conteneur aws-cli/aws-cli PS> docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command Explications : * **--rm** : précise qu'il faut nettoyer le conteneur après la fin de la commande. * **-it** : précise qu'il faut ouvrir un pseudo termina qui permet de fournir des informations à la AWS CLI version 2 lorsqu'elle s'exécute dans un conteneur. Pour exécuter des scripts, le paramètre **-it-** n'est pas nécessaire. ==== Installation depuis Docker Hub==== PS> docker run --rm -it amazon/aws-cli --version ==== Partager des fichiers avec le système hôte ==== * le paramètre **-v ~/.aws:/root/.aws** permet de montez le répertoire **~/.aws** du système hôte sur le conteneur à l'adresse **/root/.aws**. Cela est nécessaire car le conteneur AWS CLI ne peut pas accéder par défaut au système de fichiers hôte notamment pour accéder à la configuration et les informations d'identification du fichier hôte. * Linux et macOS $ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command * Invite de commande Windows C:\> docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command * PowerShell Windows PS> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command ==== Raccourcir la commande docker run ==== Définir un alias aws poru la commande Docker qui exécute le conteneur amazon/aws-cli * Linux et macOS $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli' * Invite de commande Windows C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $* * PowerShell Windows C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI * Utilisation de l'alias depuis le conteneur : PS> aws --version aws-cli/2.13.3 Python/3.11.4 Linux/5.15.90.1-microsoft-standard-WSL2 docker/x86_64.amzn.2 prompt/off ===== Définir les paramètres de configuration et les informations d'identification===== * Lien : https://docs.aws.amazon.com/fr_fr/cli/latest/userguide/cli-configure-files.html Les paramètres de configuration et les informations d'identification sont enregistrés dans des fichiers situés dans le dossier **.\aws** du dossier personnel de l'utilisateur. Ces fichiers sont gérés par l'AWS CLI. Les fichiers sont divisés en profiles et AWS CLI utilise, par défaut, les paramètres du profil nommé default. D'autres profils peuvent être créés au besoin et y faire référence. ==== Définir et afficher les informations d'identification, sa région et le format de sortie de AWS IAM Identity Center ==== Pour l'authentification, il est conseillé d'utiliser le SSO de AWS IAM Identity Center. PS> aws configure sso Il est nécessaire de **s'authentifier sur IAM Identity Center** pour récupérer au prélable ses informations d'identificaiton ==== Afficher une infomation particulière ==== * Exemple pour afficher la région pour le profil default: PS> aws configure get region --profile default ==== Lister toutes les données de configuration ==== PS> aws configure list ===== Retour au menu Solution AWS ===== * [[reseau:cloud:aws:accueil|Solution AWS]]