Résolution des erreurs liées à l’AWS CLI - AWS Command Line Interface

Cette documentation concerne uniquement la version 1 de l’AWS CLI. Pour la documentation relative à la version 2 de l’AWS CLI, consultez le Guide de l’utilisateur de la version 2.

Résolution des erreurs liées à l’AWS CLI

Cette section décrit les erreurs courantes et les étapes de résolution des problèmes à suivre pour résoudre votre problème. Nous vous suggérons de suivre d’abord la section de résolution des problèmes généraux.

Résolution des problèmes généraux à essayer en premier

Si vous recevez un message d’erreur ou rencontrez un problème avec l’AWS CLI, nous vous suggérons de suivre les conseils généraux suivants pour vous aider à résoudre le problème.

haut de la page

Vérifiez le formatage de vos commandes dans l’AWS CLI

Si vous recevez un message d’erreur indiquant qu’une commande n’existe pas ou qu’elle ne reconnaît pas un paramètre (Parameter validation failed) qui, selon la documentation, est disponible, votre commande est peut-être mal formatée. Nous vous suggérons de contrôler les éléments suivants :

Pour plus d’informations sur la manière dont une commande spécifique doit être structurée, consultez le guide de référence de l’AWS CLI.

haut de la page

Vérifiez la Région AWS utilisée par votre commande d’AWS CLI.

Note

Vous devez spécifier une Région AWS lors de l’utilisation de l’AWS CLI, explicitement ou en définissant une région par défaut. Pour obtenir la liste de toutes les Régions AWS que vous pouvez spécifier, consultez Régions et points de terminaison AWS dans le Référence générale d'Amazon Web Services. Les indicateurs de Région AWS utilisés par l’AWS CLI sont les mêmes que ceux des URL de la AWS Management Console et des points de terminaison de service.

Des erreurs ou des résultats inattendus peuvent se produire si un Service AWS n’est pas disponible pour la Région AWS que vous avez spécifiée ou si vos ressources se trouvent dans une autre Région AWS. Par ordre de priorité, la Région AWS est définie de la manière suivante :

Vérifiez que vous utilisez la Région AWS appropriée pour vos ressources.

haut de la page

Confirmez que vous utilise une version récente de l’AWS CLI

Si vous recevez un message d’erreur indiquant qu’une commande n’existe pas ou qu’elle ne reconnaît pas un paramètre indiqué comme disponible dans le guide de référence de l’AWS CLI, vérifiez d’abord que votre commande est correctement formatée. Si le formatage est correct, nous vous recommandons de passer à la version la plus récente de l’AWS CLI. Les versions mises à jour de AWS CLI sont publiées presque tous les jours ouvrables. De nouveaux services, fonctionnalités et paramètres AWSsont ajoutés dans ces nouvelles versions de AWS CLI. Le seul moyen d’accéder à ces nouveaux services, fonctionnalités et paramètres consiste à effectuer une mise à niveau vers une version publiée après la première introduction de cet élément.

La façon dont vous mettez à jour votre version de l’AWS CLI dépend de la façon dont vous l’avez installée initialement comme décrit dans Installation, mise à jour et désinstallation de l’ AWS CLI.

Si vous avez utilisé l’un des programmes d’installation fournis, vous devez peut-être supprimer l’installation existante avant de télécharger et d’installer la dernière version pour votre système d’exploitation.

haut de la page

Utilisation de l’option --debug

Lorsque l’AWS CLI signale une erreur que vous ne comprenez pas immédiatement ou produit des résultats auxquels vous ne vous attendez pas, vous pouvez obtenir plus de détails sur l’erreur en exécutant à nouveau la commande avec l’option --debug. Avec cette option, l’AWS CLI produit des résultats qui fournissent des informations détaillées sur chaque étape nécessaire au traitement de votre commande. Les détails de la sortie peuvent vous aider à déterminer à quelle étape l’erreur se produit et fournissent des indices sur l’origine de cette erreur.

Vous pouvez envoyer la sortie vers un fichier texte en vue d’une révision ultérieure ou l’envoyer à AWS Support lorsque vous y êtes invité.

Lorsque vous incluez l’option --debug, les détails fournis sont les suivants :

  • La recherche d’informations d’identification

  • L’analyse des paramètres fournis

  • La construction de la demande envoyée aux serveurs AWS

  • Le contenu de la demande envoyée à AWS

  • Le contenu de la réponse brute

  • La sortie formatée

Voici un exemple de commande exécutée avec et sans l’option --debug :

