Solución de errores de AWS CLI - AWS Command Line Interface

Esta documentación es para la versión 1 de AWS CLI. Para obtener documentación relacionada con la versión 2 de AWS CLI, consulte la Guía del usuario de la versión 2.

Solución de errores de AWS CLI

En esta sección se describen los errores comunes y los pasos de solución de problemas que se deben seguir para resolver el problema. Le sugerimos seguir primero la solución de problemas generales.

Solución de problemas generales para probar primero

Si recibe un error o encuentra un problema con la AWS CLI, le sugerimos los siguientes consejos generales para solucionar problemas.

(Volver arriba)

Compruebe su formato de comandos de la AWS CLI

Si aparece un error en el que se indica que no existe un comando o que no se reconoce un parámetro (Parameter validation failed) que según la documentación está disponible, es posible que el comando tenga un formato incorrecto. Le sugerimos que compruebe lo siguiente:

Para obtener más información sobre cómo debe estructurarse un comando específico, consulte la guía de referencia de la AWS CLI.

(Volver arriba)

Confirme que está ejecutando una versión reciente de la AWS CLI

Si recibe un error que indica que un comando no existe, o que no reconoce un parámetro que en la guía de referencia de la AWS CLI se indica que está disponible, confirme primero que su comando tiene el formato correcto. Si el formato es correcto, le recomendamos que se actualice a la versión más reciente de la AWS CLI. Las versiones actualizadas de la AWS CLI se publican casi todos los días hábiles. Se incorporan nuevos servicios de AWS, características y parámetros en las nuevas versiones de la AWS CLI. La única manera de obtener acceso a los nuevos servicios, características o parámetros es actualizándose a una versión que se lanzara después de que ese elemento se incorporara por primera vez.

‎La forma de actualizar la versión de AWS CLI depende de si la instaló originalmente como se describe en ‎Instalar, actualizar y desinstalar la AWS CLI.

Si ha utilizado uno de los instaladores del paquete, debe eliminar la instalación existente antes de descargar e instalar la versión más reciente para su sistema operativo.

(Volver arriba)

Use la opción --debug

Cuando la AWS CLI informa de un error que no entiende inmediatamente, o produce resultados que no espera, puede obtener más detalles sobre el error si ejecuta de nuevo el comando con la opción --debug. Con esta opción, la AWS CLI emite detalles sobre cada paso que realiza para procesar su comando. Los detalles de la salida pueden ayudarlo a determinar cuándo se produce el error y proporciona pistas sobre dónde comenzó.

Puede enviar el resultado a un archivo de texto para revisarlo posteriormente o enviarlo a AWS Support cuando se le solicite.

Cuando se incluye la opción --debug, algunos detalles son:

  • Búsqueda de credenciales

  • Análisis de los parámetros proporcionados

  • Creación de la solicitud enviada a los servidores de AWS

  • El contenido de la solicitud enviada a AWS

  • El contenido de la respuesta sin procesar

  • La salida con formato

A continuación, se muestra un ejemplo de la ejecución de un comando con y sin la opción --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" } ] }

(Volver arriba)

Habilite y revise los registros del historial del comando AWS CLI

Puede habilitar los registros del historial del comando AWS CLI con la configuración de archivo cli_history. Después de habilitar esta configuración, la AWS CLI registra el historial de comandos aws.

Puede hacer una lista de su historial con el comando aws history list y utilizar los command_ids resultantes en el comando aws history show para obtener más información. Para obtener más información, consulte aws history en la Guía de referencia de AWS CLI.

Cuando se incluye la opción --debug, algunos detalles son:

  • Llamadas de la API realizadas a botocore

  • Códigos de estado

  • Respuestas HTTP

  • Encabezados

  • Códigos de devolución

Puede usar esta información para confirmar que los datos de parámetros y las llamadas a la API se comportan de la manera esperada y, a continuación, puede deducir en qué etapa del proceso está fallando el comando.

(Volver arriba)

Confirme que se ha configurado su AWS CLI

Pueden producirse varios errores si sus archivos config y credentials o su usuario o roles de IAM no están configurados correctamente. Para obtener más información sobre la resolución de errores con los archivos config y credentials o su usuario o roles de IAM, consulte Errores de acceso denegado y Errores de credenciales y claves no válidas.

(Volver arriba)

