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.
Table des matières
La commande « aws --version » renvoie une version différente de celle que vous avez installée
La commande « aws --version » renvoie une version après la désinstallation de l’AWS CLI
L’AWS CLI a traité une commande avec un nom de paramètre incomplet
Informations d’identification non valides et erreurs liées aux clés
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.
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 :
-
Vérifiez que votre commande ne comporte pas de fautes d’orthographe ni d’erreurs de mise en forme.
-
Vérifiez que tous les guillemets et les échappements appropriés pour votre terminal sont corrects dans votre commande.
-
Générez un AWS CLIsquelette pour confirmer la structure de votre commande.
-
Pour le JSON, consultez le dépannage supplémentaire pour les valeurs JSON. Si vous rencontrez des problèmes avec le traitement du formatage JSON par votre terminal, nous vous suggérons d’ignorer les règles de guillemets du terminal en utilisant des blobs pour transmettre les données JSON directement à l’AWS CLI.
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.
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 :
-
Option de ligne de commande
--region. -
Variable d’environnement
AWS_DEFAULT_REGION. -
Paramètre de profil region.
Vérifiez que vous utilisez la Région AWS appropriée pour vos ressources.
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.
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"
}
]
}
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.
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.
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 copyaws: [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> helpDiverses 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.
- Cause possible : le terminal doit être redémarré après l’installation
-
Exemple de texte d’erreur :
$aws --versioncommand not found: awsSi la commande
awsest 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 dePATH. - Cause possible : L’installation de l’AWS CLI n’est pas complète
-
Exemple de texte d’erreur :
$aws --versioncommand not found: awsSi la commande
awsest 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. - Cause possible : L’AWS CLI ne dispose pas des autorisations nécessaires (Linux)
-
Si la commande
awsest 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 autorisationsexecutenécessaires sur le dossier dans lequel elle est installée. Exécutez la commande suivante avec la variablePATHde l’installation de l’AWS CLI, afin d’accorder des autorisationschmodà l’AWS CLI :$sudo chmod -R 755/usr/local/aws-cli/ - Cause possible : la variable
PATHdu système d’exploitation n’a pas été mise à jour pendant l’installation. -
Exemple de texte d’erreur :
$aws --versioncommand not found: awsVous allez peut-être devoir ajouter le fichier exécutable
awsà la variable d’environnementPATHde votre système d’exploitation. Pour ajouter l’AWS CLI à votre variablePATH, suivez les instructions relatives à votre système d’exploitation.
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
awsaffiche une version incorrecte, vous devrez peut-être redémarrer votre terminal pour qu’il reconnaisse les mises à jour de la variablePATH. Tous les terminaux ouverts doivent être fermés, pas seulement votre terminal actif. - Cause possible : le système doit être redémarré après l’installation
-
Si la commande
awsaffiche 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 variablePATH. - 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é
pippour 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 siPATHpointe 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 .
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 --versionaffiche encore un résultat, vous devrez peut-être redémarrer votre terminal pour qu’il reconnaisse les mises à jour du terminal. - 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é
pippour votre installation actuelle, vous devez utiliserpippour 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.-
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.
-
Fermez tous les terminaux que vous avez ouverts.
-
Ouvrez votre terminal préféré, entrez la commande suivante et confirmez qu’aucune version n’est renvoyée.
$aws --versioncommand not found: awsSi 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.
-
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
argparsede Python, y compris l’argumentallow_abbrev. Les abréviations des paramètres sont reconnues par l’AWS CLI et traitées. L’exemple de commande
create-change-setsuivant modifie le nom de la pile CloudFormation. Le paramètre--change-set-nest 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-nmy-change-setLorsque votre abréviation peut correspondre à plusieurs commandes, le paramètre n’est pas reconnu comme une abréviation.
L’exemple de commande
create-change-setsuivant 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-nameet--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-setAvertissement
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
--filtersest un argument à valeur unique. Les paramètres--filterset--filtersont spécifiés. Le paramètre--filterest l’abréviation de--filters. Cela entraîne l’application de deux instances de--filterset seul le dernier argument--filters’applique.$aws ec2 describe-vpc-peering-connections \--filtersName=tag:TagName,Values=VpcPeeringConnection \--filterName=status-code,Values=activeVérifiez que vous utilisez des paramètres valides avant d’exécuter une commande afin d’éviter tout comportement inattendu.
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
awsdispose des autorisations d’exécution pour l’utilisateur appelant. En général, les autorisations sont définies sur755.Pour ajouter l’autorisation d’exécution pour votre utilisateur, exécutez la commande suivante, en remplaçant
~/.local/bin/awspar le chemin d’accès au programme sur votre ordinateur :$chmod +x~/.local/bin/aws - Cause possible : votre identité IAM ne dispose pas de l’autorisation d’exécuter l’opération.
-
Exemple de texte d’erreur :
$aws s3 lsAn 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 syncappellent 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.
Informations d’identification non valides et erreurs liées aux clés
Exemple de texte d’erreur :
$aws s3 lsAn error occurred (InvalidAccessKeyId) when calling the ListBuckets operation: The AWS Access Key Id you provided does not exist in our records.
$aws s3 lsAn 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 listpour 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 listName 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_REGIONL’exemple suivant montre comment vérifier les informations d’identification utilisées pour un profil nommé.
$aws configure listName 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_REGIONPour confirmer les détails de votre paire de clés, consultez vos fichiers
configetcredentials. Pour plus d’informations sur les fichiersconfigetcredentials, 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. - 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
datepour vérifier l’heure.$dateSi l’horloge de votre système n’est pas exacte en quelques minutes, utilisez
ntpdpour la synchroniser.$sudo service ntpd stop$sudo ntpdate time.nist.gov$sudo service ntpd start$ntpstatSous Windows, utilisez les options de date et d’heure du Panneau de configuration pour configurer votre horloge système.
La signature ne correspond pas aux erreurs
Exemple de texte d’erreur :
$aws s3 lsAn 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
datepour vérifier l’heure.$dateSi l’horloge de votre système n’est pas exacte en quelques minutes, utilisez
ntpdpour la synchroniser.$sudo service ntpd stop$sudo ntpdate time.nist.gov$sudo service ntpd start$ntpstatSous Windows, utilisez les options de date et d’heure du Panneau de configuration pour configurer votre horloge système.
- 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.
Erreurs de type Aucune console Windows trouvée
Exemple de texte d’erreur :
$aws s3 lsNo 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
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 failedLorsque 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
.pemde votre entreprise à l’aide du paramètre de fichier de configurationca_bundle, de l’option de ligne de commande --ca-bundle ou de la variable d’environnementAWS_CA_BUNDLE. - 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 lsSSL validation failed forregionname[Errno 2] No such file or directoryCela 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
.pemde votre entreprise et mettez à jour la configuration de l’AWS CLI à l’aide du paramètre de fichier de configurationca_bundle, de l’option de ligne de commande --ca-bundle ou de la variable d’environnementAWS_CA_BUNDLE. - 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 failedDes 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..
- 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 disabledL’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.
Erreurs de type JSON non valide
Exemple de texte d’erreur :
$aws dynamodb update-table \ --provisioned-throughput'{"ReadCapacityUnits":15,WriteCapacityUnits":10}'\ --table-name MyDDBTableError 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 surjq, consultez le référentiel jqsur GitHub. - 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
echopour 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
--debugpour 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 \ --debug2022-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.
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