$ aws iam list-groups --profile MyTestProfile { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA0123456789EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }
$ aws iam list-groups --profile MyTestProfile --debug 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205 2019-08-12 12:36:18,305 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['iam', 'list-groups', '--debug'] 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function add_scalar_parsers at 0x7fdf173161e0> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function register_uri_param_handler at 0x7fdf17dec400> 2019-08-12 12:36:18,305 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function inject_assume_role_provider_cache at 0x7fdf17da9378> 2019-08-12 12:36:18,307 - MainThread - botocore.credentials - DEBUG - Skipping environment variable credential check because profile name was explicitly set. 2019-08-12 12:36:18,307 - MainThread - botocore.hooks - DEBUG - Event session-initialized: calling handler <function attach_history_handler at 0x7fdf173ed9d8> 2019-08-12 12:36:18,308 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/service-2.json 2019-08-12 12:36:18,317 - MainThread - botocore.hooks - DEBUG - Event building-command-table.iam: calling handler <function add_waiters at 0x7fdf1731a840> 2019-08-12 12:36:18,320 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/waiters-2.json 2019-08-12 12:36:18,321 - MainThread - awscli.clidriver - DEBUG - OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>)]) 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_streaming_output_arg at 0x7fdf17316510> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_cli_input_json at 0x7fdf17da9d90> 2019-08-12 12:36:18,322 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function unify_paging_params at 0x7fdf17328048> 2019-08-12 12:36:18,326 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/iam/2010-05-08/paginators-1.json 2019-08-12 12:36:18,326 - MainThread - awscli.customizations.paginate - DEBUG - Modifying paging parameters for operation: ListGroups 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event building-argument-table.iam.list-groups: calling handler <function add_generate_skeleton at 0x7fdf1737eae8> 2019-08-12 12:36:18,326 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method OverrideRequiredArgsArgument.override_required_args of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event before-building-argument-table-parser.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.override_required_args of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,327 - MainThread - botocore.hooks - DEBUG - Event operation-args-parsed.iam.list-groups: calling handler functools.partial(<function check_should_enable_pagination at 0x7fdf17328158>, ['marker', 'max-items'], {'max-items': <awscli.arguments.CLIArgument object at 0x7fdf171b09b0>}, OrderedDict([('path-prefix', <awscli.arguments.CLIArgument object at 0x7fdf171ac780>), ('marker', <awscli.arguments.CLIArgument object at 0x7fdf171b09e8>), ('max-items', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c58d0>), ('cli-input-json', <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>), ('starting-token', <awscli.customizations.paginate.PageArgument object at 0x7fdf171b0a20>), ('page-size', <awscli.customizations.paginate.PageArgument object at 0x7fdf171c5828>), ('generate-cli-skeleton', <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>)])) 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.path-prefix: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.marker: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.max-items: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.cli-input-json: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.starting-token: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.page-size: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,328 - MainThread - botocore.hooks - DEBUG - Event load-cli-arg.iam.list-groups.generate-cli-skeleton: calling handler <awscli.paramfile.URIArgumentHandler object at 0x7fdf1725c978> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method CliInputJSONArgument.add_to_call_parameters of <awscli.customizations.cliinputjson.CliInputJSONArgument object at 0x7fdf171b0a58>> 2019-08-12 12:36:18,329 - MainThread - botocore.hooks - DEBUG - Event calling-command.iam.list-groups: calling handler <bound method GenerateCliSkeletonArgument.generate_json_skeleton of <awscli.customizations.generatecliskeleton.GenerateCliSkeletonArgument object at 0x7fdf171c5978>> 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: assume-role-with-web-identity 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: shared-credentials-file 2019-08-12 12:36:18,329 - MainThread - botocore.credentials - INFO - Found credentials in shared credentials file: ~/.aws/credentials 2019-08-12 12:36:18,330 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/endpoints.json 2019-08-12 12:36:18,334 - MainThread - botocore.hooks - DEBUG - Event choose-service-name: calling handler <function handle_service_name_alias at 0x7fdf1898eb70> 2019-08-12 12:36:18,337 - MainThread - botocore.hooks - DEBUG - Event creating-client-class.iam: calling handler <function add_generate_presigned_url at 0x7fdf18a028c8> 2019-08-12 12:36:18,337 - MainThread - botocore.regions - DEBUG - Using partition endpoint for iam, us-west-2: aws-global 2019-08-12 12:36:18,337 - MainThread - botocore.args - DEBUG - The s3 config key is not a dictionary type, ignoring its value of: None 2019-08-12 12:36:18,340 - MainThread - botocore.endpoint - DEBUG - Setting iam timeout as (60, 60) 2019-08-12 12:36:18,341 - MainThread - botocore.loaders - DEBUG - Loading JSON file: /home/ec2-user/venv/lib/python3.7/site-packages/botocore/data/_retry.json 2019-08-12 12:36:18,341 - MainThread - botocore.client - DEBUG - Registering retry handlers for service: iam 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-parameter-build.iam.ListGroups: calling handler <function generate_idempotent_uuid at 0x7fdf189b10d0> 2019-08-12 12:36:18,342 - MainThread - botocore.hooks - DEBUG - Event before-call.iam.ListGroups: calling handler <function inject_api_version_header_if_needed at 0x7fdf189b2a60> 2019-08-12 12:36:18,343 - MainThread - botocore.endpoint - DEBUG - Making request for OperationModel(name=ListGroups) with params: {'url_path': '/', 'query_string': '', 'method': 'POST', 'headers': {'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': 'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205'}, 'body': {'Action': 'ListGroups', 'Version': '2010-05-08'}, 'url': 'https://iam.amazonaws.com/', 'context': {'client_region': 'aws-global', 'client_config': <botocore.config.Config object at 0x7fdf16e9a4a8>, 'has_streaming_input': False, 'auth_type': None}} 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event request-created.iam.ListGroups: calling handler <bound method RequestSigner.handler of <botocore.signers.RequestSigner object at 0x7fdf16e9a470>> 2019-08-12 12:36:18,343 - MainThread - botocore.hooks - DEBUG - Event choose-signer.iam.ListGroups: calling handler <function set_operation_specific_signer at 0x7fdf18996f28> 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - Calculating signature using v4 auth. 2019-08-12 12:36:18,343 - MainThread - botocore.auth - DEBUG - CanonicalRequest: POST / content-type:application/x-www-form-urlencoded; charset=utf-8 host:iam.amazonaws.com x-amz-date:20190812T193618Z content-type;host;x-amz-date 5f776d91EXAMPLE9b8cb5eb5d6d4a787a33ae41c8cd6eEXAMPLEca69080e1e1f 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - StringToSign: AWS4-HMAC-SHA256 20190812T193618Z 20190812/us-east-1/iam/aws4_request ab7e367eEXAMPLE2769f178ea509978cf8bfa054874b3EXAMPLE8d043fab6cc9 2019-08-12 12:36:18,344 - MainThread - botocore.auth - DEBUG - Signature: d85a0EXAMPLEb40164f2f539cdc76d4f294fe822EXAMPLE18ad1ddf58a1a3ce7 2019-08-12 12:36:18,344 - MainThread - botocore.endpoint - DEBUG - Sending http request: <AWSPreparedRequest stream_output=False, method=POST, url=https://iam.amazonaws.com/, headers={'Content-Type': b'application/x-www-form-urlencoded; charset=utf-8', 'User-Agent': b'aws-cli/1.16.215 Python/3.7.3 Linux/4.14.133-113.105.amzn2.x86_64 botocore/1.12.205', 'X-Amz-Date': b'20190812T193618Z', 'Authorization': b'AWS4-HMAC-SHA256 Credential=AKIA01234567890EXAMPLE-east-1/iam/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=d85a07692aceb401EXAMPLEa1b18ad1ddf58a1a3ce7EXAMPLE', 'Content-Length': '36'}> 2019-08-12 12:36:18,344 - MainThread - urllib3.util.retry - DEBUG - Converted retries value: False -> Retry(total=False, connect=None, read=None, redirect=0, status=None) 2019-08-12 12:36:18,344 - MainThread - urllib3.connectionpool - DEBUG - Starting new HTTPS connection (1): iam.amazonaws.com:443 2019-08-12 12:36:18,664 - MainThread - urllib3.connectionpool - DEBUG - https://iam.amazonaws.com:443 "POST / HTTP/1.1" 200 570 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response headers: {'x-amzn-RequestId': '74c11606-bd38-11e9-9c82-559da0adb349', 'Content-Type': 'text/xml', 'Content-Length': '570', 'Date': 'Mon, 12 Aug 2019 19:36:18 GMT'} 2019-08-12 12:36:18,664 - MainThread - botocore.parsers - DEBUG - Response body: b'<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">\n <ListGroupsResult>\n <IsTruncated>false</IsTruncated>\n <Groups>\n <member>\n <Path>/</Path>\n <GroupName>MyTestGroup</GroupName>\n <Arn>arn:aws:iam::123456789012:group/MyTestGroup</Arn>\n <GroupId>AGPA1234567890EXAMPLE</GroupId>\n <CreateDate>2019-08-12T19:34:04Z</CreateDate>\n </member>\n </Groups>\n </ListGroupsResult>\n <ResponseMetadata>\n <RequestId>74c11606-bd38-11e9-9c82-559da0adb349</RequestId>\n </ResponseMetadata>\n</ListGroupsResponse>\n' 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event needs-retry.iam.ListGroups: calling handler <botocore.retryhandler.RetryHandler object at 0x7fdf16e9a780> 2019-08-12 12:36:18,665 - MainThread - botocore.retryhandler - DEBUG - No retry needed. 2019-08-12 12:36:18,665 - MainThread - botocore.hooks - DEBUG - Event after-call.iam.ListGroups: calling handler <function json_decode_policies at 0x7fdf189b1d90> { "Groups": [ { "Path": "/", "GroupName": "MyTestGroup", "GroupId": "AGPA123456789012EXAMPLE", "Arn": "arn:aws:iam::123456789012:group/MyTestGroup", "CreateDate": "2019-08-12T19:34:04Z" } ] }