Errores de comando no encontrado

Este error significa que el sistema operativo no puede encontrar el comando de la AWS CLI. Puede que la instalación esté incompleta o sea necesario actualizarla.

Causa posible: está intentando utilizar una característica de AWS CLI más reciente que la versión instalada, o tiene un formato incorrecto

Ejemplo de texto de error:

$ aws s3 copy usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters] To see help text, you can run: aws help aws <command> help aws <command> <subcommand> help aws: error: argument subcommand: Invalid choice, valid choices are: ls | website cp | mv ....

Pueden producirse varios errores si su comando tiene un formato incorrecto o si está utilizando una versión anterior a la publicación de la característica. Para obtener más información sobre la resolución de errores en torno a estos dos problemas, consulte Compruebe su formato de comandos de la AWS CLI y Confirme que está ejecutando una versión reciente de la AWS CLI.

(Volver arriba)

Causa posible: es necesario reiniciar el terminal después de la instalación

Ejemplo de texto de error:

$ aws --version command not found: aws

Si el comando aws no se encuentra después de instalar o actualizar la AWS CLI, es posible que tenga que reiniciar su terminal para que reconozca las actualizaciones de PATH.

(Volver arriba)

Causa posible: la AWS CLI no se ha instalado completamente

Ejemplo de texto de error:

$ aws --version command not found: aws

Si no se puede encontrar el comando aws después de instalar o actualizar la AWS CLI, es posible que no se haya instalado completamente. Intente reinstalar siguiendo los pasos correspondientes a su plataforma en Instalar, actualizar y desinstalar la AWS CLI.

(Volver arriba)

Causa posible: la AWS CLI no tiene permisos (Linux)

Si no se puede encontrar el comando aws después de instalar o actualizar la AWS CLI en Linux, es posible que no tenga permisos execute para la carpeta en la que se instaló. Ejecute el siguiente comando con el PATH a su instalación AWS CLI, para proporcionar permisos chmod para la AWS CLI:

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

(Volver arriba)

Causa posible: la variable PATH del sistema operativo no se ha actualizado durante la instalación

Ejemplo de texto de error:

$ aws --version command not found: aws

Es posible que tenga que añadir el ejecutable aws a la variable de entorno PATH del sistema operativo. Para agregar AWS CLI a PATH, utilice las instrucciones siguientes correspondientes a su sistema operativo.

Linux and macOS
  1. Busque el script de perfil de su shell en su directorio de usuario. Si no está seguro de cuál es el shell que tiene, ejecute echo $SHELL.

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

    • Zsh.zshrc

    • Tcsh.tcshrc, .cshrc, o .login

  2. Añada un comando de exportación al script de su perfil. El siguiente comando agrega su bin local a la variable PATH actual.

    export PATH=/usr/local/bin:$PATH
  3. Vuelva a cargar el perfil actualizado en la sesión actual.

    $ source ~/.bash_profile
Windows
  1. En un símbolo del sistema de Windows, utilice el comando where con el parámetro /R path para encontrar la ubicación del archivo de aws. Los resultados devuelven todas las carpetas que contienen aws.

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

    De forma predeterminada, la versión 2 de AWS CLI se encuentra en:

    c:\Program Files\Amazon\AWSCLIV2\aws.exe
  2. Pulse la tecla de Windows y escriba environment variables.

  3. En la lista de sugerencias, elija ‎Edit environment variables for your account ‎(Editar variables de entorno para la cuenta).

  4. Elija PATH y, a continuación, Edit (Editar).

  5. Agregue la ruta que encontró en el primer paso al ‎campo Variable value (Valor de variable), por ejemplo, C:\Program Files\Amazon\AWSCLIV2\aws.exe.

  6. Elija OK (Aceptar) dos veces para aplicar la nueva configuración.

  7. Cierre los símbolos del sistema en ejecución y vuelva a abrir la ventana de símbolo del sistema.

(Volver arriba)

El comando "aws --version" devuelve una versión diferente a la instalada

Es posible que su terminal le devuelva un valor de PATH para la AWS CLI distinto al que espera.

Causa posible: es necesario reiniciar el terminal después de la instalación

Si el comando aws muestra la versión incorrecta, es posible que tenga que reiniciar su terminal para que reconozca las actualizaciones de PATH.

