¿Cómo puedo corregir el error “Unable to locate credentials” cuando uso la AWS CLI para conectarme a los servicios de Amazon?

3 minutos de lectura
0

Cuando intento usar la Interfaz de la línea de comandos de AWS (AWS CLI) para acceder a mi bucket de Amazon Simple Storage Service (Amazon S3), aparece un error.

Resolución

El error “Unable to locate credentials” significa que el servicio de AWS con el que interactúa no puede encontrar las credenciales para autenticar las llamadas a la API de AWS. Por ejemplo, puede tratarse de un servicio de AWS, como Amazon S3. Para resolver este problema, asegúrate de que tus credenciales de AWS estén configuradas correctamente en AWS CLI.

Nota: Si se muestran errores al ejecutar comandos de la AWS CLI, consulta Errores de solución de problemas de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de AWS CLI.

Para comprobar si la AWS CLI está configurada con credenciales, ejecuta el siguiente comando:

$ aws configure list

Si las credenciales están configuradas en el archivo de configuración o en el archivo de credenciales, el comando devuelve una respuesta similar a la siguiente:

Name                    Value                    Type            Location
----                    -----                    ----            --------
profile                <not set>                 None            None
access_key             ****************ABCD      config_file    ~/.aws/config
secret_key             ****************ABCD      config_file    ~/.aws/config
region                 us-west-2                 env            AWS_DEFAULT_REGION

Si las credenciales están configuradas con variables de entorno, el comando devuelve una respuesta similar a la siguiente:

Name                   Value                     Type            Location
----                   -----                     ----            --------
profile                <not set>                 None            None
access_key             ****************N36N      env    
secret_key             ****************cxxy      env    
region                 <not set>                 None            None

Si las credenciales están configuradas en un perfil de instancia, el comando devuelve una respuesta similar a la siguiente:

Name                    Value                    Type              Location
----                    -----                    ----              --------
profile                <not set>                 None               None
access_key             ****************YVEQ      iam-role
secret_key             ****************2a9N      iam-role
region                 <not set>                 None               None

Si no hay credenciales establecidas, el comando devuelve el siguiente resultado:

Name                    Value             Type                Location
----                    -----             ----                --------
profile                <not set>          None                None
access_key             <not set>          None                None
secret_key             <not set>          None                None
region                 <not set>          None                None

Revisa la respuesta para comprobar si faltan credenciales o si las credenciales almacenadas son incorrectas.

Es posible que haya un perfil de instancia adjunto a su instancia de Amazon EC2, pero que sigas sin poder cargar las credenciales debido a problemas con AssumeRole en la política de confianza configurada. Para obtener más información, consulta Recuperar los metadatos de la instancia.

Si el comando devuelve el siguiente resultado al recuperar los metadatos de la instancia, el AssumeRole de la política de confianza está restringido:

{
  "Code" : "AssumeRoleUnauthorizedAccess",
  "Message" : "EC2 cannot assume the role EXAMPLEROLE.  Please see documentation at https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_iam-ec2.html#troubleshoot_iam-ec2_errors-info-doc.",
  "LastUpdated" : "2024-04-03T09:49:40Z"
}

Revisa la respuesta para comprobar si faltan credenciales, si la política de confianza de IAM no está configurada correctamente o si las credenciales almacenadas son incorrectas. Para obtener más información, consulta Roles de IAM para Amazon EC2.