haut de la page

Activation et consultation des journaux d’historique des commandes de l’AWS CLI

Vous pouvez activer les journaux d’historique des commandes de l’AWS CLI à l’aide du paramètre de fichier cli_history. Après l’activation de ce paramètre, l’AWS CLI enregistre l’historique des commandes aws.

Vous pouvez répertorier votre historique à l’aide de la commande aws history list et utiliser la valeur command_ids obtenue dans la commande aws history show pour plus de détails. Pour plus d’informations, consultez aws history dans le guide de référence de l’AWS CLI.

Lorsque vous incluez l’option --debug, les détails fournis sont les suivants :

  • Appels d’API à botocore

  • Codes d’état

  • Réponses HTTP

  • En-têtes

  • Codes de retour

Vous pouvez utiliser ces informations pour confirmer que les données des paramètres et les appels d’API se comportent comme prévu, puis déduire à quelle étape du processus votre commande échoue.

haut de la page

Confirmez que votre AWS CLI est configurée

Diverses erreurs peuvent se produire si vos fichiers config et credentials ou votre utilisateur ou rôle IAM ne sont pas correctement configurés. Pour plus d’informations sur la résolution des erreurs liées aux fichiers config et credentials ou à votre utilisateur ou à vos rôles IAM, consultez Erreurs d’accès refusé et Informations d’identification non valides et erreurs liées aux clés.

