Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución de errores para el 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.
Contenido
- Solución de problemas generales para probar primero
- Errores de comando no encontrado
- El comando "aws --version" devuelve una versión diferente a la instalada
- El comando "aws --version" devuelve una versión tras desinstalar la AWS CLI
- AWS CLI Procesó un comando con un nombre de parámetro incompleto
- Errores de acceso denegado
- Errores de credenciales y claves no válidas
- Errores de firma que no coincide
- SSLerrores de certificado
- JSONErrores no válidos
- Recursos adicionales de
Solución de problemas generales para probar primero
Si recibes un error o encuentras algún problema con el AWS CLI, te sugerimos los siguientes consejos generales para ayudarte a solucionarlo.
Comprueba el formato de tus AWS CLI comandos
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:
-
Compruebe si hay errores ortográficos y de formato en el comando.
-
Confirme que todas las comillas y caracteres de escape apropiados para su terminal son correctos en el comando.
-
Generar un esqueleto de AWS CLI para confirmar la estructura del comando.
-
Para elloJSON, consulte la solución adicional de problemas de JSON valores. Si tienes problemas con el JSON formato de procesamiento de tu terminal, te sugerimos que saltes las reglas de cotización de la terminal y utilices Blobs para pasar JSON los datos directamente al. AWS CLI
Para obtener más información sobre cómo debe estructurarse un comando específico, consulta la guía de referencia de la AWS CLI versión 2
Compruebe si Región de AWS su AWS CLI comando está utilizando
nota
Debe especificar una Región de AWS cuando utilice la AWS CLI, ya sea de forma explícita o estableciendo una región predeterminada. Para obtener una lista de todos los elementos Regiones de AWS que puede especificar, consulte AWS Regiones y puntos finales en el Referencia general de Amazon Web Services. Los Región de AWS designadores que utilizan AWS CLI son los mismos nombres que aparecen en AWS Management Console URLs los puntos finales del servicio.
Se pueden producir errores o resultados inesperados si un no Servicio de AWS está disponible para el especificado Región de AWS o si los recursos están ubicados en un lugar diferente. Región de AWS En orden de prioridad, Región de AWS se establece de las siguientes maneras:
-
La opción de línea de comandos
--region
. -
La variable de
AWS_REGION
entorno SDK compatible. -
La variable de entorno
AWS_DEFAULT_REGION
. -
La configuración del regionperfil.
Confirma que estás utilizando la correcta Región de AWS para tus recursos.
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, según la de la AWS CLI versión 2 de la guía de referencia
La forma de actualizar la versión de AWS CLI depende de cómo la haya instalado originalmente, tal y como se describe en Instalación o actualización a la última versión del 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.
Use la opción --debug
Si AWS CLI detecta un error que no entiende inmediatamente o produce resultados inesperados, puede obtener más detalles sobre el error ejecutando de nuevo el comando con la --debug
opción. 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
-
Construir la solicitud enviada a AWS los servidores
-
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"
}
]
}
Habilite y revise los registros del historial de AWS CLI comandos
Puede habilitar los registros del historial de AWS CLI comandos mediante la configuración del cli_history
archivo. Tras activar esta configuración, AWS CLI registra el historial de aws
comandos.
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
Cuando se incluye la opción --debug
, algunos detalles son:
-
APIllamadas realizadas a botocore
-
Códigos de estado
-
HTTPrespuestas
-
Encabezados
-
Códigos de devolución
Puede utilizar esta información para confirmar que los datos de los parámetros y las API llamadas se comportan de la forma esperada y, a continuación, deducir en qué fase del proceso está fallando el comando.
Confirme que el suyo está configurado AWS CLI
Se pueden producir varios errores si sus credentials
archivos config
AND o su IAM usuario o rol no están configurados correctamente. Para obtener más información sobre cómo resolver errores con credentials
los archivos config
y con IAM el usuario o las funciones, consulte Errores de acceso denegado yErrores de credenciales y claves no válidas.
Errores de comando no encontrado
Este error significa que el sistema operativo no encuentra el AWS CLI comando. Puede que la instalación esté incompleta o sea necesario actualizarla.
- Causa posible: estás intentando utilizar una AWS CLI función más reciente que la versión instalada o tienes 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 Comprueba el formato de tus AWS CLI comandos y Confirme que está ejecutando una versión reciente de la AWS CLI.
- 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
aws
comando no se encuentra después de instalarlo o actualizarlo por primera vez AWS CLI, puede que tengas que reiniciar el terminal para que reconozcaPATH
las actualizaciones. - Causa posible: AWS CLI no se instaló por completo
-
Ejemplo de texto de error:
$
aws --version
command not found: aws
Si el
aws
comando no se encuentra después de instalarlo o actualizarlo por primera vez AWS CLI, es posible que no esté completamente instalado. Intente reinstalar siguiendo los pasos correspondientes a su plataforma en Instalación o actualización a la última versión del AWS CLI. - Causa posible: AWS CLI no tiene permisos (Linux)
-
Si el
aws
comando no se encuentra después de instalarlo o actualizarlo por primera vez AWS CLI en Linux, es posible que no tengaexecute
permisos para la carpeta en la que se instaló. Ejecute el siguiente comando conPATH
la en AWS CLI la instalación para proporcionarchmod
permisos a AWS CLI:$
sudo chmod -R 755
/usr/local/aws-cli/
- 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 entornoPATH
del sistema operativo. Para añadirlo AWS CLI a la suyaPATH
, utilice las siguientes instrucciones para su sistema operativo.
El comando "aws --version
" devuelve una versión diferente a la instalada
Es posible que su terminal devuelva un precio AWS CLI diferente PATH
al esperado.
- 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 dePATH
. Todos los terminales abiertos deben estar cerrados, no solo el terminal activo. - Causa posible: es necesario reiniciar el sistema después de la instalación
-
Si el comando
aws
muestra la versión incorrecta y el reinicio del terminal no funcionó, es posible que tenga que reiniciar el terminal para que reconozca las actualizaciones dePATH
. - Causa posible: tienes varias versiones del AWS CLI
-
Si actualizó AWS CLI y utilizó un método de instalación diferente al de la instalación anterior, es posible que se instalen 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 suPATH
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 ocurre después de instalar la AWS CLI versión 2 con una instalación preexistente de la AWS CLI versión 1, siga las instrucciones de migración que aparecen en las instrucciones de versión 1. Instalación de AWS CLI la versión 2 desde AWS CLI la versión 1
El comando "aws --version
" devuelve una versión tras desinstalar la AWS CLI
Esto suele ocurrir cuando todavía hay una AWS CLI instalada en algún lugar del 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. - Causa posible: tiene varias versiones de AWS CLI en su sistema o no utilizó el mismo método de desinstalación que utilizó para instalar originalmente el AWS CLI
-
AWS CLI Es posible que no se desinstale correctamente si la desinstaló 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 utilizarpip
para desinstalarla. Para solucionar este problema, desinstálelo AWS CLI con el mismo método que utilizó para instalarlo.-
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.
-
Cierre todos los terminales que tenga abiertos.
-
Abra su terminal preferido, ingrese el siguiente comando y confirme que no se devuelve ninguna versión.
$
aws --version
command not found: aws
Si aún tiene una versión en la lista de resultados, lo más probable es que AWS CLI se haya instalado con un método diferente o que haya varias versiones. Si no sabe qué método instaló AWS CLI, siga las instrucciones de cada método de desinstalación para las AWS CLI versiones 1 y AWS CLI 2 correspondientes a su sistema operativo hasta que no reciba ningún resultado de la 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.
-
AWS CLI Procesó un comando con un nombre de parámetro incompleto
- Posible causa: ha utilizado una abreviatura reconocida del parámetro de la AWS CLI
-
Como AWS CLI está creado con Python, AWS CLI utiliza la
argparse
biblioteca de Python, incluido elallow_abbrev
argumento. Las abreviaturas de los parámetros son reconocidas por el AWS CLI y procesadas. El siguiente ejemplo de comando cambia el nombre de la CloudFormation pila. El parámetro
--change-set-n
se reconoce como una abreviatura--change-set-name
de y AWS CLI procesa el comando.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-n
my-change-setCuando su abreviatura pueda ser varios comandos, el parámetro no se reconocerá como abreviatura.
El siguiente ejemplo de comando cambia el nombre de la CloudFormation pila. El parámetro
--change-set-
no se reconoce como una abreviatura, ya que existen múltiples parámetros de los que podría ser una abreviatura, como--change-set-name
y--change-set-type
. Por lo tanto, AWS CLI no procesa el comando.$
aws cloudformation create-change-set --stack-name my-stack
--change-set-
my-change-setaviso
No utilice abreviaturas de parámetros a propósito. No son fiables y no son compatibles con versiones anteriores. Si se agrega algún parámetro nuevo a un comando que confunda sus abreviaturas, se interrumpirán sus comandos.
Además, si el parámetro es un argumento de un solo valor, puede provocar un comportamiento inesperado con sus comandos. Si se pasan varias instancias de un argumento de un solo valor, solo se ejecutará la última instancia. En el siguiente ejemplo, el parámetro
--filters
es un argumento de un solo valor. Se especifican los parámetros--filters
y--filter
. El parámetro--filter
es una abreviatura de--filters
. Esto hace que se apliquen dos instancias de--filters
y solo se aplica el último argumento--filter
.$
aws ec2 describe-vpc-peering-connections \
--filters
Name=tag:TagName,Values=VpcPeeringConnection \--filter
Name=status-code,Values=activeConfirme que utiliza parámetros válidos antes de ejecutar un comando para evitar comportamientos inesperados.
Errores de acceso denegado
- Causa posible: el archivo del AWS CLI programa no tiene permiso de «ejecución»
-
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 en755
.Para añadir el permiso de ejecución a su usuario, ejecute el siguiente comando, sustituyéndolo
~/.local/bin/aws
con la ruta al programa en su ordenador.$
chmod +x
~/.local/bin/aws
- Causa posible: tu IAM identidad 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 ejecutas un AWS CLI comando, AWS las operaciones se realizan en tu nombre y utilizan credenciales que te asocian a una IAM cuenta o un rol. Las políticas adjuntas deben concederle permiso para ejecutar las API acciones que correspondan a los comandos que ejecute con el 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 variosAPIs. Puede ver APIs a qué comandos llama mediante la--debug
opción.Si está seguro de que el usuario o el rol tienen los permisos adecuados asignados por la política, asegúrese de que el AWS CLI comando utilice las credenciales esperadas. Consulte la siguiente sección sobre las credenciales para comprobar que las credenciales que AWS CLI utiliza son las esperadas.
Para obtener información sobre la asignación de IAM permisos, consulte Descripción general de la administración del acceso: permisos y políticas en la Guía del IAM usuario.
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: AWS CLI está leyendo credenciales incorrectas o proviene de una ubicación inesperada
-
AWS CLI Es posible que estén leyendo las credenciales de una ubicación diferente a la que esperabas o que la información de tu key pair 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
ycredentials
. Para obtener más información sobre los archivosconfig
y credentials
, consulte Ajustes de configuración y archivos de credenciales en el AWS CLI. Para obtener más información sobre credenciales y autenticación, incluida la precedencia de las credenciales, consulte Credenciales de autenticación y acceso para el AWS CLI. - 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.
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 AWS CLI ejecuta un comando, envía una solicitud cifrada a los AWS servidores para que realicen las operaciones de AWS servicio adecuadas. Sus credenciales (la clave de acceso y la clave secreta) participan en el cifrado y permiten autenticar AWS 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 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.
- Causa posible: el sistema operativo está manejando mal AWS las claves que contienen ciertos caracteres especiales
-
Si AWS las claves incluyen ciertos caracteres especiales, como
-
,, o algunas variantes del sistema operativo%
, procesa la cadena de forma incorrecta y provoca que la cadena clave se interprete de forma incorrecta.+
/
Si procesa las claves con otras herramientas o scripts, como las herramientas que crean el archivo de credenciales en una nueva instancia como parte de su creación, es posible que esas herramientas y scripts tengan su propio manejo de caracteres especiales, lo que provoca que se transformen en algo que ya AWS no reconozca.
Sugerimos regenerar la clave secreta para obtener una que no incluya el carácter especial que causa problemas.
SSLerrores de certificado
- Causa posible: 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 utilizas un AWS CLI comando, recibes un mensaje
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
de error. Esto se debe a que AWS CLI no confías en el certificado de tu apoderado debido a factores como el hecho de que el certificado de tu apoderado esté autofirmado y que tu empresa sea la autoridad de certificación (CA). Esto AWS CLI impide encontrar el certificado raíz de CA de su empresa en el registro de CA local.Para solucionar este problema, indique AWS CLI dónde encontrar el archivo de su empresa mediante el ajuste del
.pem
archivo deca_bundle
configuración, la opción de línea de --ca-bundle comandos o la variable deAWS_CA_BUNDLE
entorno. - 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 directoryEsto 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ónca_bundle
, la opción de la línea de comandos --ca-bundle o la variable de entornoAWS_CA_BUNDLE
. - Causa posible: su configuración no utiliza la correcta Región de AWS
-
Ejemplo de texto de error:
$
aws s3 ls
[SSL: CERTIFICATE_ VERIFY_FAILED] certificate verify failed
Se pueden producir errores o resultados inesperados si una no Servicio de AWS está disponible para la información especificada Región de AWS o si los recursos están ubicados en una ubicación diferente Región de AWS. Para ver los pasos de solución de problemas, consulte Compruebe si Región de AWS su AWS CLI comando está utilizando.
- Causa posible: es necesario actualizar tu TLS versión
-
Ejemplo de texto de error:
$
aws s3 ls
[SSL: UNSAFE_LEGACY_RENEGOTIATION_DISABLED] unsafe legacy renegotiation disabled
Servicio de AWS Está utilizando una versión TLS que no es compatible con la TLS versión de su dispositivo. Para resolver este problema, actualiza a una TLS versión compatible. Para obtener más información, consulte Aplicar una versión mínima de TLS para el AWS CLI.
JSONErrores no válidos
Ejemplo de texto de error:
$
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}
Cuando utiliza un AWS CLI comando, recibe un mensaje de error Invalid JSON
«». Por lo general, se trata de un error que se produce cuando se introduce un comando con el JSON formato esperado y AWS CLI no se puede leer JSON correctamente.
- Causa posible: no has introducido un valor válido JSON AWS CLI para su uso
-
Confirme que ha JSON introducido un código válido para su comando. Te sugerimos que utilices un JSON validador JSON si tienes problemas con el formato.
Para un JSON uso más avanzado en la línea de comandos, considera usar un JSON procesador de línea de comandos, por ejemplo
jq
, para crear JSON cadenas. Para obtener más informaciónjq
, consulte el repositorio jqen GitHub. - Causa posible: las reglas de cotización de su terminal impiden que JSON se envíe un documento válido al AWS CLI
-
Antes de AWS CLI recibir algo de un comando, tu terminal procesa el comando utilizando sus propias reglas de comillas y escape. Debido a las reglas de formato de un terminal, es posible que parte del JSON contenido se elimine antes de pasar el comando al. 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 el comando hasta que se devuelva el valor «hasta que JSON sea 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 \ --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']
Utilice las reglas de cotización de su terminal para solucionar cualquier problema que tenga su JSON entrada al AWS CLI. Para obtener más información sobre las reglas de entrecomillado, consulte Usar comillas y literales con cadenas en AWS CLI.
nota
Si tiene problemas JSON para obtener la validez AWS CLI, le recomendamos que evite las reglas de cotización de un terminal para la entrada de JSON datos y utilice Blobs para pasar sus JSON datos directamente al. AWS CLI Para obtener más información acerca de Blobs, consulte o Blob.
Recursos adicionales de
Para obtener ayuda adicional con tus AWS CLI problemas, visita la AWS CLI comunidad de GitHubo la AWS re:Post
comunidad