(Volver arriba)

Causa posible: tiene varias versiones de la AWS CLI

Si ha actualizado la AWS CLI y ha utilizado un método de instalación diferente al de su instalación anterior, podría provocar la instalación de varias versiones. Por ejemplo, si en Linux o macOS ha utilizado pip para su instalación actual, pero ha intentado la actualización mediante el archivo de instalación de .pkg, esto podría causar algunos conflictos, especialmente con su PATH apuntando a la versión antigua.

Para resolver esto, desinstale todas las versiones de la AWS CLI y realice una instalación limpia.

Después de desinstalar todas las versiones, siga las instrucciones correspondientes a su sistema operativo para instalar la versión que desee de la AWS CLI versión 1 o la AWS CLI versión 2.

nota

Si esto sucede después de haber instalado la AWS CLI versión 2 con una instalación preexistente de la AWS CLI versión 1, siga las instrucciones de migración en Instrucciones de instalación al migrar desde la AWS CLI versión 1.

(Volver arriba)

El comando "aws --version" devuelve una versión después de desinstalar la AWS CLI

Esto suele ocurrir cuando todavía hay una AWS CLI instalada en algún lugar de su sistema.

Causa posible: es necesario reiniciar el terminal después de la desinstalación

Si el comando aws --version sigue funcionando, es posible que tenga que reiniciar su terminal para que reconozca las actualizaciones del terminal.

(Volver arriba)

Causa posible: tiene varias versiones de la AWS CLI en su sistema, o no ha utilizado el mismo método de desinstalación que usó para instalar originalmente la AWS CLI

Es posible que la AWS CLI no se desinstale correctamente si desinstaló la AWS CLI con un método diferente al que utilizó para instalarla, o si instaló varias versiones. Por ejemplo, si utilizó pip para su instalación actual, debe utilizar pip para desinstalarla. Para solucionarlo, desinstale AWS CLI con el mismo método que utilizó para instalarla.

  1. Siga las instrucciones adecuadas para el sistema operativo y el método de instalación original para desinstalar la AWS CLI versión 1 y AWS CLI versión 2.

  2. Cierre todos los terminales que tenga abiertos.

  3. Abra su terminal preferido, ingrese el siguiente comando y confirme que no se devuelve ninguna versión.

    $ aws --version command not found: aws

    Si todavía tiene una versión en la lista de salida, lo más probable es que la AWS CLI se haya instalado con un método diferente o que haya varias versiones. Si no sabe con qué método instaló la AWS CLI, siga las instrucciones de cada método de desinstalación para la AWS CLI versión 1 y la AWS CLI versión 2 adecuadas a su sistema operativo hasta que no reciba ninguna salida de versión.

    nota

    Si ha utilizado un administrador de paquetes para instalar la AWS CLI (pip, apt, brew, etc.), debe utilizar el mismo administrador de paquetes para desinstalarla. Asegúrese de seguir las instrucciones proporcionadas por el administrador de paquetes sobre cómo desinstalar todas las versiones de un paquete.

(Volver arriba)

Errores de acceso denegado

Causa posible: el archivo de programa de la AWS CLI no tiene el permiso "run" (ejecutar)

En Linux o macOS, asegúrese de que el programa aws tiene permisos de ejecución para el usuario que realiza la llamada. Normalmente, los permisos se establecen en 755.

Para añadir permisos de ejecución al usuario, ejecute el siguiente comando sustituyendo ~ /.local/bin/aws por la ruta que tiene el programa en el equipo.

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

(Volver arriba)

Causa posible: su identidad de IAM no tiene permiso para realizar la operación

Ejemplo de texto de error:

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

Cuando ejecuta un comando de la AWS CLI, las operaciones de AWS se realizan en su nombre, utilizando credenciales que lo asocian a un usuario o rol de IAM. Las políticas asociadas a ese usuario o rol de IAM deben concederle permiso para llamar a las acciones de la API correspondientes a los comandos que ejecuta con la AWS CLI.

La mayoría de los comandos llaman a una única acción que tiene un nombre que coincide con el nombre del comando. Sin embargo, los comandos personalizados como aws s3 sync llamar a múltiples API. Mediante la --debug opción puede ver a qué API llama un comando.