haut de la page

Erreurs de type Commande introuvable

Cette erreur signifie que le système d’exploitation ne parvient pas à trouver la commande de l’AWS CLI. L’installation est peut-être incomplète ou elle nécessite une mise à jour.

Cause possible : vous essayez d’utiliser une fonctionnalité d’AWS CLI plus récente que la version que vous avez installée, ou vous avez un formatage incorrect

Exemple de texte d’erreur :

$ aws s3 copy aws: [ERROR]: argument operation: Found invalid choice 'copy' usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help

Diverses erreurs peuvent se produire si votre commande est mal formatée ou si vous utilisez une version antérieure à la publication de la fonctionnalité. Pour plus d’informations sur la résolution des erreurs liées à ces deux problèmes, consultez Vérifiez le formatage de vos commandes dans l’AWS CLI et Confirmez que vous utilise une version récente de l’AWS CLI.

haut de la page

Cause possible : le terminal doit être redémarré après l’installation

Exemple de texte d’erreur :

$ aws --version command not found: aws

Si la commande aws est introuvable après l’installation ou la mise à jour initiale de l’AWS CLI, vous devrez peut-être redémarrer votre terminal pour qu’il reconnaisse les mises à jour de PATH.

haut de la page

Cause possible : L’installation de l’AWS CLI n’est pas complète

Exemple de texte d’erreur :

$ aws --version command not found: aws

Si la commande aws est introuvable après l’installation ou la mise à jour initiale de l’AWS CLI, il se peut que celle-ci n’ait pas été complètement installée. Essayez de la réinstaller en suivant les étapes correspondant à votre plateforme dans Installation, mise à jour et désinstallation de l’ AWS CLI.

haut de la page

Cause possible : L’AWS CLI ne dispose pas des autorisations nécessaires (Linux)

Si la commande aws est introuvable après l’installation ou la mise à jour initiale de l’AWS CLI sous Linux, il se peut qu’elle ne dispose pas des autorisations execute nécessaires sur le dossier dans lequel elle est installée. Exécutez la commande suivante avec la variable PATH de l’installation de l’AWS CLI, afin d’accorder des autorisations chmod à l’AWS CLI :

$ sudo chmod -R 755 /usr/local/aws-cli/

haut de la page

Cause possible : la variable PATH du système d’exploitation n’a pas été mise à jour pendant l’installation.

Exemple de texte d’erreur :

$ aws --version command not found: aws

Vous allez peut-être devoir ajouter le fichier exécutable aws à la variable d’environnement PATH de votre système d’exploitation. Pour ajouter l’AWS CLI à votre variable PATH, suivez les instructions relatives à votre système d’exploitation.

Linux and macOS
  1. Recherchez le script de profil de votre shell dans votre répertoire utilisateur. Si vous n’êtes pas certain du shell utilisé, exécutez echo $SHELL.

    $ ls -a ~ . .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
    • Bash.bash_profile, .profile ou .bash_login

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc ou .login

  2. Ajoutez une commande d’exportation à votre script de profil. La commande suivante ajoute votre bin local à la variable PATH actuelle.

    export PATH=/usr/local/bin:$PATH
  3. Rechargez le profil mis à jour dans votre session en cours.

    $ source ~/.bash_profile
Windows
  1. Dans une invite de commande Windows, utilisez la commande where avec le paramètre /R path pour trouver l’emplacement du fichier aws. Les résultats renvoient tous les dossiers contenant aws.

    C:\> where /R c:\ aws c:\Program Files\Amazon\AWSCLIV2\aws.exe ...

    Par défaut, l’AWS CLI version 2 se trouve dans :

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Appuyez sur la touche Windows et entrez environment variables.

  3. Dans la liste des suggestions, choisissez Modifier les variables d’environnement pour votre compte.

  4. Choisissez PATH, puis Modifier.

  5. Ajoutez le chemin que vous avez trouvé à la première étape dans le champ Valeur de la variable, par exemple : C:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Sélectionnez OK deux fois pour appliquer les nouveaux paramètres.

  7. Fermez toute invite de commande en cours d’exécution et rouvrez une invite de commande.

haut de la page

La commande « aws --version » renvoie une version différente de celle que vous avez installée

Votre terminal renvoie peut-être une variable PATH différente de celle que vous attendez pour l’AWS CLI.

Cause possible : le terminal doit être redémarré après l’installation

Si la commande aws affiche une version incorrecte, vous devrez peut-être redémarrer votre terminal pour qu’il reconnaisse les mises à jour de la variable PATH. Tous les terminaux ouverts doivent être fermés, pas seulement votre terminal actif.

haut de la page

Cause possible : le système doit être redémarré après l’installation

Si la commande aws affiche une version incorrecte et que le redémarrage du terminal ne fonctionne pas, vous devrez peut-être redémarrer votre système pour qu’il reconnaisse les mises à jour de la variable PATH.

haut de la page

Cause possible : vous disposez de plusieurs versions de l’AWS CLI

Si vous avez mis à jour l’AWS CLI et utilisé une méthode d’installation différente de celle de votre installation préexistante, plusieurs versions peuvent être installées. Par exemple, si sur Linux ou macOS, vous avez utilisé pip pour votre installation actuelle, et que vous avez essayé de procéder à la mise à jour à l’aide du fichier d’installation .pkg, cela peut provoquer des conflits, en particulier si PATH pointe vers l’ancienne version.

Pour résoudre ce problème, désinstallez toutes les versions de l’AWS CLI et effectuez une nouvelle installation.

Après avoir désinstallé toutes les versions, suivez les instructions propres à votre système d’exploitation pour installer la version souhaitée de l’AWS CLI version 1 ou de l’AWS CLI version 2.

Note

Si cela se produit après avoir installé la version 2 de l’AWS CLI avec une installation préexistante de l’AWS CLI version 1, suivez les instructions de migration figurant dans les instructions d’installation lors de la migration depuis la version 1 de l’AWS CLI .

haut de la page

La commande « aws --version » renvoie une version après la désinstallation de l’AWS CLI

Cela se produit souvent lorsqu’une AWS CLI est encore installée quelque part sur votre système.

Cause possible : le terminal doit être redémarré après la désinstallation

Si la commande aws --version affiche encore un résultat, vous devrez peut-être redémarrer votre terminal pour qu’il reconnaisse les mises à jour du terminal.

haut de la page

Cause possible : vous disposez de plusieurs versions de l’AWS CLI sur votre système, ou vous n’avez pas utilisé la même méthode de désinstallation que celle que vous avez utilisée pour installer l’AWS CLI

La désinstallation de l’AWS CLI peut ne pas être correcte si vous l’avez désinstallée en utilisant une méthode différente de celle que vous avez utilisée pour l’installer, ou si vous avez installé plusieurs versions de l’AWS CLI. Par exemple, si vous avez utilisé pip pour votre installation actuelle, vous devez utiliser pip pour la désinstallation. Pour résoudre ce problème, désinstallez l’AWS CLI en usant la même méthode que celle utilisée pour l’installation.

  1. Suivez les instructions correspondant à votre système d’exploitation et à votre méthode d’installation d’origine pour désinstaller la version 1 de l’AWS CLI et la version 2 de l’AWS CLI.

  2. Fermez tous les terminaux que vous avez ouverts.

  3. Ouvrez votre terminal préféré, entrez la commande suivante et confirmez qu’aucune version n’est renvoyée.

    $ aws --version command not found: aws

    Si une version est toujours répertoriée dans la sortie, l’AWS CLI a probablement été installée à l’aide d’une autre méthode ou il existe plusieurs versions. Si vous ne savez pas quelle méthode vous avez utilisée pour installer l’AWS CLI, suivez les instructions pour chaque méthode de désinstallation de la version 1 de l’AWS CLI et de la version 2 de l’AWS CLI appropriée pour votre système d’exploitation jusqu’à ce qu’aucune sortie de version ne soit reçue.

    Note

    Si vous avez utilisé un gestionnaire de packages pour installer l’AWS CLI (pip, apt, brew, etc.), vous devez utiliser le même gestionnaire de packages pour la désinstallation. Assurez-vous de suivre les instructions fournies par le gestionnaire de packages pour savoir comment désinstaller toutes les versions d’un package.

haut de la page

L’AWS CLI a traité une commande avec un nom de paramètre incomplet

Cause possible : vous avez utilisé une abréviation reconnue du paramètre AWS CLI

Étant donné que l’AWS CLI est basée sur Python, l’AWS CLI utilise la bibliothèque argparse de Python, y compris l’argument allow_abbrev. Les abréviations des paramètres sont reconnues par l’AWS CLI et traitées.

L’exemple de commande create-change-set suivant modifie le nom de la pile CloudFormation. Le paramètre --change-set-n est reconnu comme une abréviation de --change-set-name, et l’AWS CLI traite la commande.