Si sabe con seguridad que el usuario o rol tiene los permisos adecuados asignados por la política, compruebe que el comando de la AWS CLI utiliza las credenciales que espera. Consulte la siguiente sección sobre credenciales para verificar que las credenciales que utiliza la AWS CLI son las adecuadas.

Para obtener más información acerca de la asignación de permisos a usuarios y roles de IAM, consulte Información general sobre la administración del acceso: permisos y políticas en la Guía de usuario de IAM.

(Volver arriba)

Errores de credenciales y claves no válidas

Ejemplo de texto de error:

$ 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.
Causa posible: la AWS CLI está leyendo las credenciales incorrectas o de una ubicación inesperada

Puede que la AWS CLI esté leyendo las credenciales desde un lugar diferente al que espera, o que la información de su par de claves sea incorrecta. Puede ejecutar aws configure list para confirmar las credenciales que se utilizan.

En el siguiente ejemplo se muestra cómo comprobar las credenciales utilizadas para el perfil predeterminado.

$ aws configure list Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************XYVA shared-credentials-file secret_key ****************ZAGY shared-credentials-file region us-west-2 config-file ~/.aws/config

En el siguiente ejemplo se muestra cómo comprobar las credenciales de un perfil con nombre.

$ aws configure list --profile saanvi Name Value Type Location ---- ----- ---- -------- profile saanvi manual --profile access_key **************** shared-credentials-file secret_key **************** shared-credentials-file region us-west-2 config-file ~/.aws/config

Para confirmar los detalles de su par de claves, compruebe sus archivos config y credentials. Para obtener más información sobre los archivos config y ‎credentials, consulte ‎Opciones de los archivos de configuración y credenciales. Para obtener más información sobre pares de claves, consulte ID de clave de acceso y clave de acceso secreta.

(Volver arriba)

Causa posible: el reloj del equipo no está sincronizado

Si está utilizando credenciales válidas, puede que el reloj no esté sincronizado. En Linux o macOS, ejecute date para verificar la hora.

$ date

Si el reloj del sistema no es correcto en unos minutos, utilice ntpd para sincronizarlo.

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

En Windows, utilice las opciones de fecha y hora del Panel de control para configurar el reloj del sistema.

(Volver arriba)

Errores de firma que no coincide

Ejemplo de texto de error:

$ 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.

Cuando la AWS CLI ejecuta un comando, envía una solicitud cifrada a los servidores de AWS para realizar las operaciones del servicio de AWS correspondientes. Sus credenciales (la clave de acceso y la clave secreta) se incluyen en el cifrado y permiten que AWS autentique a la persona que realiza la solicitud. Tal y como se indica a continuación, hay varias cosas que pueden interferir con el funcionamiento correcto de este proceso.

Causa posible: el reloj no está sincronizado con los servidores de AWS

Para protegerse de los ataques de reproducción, puede utilizar la hora actual durante el proceso de cifrado y descifrado. Si la hora del cliente y el servidor no coinciden en una cantidad superior a la permitida, puede que el proceso produzca un error y se rechace la solicitud. Esto también puede ocurrir cuando ejecuta un comando en una máquina virtual cuyo reloj no está sincronizado con el reloj de la máquina host. Una causa posible es cuando la máquina virtual está en hibernación y tarda algún tiempo en reactivarse para sincronizar el reloj con la máquina host.

En Linux o macOS, ejecute date para verificar la hora.

$ date

Si el reloj del sistema no es correcto en unos minutos, utilice ntpd para sincronizarlo.

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

En Windows, utilice las opciones de fecha y hora del Panel de control para configurar el reloj del sistema.

(Volver arriba)

Causa posible: el sistema operativo está administrando incorrectamente las claves secretas de AWS que contienen determinados caracteres especiales

Si la clave secreta de AWS incluye determinados caracteres especiales, como -, +, / o %, algunas variantes del sistema operativo procesan la cadena de forma incorrecta y hacen que la cadena de clave secreta se interprete incorrectamente.

Si procesa las claves de acceso y las claves secretas utilizando otras herramientas o scripts, como herramientas que compilan el archivo de credenciales en una nueva instancia cuando se crea, esas herramientas y scripts podrían tratar los caracteres especiales de forma distinta, lo que hace que se transformen en algo que AWS ya no reconoce.

Sugerimos regenerar la clave secreta para obtener una que no incluya el carácter especial que causa problemas.