$ aws cloudformation create-change-set --stack-name my-stack --change-set-n my-change-set

Lorsque votre abréviation peut correspondre à plusieurs commandes, le paramètre n’est pas reconnu comme une abréviation.

L’exemple de commande create-change-set suivant modifie le nom de la pile CloudFormation. Le paramètre --change-set- n’est pas reconnu comme une abréviation, car il pourrait s’agir de l’abréviation de plusieurs paramètres, comme --change-set-name et --change-set-type. Par conséquent, l’AWS CLI ne traite pas la commande.

$ aws cloudformation create-change-set --stack-name my-stack --change-set- my-change-set
Avertissement

N’utilisez pas délibérément des abréviations de paramètres. Elles ne sont pas fiables et ne sont pas rétrocompatibles. Si de nouveaux paramètres sont ajoutés à une commande qui confond vos abréviations, vos commandes seront annulées.

En outre, si le paramètre est un argument à valeur unique, il peut entraîner un comportement inattendu de vos commandes. Si plusieurs instances d’un argument à valeur unique sont transmises, seule la dernière instance sera exécutée. Dans l’exemple suivant, le paramètre --filters est un argument à valeur unique. Les paramètres --filters et --filter sont spécifiés. Le paramètre --filter est l’abréviation de --filters. Cela entraîne l’application de deux instances de --filters et seul le dernier argument --filter s’applique.

$ aws ec2 describe-vpc-peering-connections \ --filters Name=tag:TagName,Values=VpcPeeringConnection \ --filter Name=status-code,Values=active

Vérifiez que vous utilisez des paramètres valides avant d’exécuter une commande afin d’éviter tout comportement inattendu.

haut de la page

Erreurs d’accès refusé

Cause possible : le fichier programme de l’AWS CLI ne dispose pas de l’autorisation d’exécution « run »

Sous Linux ou macOS, assurez-vous que le programme aws dispose des autorisations d’exécution pour l’utilisateur appelant. En général, les autorisations sont définies sur 755.

Pour ajouter l’autorisation d’exécution pour votre utilisateur, exécutez la commande suivante, en remplaçant ~/.local/bin/aws par le chemin d’accès au programme sur votre ordinateur :

$ chmod +x ~/.local/bin/aws

haut de la page

Cause possible : votre identité IAM ne dispose pas de l’autorisation d’exécuter l’opération.

Exemple de texte d’erreur :

$ aws s3 ls An error occurred (AcessDenied) when calling the ListBuckets operation: Access denied.

Lorsque vous exécutez une commande de l’AWS CLI, les opérations AWS sont effectuées en votre nom, à l’aide d’informations d’identification qui vous associent à un compte ou un rôle IAM. Les politiques attachées doivent vous accorder l’autorisation d’appeler les actions d’API qui correspondent aux commandes que vous exécutez avec l’AWS CLI.

La plupart des commandes appellent une seule action avec un nom correspondant au nom de la commande. Cependant, les commandes personnalisées comme aws s3 sync appellent plusieurs API. Vous pouvez voir quelles API sont appelées par une commande à l’aide de l’option --debug.

Si vous êtes sûr que l’utilisateur ou le rôle dispose des autorisations requises attribuées via une politique, assurez-vous que votre commande de l’AWS CLI utilise les informations d’identification attendues. Consultez la section suivante sur les informations d’identification pour vérifier que les informations d’identification utilisées par l’AWS CLI sont celles que vous attendez.

Pour plus d’informations sur l’attribution d’autorisations IAM, consultez Présentation de la gestion des accès : autorisations et stratégies dans le Guide de l’utilisateur IAM.

haut de la page

Informations d’identification non valides et erreurs liées aux clés

Exemple de texte d’erreur :

$ aws s3 ls An error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$ aws s3 ls An error occurred (InvalidClientTokenId) when calling the ListBuckets operation: The security token included in the request is invalid.
Cause possible : l’AWS CLI lit des informations d’identification incorrectes ou à partir d’un emplacement inattendu

Il est possible que l’AWS CLI lise des informations d’identification à un endroit différent de celui prévu ou que les informations relatives à votre paire de clés soient incorrectes. Vous pouvez exécuter aws configure list pour confirmer quelles informations d’identification sont utilisées.

L’exemple suivant montre comment vérifier les informations d’identification utilisées pour le profil par défaut.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION

L’exemple suivant montre comment vérifier les informations d’identification utilisées pour un profil nommé.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION

Pour confirmer les détails de votre paire de clés, consultez vos fichiers config et credentials. Pour plus d’informations sur les fichiers config et credentials, consultez Paramètres des fichiers de configuration et d’informations d’identification dans l’AWS CLI. Pour plus d’informations sur les informations d’identification et l’authentification, y compris la priorité des informations d’identification, consultez Authentification et informations d’identification d’accès pour l’AWS CLI.

haut de la page

Cause possible : l’horloge de votre ordinateur est désynchronisée.

Si vous utilisez des informations d’identification valides, l’erreur peut être due à un défaut de synchronisation de l’horloge. Sur Linux ou macOS, exécutez date pour vérifier l’heure.

$ date

Si l’horloge de votre système n’est pas exacte en quelques minutes, utilisez ntpd pour la synchroniser.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

Sous Windows, utilisez les options de date et d’heure du Panneau de configuration pour configurer votre horloge système.

haut de la page

La signature ne correspond pas aux erreurs

Exemple de texte d’erreur :

$ aws s3 ls An error occurred (SignatureDoesNotMatch) when calling the ListBuckets operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

Lorsque l’AWS CLI exécute une commande, elle envoie une demande chiffrée aux serveurs AWS pour effectuer les opérations de service AWS appropriées. Vos informations d’identification (clé d’accès et clé secrète) sont impliquées dans le chiffrement et permettent à AWS d’authentifier la personne effectuant la demande. Plusieurs éléments peuvent interférer avec le bon fonctionnement de ce processus, comme suit :

Cause possible : votre horloge est désynchronisée par rapport aux serveurs AWS.

Pour vous aider à vous protéger contre les attaques par relecture, l’heure actuelle peut être utilisée pendant le processus de chiffrement/déchiffrement. Si la différence d’heure entre le client et le serveur est supérieure à la valeur autorisée, le processus peut échouer et la demande est rejetée. Cela peut également se produire lorsque vous exécutez une commande dans une machine virtuelle dont l’horloge est désynchronisée par rapport à l’horloge de la machine hôte. Parmi les causes possibles, on peut citer le cas où la machine virtuelle est en veille prolongée et prend un certain temps après le réveil pour synchroniser son horloge avec la machine hôte.

Sur Linux ou macOS, exécutez date pour vérifier l’heure.

$ date

Si l’horloge de votre système n’est pas exacte en quelques minutes, utilisez ntpd pour la synchroniser.

$ sudo service ntpd stop $ sudo ntpdate time.nist.gov $ sudo service ntpd start $ ntpstat

Sous Windows, utilisez les options de date et d’heure du Panneau de configuration pour configurer votre horloge système.

haut de la page

Cause possible : votre système d’exploitation ne traite pas correctement les clés AWS contenant certains caractères spéciaux

Si vos clés AWS comprennent certains caractères spéciaux, tels que -, +, / ou %, certaines variantes du système d’exploitation traitent la chaîne de façon incorrecte et provoquent une interprétation erronée de la chaîne de clé.

Si vous traitez vos clés avec d’autres outils ou scripts, tels que des outils qui créent le fichier d’informations d’identification sur une nouvelle instance dans le cadre de la création de celle-ci, ces outils et scripts peuvent disposer de leur propre gestion des caractères spéciaux et les transformer en quelque chose qui n’est plus reconnu par AWS.

Nous vous suggérons de régénérer la clé secrète pour obtenir une clé qui n’inclut aucun caractère spécial à l’origine des problèmes.

haut de la page

Erreurs de type Aucune console Windows trouvée

Exemple de texte d’erreur :

$ aws s3 ls No Windows console found. Are you running cmd.exe?

Lorsque vous utilisez une commande AWS CLI, vous recevez le message « Aucune console Windows trouvée. Est-ce que vous exécutez cmd.exe ? » . Il s’agit généralement d’une erreur observée pour la version 1 de l’AWS CLI si le prompt_toolkit Python que vous avez installé est obsolète. Pour résoudre ce problème, installez une version récente de prompt_toolkit à partir du site Web de Python.

haut de la page

Erreurs liées à un certificat SSL

Cause possible : L’AWS CLI n’accorde aucune confiance au certificat de votre proxy

Exemple de texte d’erreur :