(Volver arriba)

Errores de no se ha encontrado la consola de Windows

Ejemplo de texto de error:

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

Cuando utiliza un comando de la AWS CLI, recibirá un mensaje de error "No se encontró ninguna consola de Windows. ¿Está ejecutando cmd.exe?” . Por lo general, se trata de un error observado en la AWS CLI versión 1 si el prompt_toolkit de Python que ha instalado está desactualizado. Para resolver este problema, instale una versión reciente del prompt_toolkit en el sitio web de Python.

(Volver arriba)

Errores de certificado SSL

Causa posible: la AWS CLI no confía en el certificado de su proxy

Ejemplo de texto de error:

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

Cuando utiliza un comando de AWS CLI, se recibe un mensaje de error [SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed. Esto se produce porque AWS CLI no confía en el certificado del proxy debido a que ciertos factores como el certificado del proxy están autofirmados, con su empresa establecida como la entidad de certificación (CA). Esto evita que la AWS CLI encuentre el certificado raíz de la CA de su empresa en el registro local de CA.

Para solucionarlo, indíquele a la AWS CLI dónde encontrar el archivo .pem de su empresa utilizando el ajuste de archivo de configuración del ca_bundle, la opción de línea de comandos de --ca-bundle o la variable de entorno de AWS_CA_BUNDLE.

(Volver arriba)

Causa posible: la configuración no apunta a la ubicación correcta del certificado raíz de la CA

Ejemplo de texto de error:

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

Esto se debe a que la ubicación del archivo del paquete de la autoridad de certificación (CA) está configurada incorrectamente en la AWS CLI. Para solucionarlo, confirme dónde se encuentra su archivo .pem de su empresa y actualice la configuración de la AWS CLI mediante la opción del archivo de configuración ca_bundle, la opción de la línea de comandos --ca-bundle o la variable de entorno AWS_CA_BUNDLE.

(Volver arriba)

Errores de JSON no válido

Ejemplo de texto de error:

$ 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}

Cuando utiliza un comando de AWS CLI, se recibe un mensaje de error “Invalid JSON“. Suele ser un error que aparece cuando se introduce un comando con un formato JSON esperado y AWS CLI no puede leer el JSON correctamente.

Causa posible: no ha introducido un JSON válido para que lo use AWS CLI

Confirme que ha introducido un JSON válido para el comando. Le sugerimos que utilice un validador de JSON para el JSON con problemas de formato.

Para conocer un uso más avanzado de JSON en la línea de comandos, considere usar un procesador JSON de línea de comandos, comojq, para crear cadenas JSON. Para obtener más información sobre jq, consulte el repositorio jq en GitHub.

(Volver arriba)

Causa posible: las reglas de centrecomillado de su terminal impiden que se envíe un JSON válido a la AWS CLI

Antes de que la AWS CLI reciba cualquier cosa de un comando, su terminal procesa el comando utilizando sus propias reglas de entrecomillado y escapes. Debido a las reglas de formato de un terminal, es posible que parte del contenido JSON se elimine antes de que el comando se pase a la AWS CLI. Al formular comandos, asegúrese de usar sus reglas de entrecomillado del terminal.

Para solucionar problemas, utilice el comando echo para ver cómo el shell gestiona los parámetros:

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

Modifique su comando hasta que se devuelva su JSON válido.

Para obtener una solución más detallada, use el parámetro --debug para ver los registros de depuración, ya que muestran exactamente lo que se pasó a la 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']

Use las reglas de entrecomillado de tu terminal para solucionar cualquier problema que tenga su entrada JSON cuando se envía a la AWS CLI. Para obtener más información sobre las reglas de entrecomillado, consulte Entrecomillado de cadenas en la AWS CLI.

nota

Si tiene problemas para obtener JSON válido en la AWS CLI, le recomendamos omitir las reglas de entrecomillado de un terminal para la entrada de datos JSON, use Blobs para pasar los datos JSON directamente a la AWS CLI. Para obtener más información acerca de Blobs, consulte o Binario/blob (objeto binario grande) y blob en streaming .

(Volver arriba)

Recursos adicionales

Para obtener ayuda adicional con sus problemas de AWS CLI, visite la comunidad de la AWS CLI en GitHub o la comunidad AWS re:Post.

(Volver arriba)