$ aws s3 ls [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

Lorsque vous utilisez une commande AWS CLI, vous recevez un message d’erreur [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed. Cela est dû au fait que l’AWS CLI n’accorde aucune confiance au certificat de votre proxy en raison de facteurs comme le fait que le certificat de votre proxy est autosigné ou que votre entreprise est définie comme autorité de certification (CA). L’AWS CLI ne peut par conséquent pas trouver le certificat racine de l’autorité de certification de votre entreprise dans le registre local de l’autorité de certification.

Pour résoudre ce problème, indiquez à l’AWS CLI où trouver le fichier .pem de votre entreprise à l’aide du paramètre de fichier de configuration ca_bundle, de l’option de ligne de commande --ca-bundle ou de la variable d’environnement AWS_CA_BUNDLE.

haut de la page

Cause possible : votre configuration ne pointe pas vers le bon emplacement du certificat racine de l’autorité de certification

Exemple de texte d’erreur :

$ aws s3 ls SSL validation failed for regionname [Errno 2] No such file or directory

Cela est dû au fait que l’emplacement du fichier de votre bundle d’autorité de certification (CA) n’est pas correctement configuré dans l’AWS CLI. Pour résoudre ce problème, confirmez où se trouve le fichier .pem de votre entreprise et mettez à jour la configuration de l’AWS CLI à l’aide du paramètre de fichier de configuration ca_bundle, de l’option de ligne de commande --ca-bundle ou de la variable d’environnement AWS_CA_BUNDLE.

haut de la page

Cause possible : votre configuration n’utilise pas la bonne Région AWS

Exemple de texte d’erreur :

$ aws s3 ls [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed

Des erreurs ou des résultats inattendus peuvent se produire si un Service AWS n’est pas disponible pour la Région AWS que vous avez spécifiée ou si vos ressources se trouvent dans une autre Région AWS. Pour obtenir les étapes de dépannage, consultez Vérifiez la Région AWS utilisée par votre commande d’AWS CLI..

haut de la page

Cause possible : votre version TLS doit être mise à jour

Exemple de texte d’erreur :

$ aws s3 ls [SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled

L’Service AWS utilise une version de TLS incompatible avec la version TLS de votre appareil. Pour résoudre ce problème, procédez à une mise à niveau vers une version TLS prise en charge. Pour plus d’informations, consultez Application d’une version minimale de TLS pour l’AWS CLI.

haut de la page

Erreurs de type JSON non valide

Exemple de texte d’erreur :

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable Error parsing parameter '--provisioned-throughput': Invalid JSON: Expecting property name enclosed in double quotes: line 1 column 25 (char 24) JSON received: {"ReadCapacityUnits":15,WriteCapacityUnits":10}

Lorsque vous utilisez une commande AWS CLI, vous recevez un message d’erreur « Invalid JSON ». Il s’agit généralement d’une erreur qui se produit lorsque vous entrez une commande au format JSON attendu et que l’AWS CLI ne peut pas lire correctement votre JSON.

Cause possible : Le code JSON que vous avez saisi à des fins d’utilisation par l’AWS CLI n’est pas valide.

Vérifiez que vous avez saisi un code JSON valide pour votre commande. Nous vous suggérons d’utiliser un validateur JSON pour les fichiers JSON pour lesquels vous rencontrez des problèmes de formatage.

Pour une utilisation plus avancée du JSON dans la ligne de commande, pensez à utiliser un processeur JSON de ligne de commande, par exemple jq, pour créer des chaînes JSON. Pour plus d’informations sur jq, consultez le référentiel jq sur GitHub.

haut de la page

Cause possible : les règles de guillemets de votre terminal empêchent l’envoi d’un JSON valide à l’AWS CLI

Avant que l’AWS CLI reçoive quoi que ce soit d’une commande, votre terminal traite la commande en utilisant ses propres règles de guillemets et d’échappement. En raison des règles de formatage d’un terminal, une partie de votre contenu JSON peut être supprimée avant que la commande ne soit transmise à l’AWS CLI. Lorsque vous formulez des commandes, veillez à utiliser les règles de guillemets de votre terminal.

Pour résoudre le problème, utilisez la commande echo pour voir comment le shell gère vos paramètres :

$ echo {"ReadCapacityUnits":15,"WriteCapacityUnits":10} ReadCapacityUnits:15 WriteCapacityUnits:10
$ echo '{"ReadCapacityUnits":15,"WriteCapacityUnits":10}' {"ReadCapacityUnits":15,"WriteCapacityUnits":10}

Modifiez votre commande jusqu’à ce que votre JSON valide soit renvoyé.

Pour un dépannage plus approfondi, utilisez le paramètre --debug pour afficher les journaux de débogage, car ils afficheront exactement ce qui a été transmis à l’AWS CLI :

$ aws dynamodb update-table \ --provisioned-throughput '{"ReadCapacityUnits":15,WriteCapacityUnits":10}' \ --table-name MyDDBTable \ --debug 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - CLI version: aws-cli/1.18.147 Python/2.7.18 Linux/5.4.196-119.356.amzn2int.x86_64 botocore/1.18.6 2022-07-19 22:25:07,741 - MainThread - awscli.clidriver - DEBUG - Arguments entered to CLI: ['dynamodb', 'update-table', '--provisioned-throughput', '{"ReadCapacityUnits":15,WriteCapacityUnits":10}', '--table-name', 'MyDDBTable', '--debug']

Utilisez les règles de guillemets de votre terminal pour résoudre les problèmes rencontrés par votre entrée JSON lorsqu’elle est envoyée à l’AWS CLI. Pour plus d’informations sur les règles de guillemets, consultez Utilisation de guillemets et de littéraux avec des chaînes dans l’AWS CLI.

Note

Si vous rencontrez des problèmes pour obtenir un code JSON valide dans l’AWS CLI, nous vous recommandons de contourner les règles de guillemets d’un terminal pour la saisie de données JSON en utilisant des blobs pour transmettre vos données JSON directement à l’AWS CLI. Pour plus d’informations sur les blobs, consultez Blob.

haut de la page

Ressources supplémentaires

Pour obtenir de l’aide supplémentaire concernant vos problèmes liés à l’AWS CLI, consultez la communauté de l’AWS CLI sur GitHub ou la communauté AWS re:Post.

haut de la page