

# Solucionar problemas de IAM
<a name="troubleshoot"></a>

Utilice la información que se incluye aquí para diagnosticar y solucionar los problemas comunes cuando trabaje con AWS Identity and Access Management (IAM).

**Topics**
+ [No puedo iniciar sesión en mi cuenta AWS](#troubleshoot_general_cant-sign-in)
+ [He perdido mi claves de acceso](#troubleshoot_general_access-keys)
+ [Las variables de la política no funcionan](#troubleshoot_general_policy-variables-dont-work)
+ [Los cambios que realizo no están siempre visibles inmediatamente](#troubleshoot_general_eventual-consistency)
+ [No tengo autorización para realizar la operación iam:DeleteVirtualMFADevice](#troubleshoot_general_access-denied-delete-mfa)
+ [¿Cómo puedo crear usuarios de IAM de forma segura?](#troubleshoot_general_securely-create-iam-users)
+ [Recursos adicionales](#troubleshoot_general_resources)
+ [Solucionar problemas de mensajes de error de acceso denegado](troubleshoot_access-denied.md)
+ [Solucionar problemas con el usuario raíz](troubleshooting_root-user.md)
+ [Solucionar problemas de políticas de IAM](troubleshoot_policies.md)
+ [Solucionar problemas con claves de acceso y claves de seguridad FIDO](troubleshoot_mfa-fido.md)
+ [Solucionar problemas de roles de IAM](troubleshoot_roles.md)
+ [Solucionar problemas de IAM y Amazon EC2](troubleshoot_iam-ec2.md)
+ [Solucionar problemas de Amazon S3 e IAM](troubleshoot_iam-s3.md)
+ [Solución de problemas de federación SAML con IAM](troubleshoot_saml.md)

## No puedo iniciar sesión en mi cuenta AWS
<a name="troubleshoot_general_cant-sign-in"></a>

Compruebe que tiene las credenciales correctas y que está utilizando el método correcto para iniciar sesión. Para obtener más información, consulte [Solución de problemas de inicio de sesión](https://docs.aws.amazon.com/signin/latest/userguide/troubleshooting-sign-in-issues.html) en la *Guía del usuario de AWS Sign-In*.

## He perdido mi claves de acceso
<a name="troubleshoot_general_access-keys"></a>

Las claves de acceso se componen de dos partes:
+ **El identificador de la clave de acceso**. No es secreto y se puede ver en la consola de IAM en la que hay una lista de claves de acceso, como, por ejemplo, en la página de resumen del usuario.
+ **La clave de acceso secreta de**. Se proporciona cuando crea el par de claves de acceso. Al igual que las contraseñas, no se ***puede recuperar en otro momento***. Si ha perdido su clave de acceso secreta, debe crear un nuevo par de claves de acceso. Si ya ha alcanzado el [número máximo de claves de acceso](reference_iam-quotas.md#reference_iam-quotas-entities), debe eliminar uno de los pares existentes antes de poder crear otra.

Si pierde su clave de acceso secreta, debe eliminar la clave de acceso y crear una nueva. Para obtener instrucciones adicionales, consulte [Actualización de las claves de acceso](id-credentials-access-keys-update.md).

## Las variables de la política no funcionan
<a name="troubleshoot_general_policy-variables-dont-work"></a>

Si las variables de la política no funcionan, se ha producido uno de los siguientes errores:

**La fecha es incorrecta en el elemento de la política Version.**  
Compruebe que todas las políticas que contengan variables incluyan el siguiente número de versión en la política: `"Version": "2012-10-17"`. Sin el número de versión correcto, las variables no se sustituyen durante la evaluación. En su lugar, las variables se evalúan literalmente. Las políticas que no incluyan variables seguirán funcionando cuando incluya el número de versión más reciente.  
El elemento de política `Version` es diferente de la versión de una política. El elemento de política `Version` se utiliza en una política y define la versión del lenguaje de la política. Una versión de la política se crea al modificar una política administrada por el cliente en IAM. La política modificada no anula la política existente. En cambio, IAM crea una nueva versión de la política administrada. Para obtener más información sobre el elemento de política `Version`, consulte [Elementos de política JSON de IAM: Version](reference_policies_elements_version.md). Para obtener más información sobre las versiones de política, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md).

**Los caracteres de la variable se encuentran escritos con mayúsculas y minúsculas incorrectas.**  
Compruebe que las variables de su política estén escritas respetando mayúsculas y minúsculas. Para obtener más información, consulte [Elementos de la política de IAM: variables y etiquetas](reference_policies_variables.md).

## Los cambios que realizo no están siempre visibles inmediatamente
<a name="troubleshoot_general_eventual-consistency"></a>

Al ser un servicio al que se obtiene acceso a través de equipos de centros de datos de todo el mundo, IAM utiliza un modelo de computación distribuida llamado [consistencia final](https://wikipedia.org/wiki/Eventual_consistency). Cualquier cambio que realice en IAM (u otros servicios de AWS), incluidas las etiquetas de [control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html), tardará en aparecer en todos los puntos de conexión posibles. Algunos retrasos se deben al tiempo que lleva enviar datos de un servidor a otro, de una zona de replicación a otra y de una región a otra. IAM también utiliza caché para mejorar el rendimiento, pero en algunos casos esto puede agregar tiempo. Es posible que el cambio no sea visible hasta que se agoten los datos previamente almacenados.

Debe diseñar sus aplicaciones globales teniendo en cuenta estos posibles retrasos. Asegúrese de que funcionan según lo previsto, incluso cuando un cambio realizado en una ubicación no sea visible inmediatamente en otra. Estos cambios incluyen la creación o actualización de usuarios, grupos, roles o políticas. Le recomendamos que no incluya esos cambios de IAM en las rutas de código de gran importancia y alta disponibilidad de su aplicación. En su lugar, realice los cambios de IAM en otra rutina de inicialización o configuración que ejecute con menos frecuencia. Además, asegúrese de verificar que los cambios se han propagado antes de que los flujos de trabajo de producción dependan de ellos. 

Para obtener más información acerca del modo en que esto afecta a otros servicios de AWS, consulte los siguientes recursos:
+ **Amazon DynamoDB**: [Coherencia de lectura](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) en la *Guía para desarrolladores de DynamoDB* y [Coherencia de lectura](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) en la Guía para desarrolladores de Amazon DynamoDB.
+ **Amazon EC2**: [consistencia final de EC2](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/query-api-troubleshooting.html#eventual-consistency) en la *Referencia de la API de Amazon EC2*
+ **Amazon EMR**: [Asegurar la coherencia al utilizar Amazon S3 y Amazon EMR para flujos de trabajo de ETL](https://aws.amazon.com/blogs/big-data/ensuring-consistency-when-using-amazon-s3-and-amazon-elastic-mapreduce-for-etl-workflows/) en el Blog de AWS Big Data
+ **Amazon Redshift**: [administración de la consistencia de los datos](https://docs.aws.amazon.com/redshift/latest/dg/managing-data-consistency.html) en la *Guía para desarrolladores de bases de datos de Amazon Redshift*
+ **Amazon S3**: [Modelo de coherencia de datos de Amazon S3](https://docs.aws.amazon.com//AmazonS3/latest/userguide/Welcome.html#ConsistencyModel) en la *Guía del usuario de Amazon Simple Storage Service*.

## No tengo autorización para realizar la operación iam:DeleteVirtualMFADevice
<a name="troubleshoot_general_access-denied-delete-mfa"></a>

Es posible que reciba el siguiente error cuando intente asignar o eliminar un dispositivo MFA virtual para usted o para otros usuarios:

```
User: arn:aws:iam::123456789012:user/Diego is not authorized to perform: iam:DeleteVirtualMFADevice on resource: arn:aws:iam::123456789012:mfa/Diego with an explicit deny
```

Esto podría ocurrir si alguien anteriormente comenzó la asignación de un dispositivo MFA virtual a un usuario en la consola de IAM y después canceló el proceso. Esto crea un dispositivo MFA virtual para el usuario en IAM, pero nunca lo asocia totalmente al usuario. Elimine el dispositivo de MFA virtual existente antes de crear un dispositivo de MFA virtual nuevo con el mismo nombre de dispositivo.

Para solucionar este problema, un administrador **no** debe editar los permisos de la política. En su lugar, el administrador debe utilizar la AWS CLI o la API de AWS para eliminar el dispositivo MFA virtual existente pero sin asignar.

**Para eliminar un dispositivo MFA virtual existente pero sin asignar**

1. Consulte los dispositivos MFA virtuales de su cuenta.
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html](https://docs.aws.amazon.com/cli/latest/reference/iam/list-virtual-mfa-devices.html)
   + AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_ListVirtualMFADevices.html)

1. En la respuesta, localice el ARN del dispositivo MFA virtual del usuario que está intentando corregir.

1. Elimine el dispositivo MFA virtual.
   + AWS CLI: [https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html](https://docs.aws.amazon.com/cli/latest/reference/iam/delete-virtual-mfa-device.html)
   + AWS API: [https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteVirtualMFADevice.html)

## ¿Cómo puedo crear usuarios de IAM de forma segura?
<a name="troubleshoot_general_securely-create-iam-users"></a>

Si tiene empleados que requieren acceso a AWS ([), puede elegir crear usuarios de IAM o ](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)utilizar IAM Identity Center para la autenticación. Si utiliza IAM, AWS recomienda crear un usuario de IAM y comunicar las credenciales a los empleados de forma segura. Si no se encuentra físicamente junto a los empleados, utilice un flujo de trabajo seguro para comunicarles las credenciales.

Utilice el siguiente flujo de trabajo seguro para crear un usuario nuevo en IAM:

1. [Cree un nuevo usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html) mediante la Consola de administración de AWS. Elija conceder acceso a la Consola de administración de AWS con una contraseña generada. Si es necesario, seleccione la casilla de verificación **Users must create a new password at next sign-in (Los usuarios deben crear una nueva contraseña en el siguiente inicio de sesión)**. No agregue una política de permisos al usuario hasta después de que haya cambiado su contraseña.

1. Después de agregar el usuario, copie la dirección URL de inicio de sesión, el nombre de usuario y la contraseña del nuevo usuario. Para ver la contraseña, elija **Show (Mostrar)**.

1. Envíe la contraseña a su empleado mediante un método de comunicación seguro en su empresa, como email, chat o un sistema de seguimiento de incidentes. Por separado, proporcione a sus usuarios el enlace de la consola de usuario de IAM y su nombre de usuario. Dígale al empleado que confirme si puede iniciar sesión correctamente antes de concederle permisos.

1. Una vez que el empleado lo confirme, agregue los permisos que necesita. Como práctica recomendada de seguridad, agregue una política que requiera que el usuario se autentique mediante MFA para administrar sus credenciales. Para ver una política de ejemplo, consulte [AWS: permite a los usuarios de IAM autenticados por MFA administrar sus propias credenciales en la página Credenciales de seguridad](reference_policies_examples_aws_my-sec-creds-self-manage.md).

## Recursos adicionales
<a name="troubleshoot_general_resources"></a>

Los recursos relacionados siguientes pueden permitirle solucionar problemas cuando trabaje con AWS.
+ **[Guía del usuario de AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)**— Utilice AWS CloudTrail para realizar un seguimiento de un historial de llamadas a la API realizadas a AWS y almacenar esa información en archivos de registro. Esto le permite determinar los usuarios y las cuentas que obtuvieron acceso a los recursos de su cuenta, cuándo se realizaron las llamadas, qué acciones se solicitaron, etc. Para obtener más información, consulte [Registro de llamadas a IAM y a la API de AWS STS con AWS CloudTrail](cloudtrail-integration.md).
+ **[AWSCentro de conocimientos](https://aws.amazon.com/premiumsupport/knowledge-center/)**: busque preguntas frecuentes y enlaces a otros recursos para poder solucionar problemas.
+ **[Centro de asistencia de AWS](https://console.aws.amazon.com/support/home#/)**: obtenga asistencia técnica.
+ **[Centro de asistencia prémium de AWS](https://aws.amazon.com/premiumsupport/)**: obtenga asistencia técnica premium.

# Solucionar problemas de mensajes de error de acceso denegado
<a name="troubleshoot_access-denied"></a>

La siguiente información puede permitirle identificar, diagnosticar y resolver los errores de acceso denegado con AWS Identity and Access Management. Los errores de acceso denegado se muestran cuando AWS deniega explícita o implícitamente una solicitud de autorización.
+ Se produce una *denegación explícita* cuando una política contiene una declaración `Deny` para la acción de AWS específica.
+ Una *denegación implícita* se produce cuando no hay declaraciones `Deny` ni `Allow` aplicables. Como una política de IAM deniega una entidad principal de IAM de forma predeterminada, la política debe permitir explícitamente que la entidad principal lleve a cabo una acción. De lo contrario, la política deniega el acceso de forma implícita. Para obtener más información, consulte [Diferencia entre denegaciones implícitas y explícitas](reference_policies_evaluation-logic_AccessPolicyLanguage_Interplay.md).

Al realizar una solicitud a un servicio o recurso, es posible que se apliquen varias políticas a la solicitud. Revise todas las políticas aplicables además de la política que se especifica en el mensaje de error.
+ Si varias políticas del mismo tipo de política rechazan una solicitud, el mensaje de error de acceso denegado no especifica la cantidad de políticas evaluadas.
+ Si se deniega una solicitud de autorización debido a varios tipos de políticas, AWS incluye solo uno de esos tipos de políticas en el mensaje de error.

**importante**  
**Tiene problemas para iniciar sesión en AWS?** Asegúrese de que está en la [página de inicio de sesión de AWS](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html) correcta para su tipo de usuario. Si es el Usuario raíz de la cuenta de AWS (propietario de la cuenta), puede iniciar sesión en AWS con las credenciales que configuró cuando creó la Cuenta de AWS. Si es un usuario de IAM, el administrador de su cuenta puede proporcionarle las credenciales de inicio de sesión de AWS. Si necesita solicitar soporte técnico, no utilice el enlace de comentarios de esta página. El formulario lo recibe el equipo de documentación de AWS, no Soporte. En lugar de ello, en la página [Contacte con nosotros](https://aws.amazon.com/contact-us/), elija **Todavía no es posible iniciar sesión en la cuenta de AWS** y, a continuación, elija una de las opciones de asistencia disponibles.

## Me aparece un mensaje de “acceso denegado” al realizar una solicitud a un servicio de AWS
<a name="troubleshoot_general_access-denied-service"></a>
+ Verifique si el mensaje de error incluye el tipo y el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_identifiers.html#identifiers-arns) de la política responsable de denegar el acceso. Si este es el caso, compruebe si hay instrucciones de rechazo para la acción en la política especificada. Si se proporciona el tipo de política, pero no hay ningún ARN de política, céntrese en solucionar los problemas de ese tipo de política: compruebe si hay instrucciones de rechazo para la acción en las políticas del tipo especificado. Si el mensaje de error no menciona el tipo de política responsable de denegar el acceso, utilice el resto de las directrices de esta sección para solucionar más problemas.
+ Compruebe que tiene el permiso de política basada en identidad para llamar a la acción y a los recursos que ha solicitado. Si hay condiciones establecidas, también debe cumplir dichas condiciones al enviar la solicitud. Para obtener más información sobre cómo consultar o modificar políticas para un usuario, grupo o rol de IAM, consulte [Administración de políticas de IAM](access_policies_manage.md).
+ Si la Consola de administración de AWS da un mensaje diciendo que no está autorizado para llevar a cabo una acción, debe ponerse en contacto con su administrador para recibir ayuda. El administrador le proporcionó sus credenciales de inicio de sesión o enlace de inicio de sesión.

  En el siguiente ejemplo, el error se produce cuando el usuario de IAM `mateojackson` intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio `my-example-widget`, pero no tiene los permisos ficticios `widgets:GetWidget`.

  ```
  User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: widgets:GetWidget on resource: my-example-widget
  ```

  En este caso, Mateo debe pedirle a su administrador que actualice sus políticas para obtener acceso al recurso `my-example-widget` mediante la acción `widgets:GetWidget`.
+ ¿Está intentando obtener acceso a un servicio que admite [Políticas basadas en recursos](access_policies_identity-vs-resource.md), como por ejemplo Amazon S3, Amazon SNS o Amazon SQS? En caso afirmativo, compruebe que la política le tenga especificado como principal y le dé acceso. Si realiza una solicitud a un servicio dentro de su cuenta, las políticas basadas en identidad o basadas en recursos puede concederle permiso. Si realiza una solicitud a un servicio de una cuenta distinta, tanto las políticas basadas en identidad como las basadas en recursos deben concederle permiso. Para ver qué servicios admiten políticas basadas en recursos, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).
+ Si la política incluye una condición con un par clave-valor, revíselo atentamente. Entre los ejemplos se incluyen la clave de condición global [`aws:RequestTag/tag-key`](reference_policies_condition-keys.md), [kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context](kms/latest/developerguide/policy-conditions.html#conditions-kms-encryption-context) de AWS KMS y la clave de condición `ResourceTag/tag-key` compatibles con varios servicios. Asegúrese de que el nombre de la clave no coincida con varios resultados. Puesto que los nombres de la clave de condición no distinguen entre mayúsculas y minúsculas, una condición que comprueba una clave denominada `foo` coincidirá con `foo`, `Foo` o `FOO`. Si su solicitud incluye varios pares clave-valor con nombres de clave que diferencian únicamente por las mayúsculas o minúsculas, su acceso puede denegarse de forma inesperada. Para obtener más información, consulte [Elementos de política JSON de IAM: Condition](reference_policies_elements_condition.md).
+ Si tiene un [límite de permisos](access_policies_boundaries.md), compruebe que la política utilizada para el límite de permisos permite la solicitud. Si las políticas basadas en identidad permiten la solicitud, pero el límite de permisos no la permite, la solicitud se deniega. Un límite de permisos controla los permisos máximos que puede tener una entidad principal de IAM (usuario o rol). Las políticas basadas en recursos no se restringen por los límites de permisos. Los límites de permisos no son comunes. Para obtener más información sobre evalúa estas políticas AWS, consulte [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md).
+ Si va a firmar las solicitudes manualmente (sin utilizar los [AWS SDK](https://aws.amazon.com/developer/tools/)), compruebe que haya [firmado correctamente la solicitud](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html).
+ Si utiliza una [política de puntos de conexión de Amazon VPC](https://docs.aws.amazon.com//vpc/latest/privatelink/vpc-endpoints-access.html) y recibe un error de acceso denegado que no se registra en AWS CloudTrail, puede deberse a que la cuenta del propietario del punto de conexión de VPC es diferente de la cuenta que realiza la llamada o de la cuenta del rol de destino.

## Me aparece un mensaje de “acceso denegado” al realizar una solicitud con credenciales de seguridad temporales
<a name="troubleshoot_general_access-denied-temp-creds"></a>
+ En primer lugar, asegúrese de que no se le deniega el acceso por un motivo no relacionado con sus credenciales temporales. Para obtener más información, consulte [Me aparece un mensaje de “acceso denegado” al realizar una solicitud a un servicio de AWS](#troubleshoot_general_access-denied-service).
+ Compruebe que el servicio acepta credenciales de seguridad temporales, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).
+ Compruebe que las solicitudes se han firmado correctamente y que la solicitud tiene el formato correcto. Para obtener más información, consulte la documentación de su [conjunto de herramientas](https://aws.amazon.com/developer/tools/) o [Uso de credenciales temporales con recursos de AWS](id_credentials_temp_use-resources.md).
+ Compruebe que sus credenciales de seguridad temporales no hayan caducado. Para obtener más información, consulte [Credenciales de seguridad temporales en IAM](id_credentials_temp.md). 
+ Compruebe que el usuario o el rol de IAM tenga los permisos adecuados. Los permisos de credenciales de seguridad temporales se obtienen de un usuario o un rol de IAM. Como resultado, los permisos se limitan a los que se conceden al rol cuyas credenciales temporales ha asumido. Para obtener más información sobre cómo se determinan los permisos de las credenciales de seguridad temporales, consulte [Permisos para credenciales de seguridad temporales](id_credentials_temp_control-access.md).
+ Si asume una función, su sesión de rol puede verse limitada por las políticas de la sesión. Al [solicitar las credenciales de seguridad temporales](id_credentials_temp_request.md) mediante programación utilizando AWS STS, tiene la opción de pasar las [políticas de sesión](access_policies.md#policies_session) administradas o insertadas. Las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión de credenciales temporal mediante programación para un rol. Puede transferir un único documento de política de sesión insertada JSON utilizando el parámetro `Policy`. Puede utilizar el parámetro `PolicyArns` para especificar hasta 10 políticas de sesión administrada. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y las políticas de la sesión. De manera alternativa, si el administrador o un programa personalizado le proporcionan credenciales temporales, es posible que hayan incluido una política de sesión para limitar su acceso.
+ Si es una entidad principal de usuario federado de AWS STS, la sesión podría estar limitada por políticas de sesión. Se crea una sesión de usuario federado al iniciar sesión en AWS como usuario de IAM y luego solicitar un token de federación. Para obtener más información, consulte [Solicitud de credenciales a través de un agente de identidades personalizado](id_credentials_temp_request.md#api_getfederationtoken). Si usted o su agente de identidades pasan políticas de sesión al mismo tiempo que solicitan un token de federación, la sesión se verá limitada por esas políticas. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades de su usuario de IAM y las políticas de la sesión. Para obtener más información acerca de las políticas de sesión, consulte [Políticas de sesión](access_policies.md#policies_session).
+ Si obtiene acceso mediante un rol a un recurso que tiene una política basada en recursos, compruebe que la política conceda permisos a dicho rol. Por ejemplo, la siguiente política permite que `MyRole` de la cuenta `111122223333` obtenga acceso a `amzn-s3-demo-bucket`.

------
#### [ JSON ]

****  

  ```
  {
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
      "Sid": "S3BucketPolicy",
      "Effect": "Allow",
      "Principal": {"AWS": ["arn:aws:iam::111122223333:role/MyRole"]},
      "Action": ["s3:PutObject"],
      "Resource": ["arn:aws:s3:::amzn-s3-demo-bucket/*"]
    }]
  }
  ```

------

## Solucionador de problemas de acceso
<a name="access-troubleshooter"></a>

**nota**  
El solucionador de problemas de acceso estará disponible de manera progresiva para los servicios de AWS en todas las regiones para los casos de una sola cuenta y una sola organización. La abundancia de los datos irá en aumento.

Puede utilizar el solucionador de problemas de acceso para depurar y resolver errores de acceso denegado.

El solucionador de problemas de acceso posee las siguientes funciones:
+ [Vista de los detalles de solicitud y evaluación](#access-troubleshooter-request-details): La entidad principal, la acción, el recurso, el contexto y el resultado de la evaluación.
+ [Vista de la evaluación de la autorización individual](#access-troubleshooter-individual-evaluation): Las evaluaciones de autorización para pares de acciones y recursos individuales.
+ [Revisión de todas las políticas y sus declaraciones individuales](#access-troubleshooter-policy-statements): Todas las políticas evaluadas y sus declaraciones individuales, con los resultados de las evaluaciones de cada una.

### Permisos para el solucionador de problemas de acceso
<a name="access-troubleshooter-permissions"></a>

Para utilizar el solucionador de problemas de acceso, debe tener el permiso `iam:TroubleshootAccess` adjunto a su entidad principal. Permitir esta acción significa que la entidad principal verá todos los detalles del contexto de la autorización, entre ellos, las claves de contexto y las declaraciones de todas las políticas que se evaluaron.

La siguiente política de ejemplo concede los permisos necesarios:

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:TroubleshootAccess",
            "Resource": "*"
        }
    ]
}
```

### Uso del solucionador de problemas de acceso
<a name="access-troubleshooter-using"></a>

Al recibir un mensaje error de acceso denegado, este incluirá un enlace y un AuthorizationID que se pueden utilizar con el solucionador de problemas de acceso. El siguiente ejemplo muestra un mensaje de error de acceso denegado:

```
An error occurred (AccessDenied) when calling the RestoreTableFromBackup operation: User: arn:aws:sts:012345678901:assumedRole/DatabaseDev/RestoreBackupSession is not authorized to perform: dynamodb:RestoreTableFromBackup with an explicit deny in an identity policy. Go to https://console.aws.amazon.com/iam/home#/access-troubleshooter for complete details, or call the iam:GetAuthorizationDetails API with the following authorization id: 67f1576b-af29-4c66-9b2b-10fd67516713
```

Si tiene el permiso adecuado, en la consola puede seleccionar **Solución de problemas en IAM** para abrir una nueva pestaña del solucionador de problemas de acceso.

Como opción, puede llamar a la API `iam:GetAuthorizationDetails` mediante el AuthorizationID:

```
aws iam get-authorization-details --authorization-id 67f1576b-af29-4c66-9b2b-10fd67516713
```

Si usted es administrador, y un desarrollador le entrega el AuthorizationID, puede ir a la consola de IAM e ingresar el AuthorizationID para recuperar los detalles del contexto de la autorización.

### Vista de los detalles de solicitud y evaluación
<a name="access-troubleshooter-request-details"></a>

El solucionador de problemas de acceso entrega los detalles de su solicitud que se consideraron en la evaluación. Puede revisar la operación o llamada a la API que intentó realizar, el ID de autorización, la entidad principal que realizó la llamada, el recurso al que intentó acceder y el resultado de la evaluación.

### Vista de la evaluación de la autorización individual
<a name="access-troubleshooter-individual-evaluation"></a>

Para llamar correctamente a una operación, es posible que se requieran permisos adicionales para realizar acciones dependientes. Por ejemplo, para ejecutar `RestoreTableFromBackup` en DynamoDB, necesita permisos para `dynamodb:BatchWriteItem`, `dynamodb:DeleteItem`, `dynamodb:GetItem`, `dynamodb:PutItem`, `dynamodb:Query`, `dynamodb:Scan` y `dynamodb:UpdateItem`. Estas acciones se evalúan según los recursos a los que desea acceder. Para obtener más información, consulte [Service Authorization Reference](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html).

### Revisión de todas las políticas y sus declaraciones individuales
<a name="access-troubleshooter-policy-statements"></a>

Es común que varias políticas afecten la autorización y que cada una contenga numerosas declaraciones. El solucionador de problemas de acceso muestra una lista de todas las políticas que se evalúan al realizar la operación. Puede revisar por separado la declaración de esas políticas y el resultado de la evaluación de cada una, brindando así una visión completa para resolver los problemas de manera eficiente.

## Ejemplos de mensajes de error de acceso denegado
<a name="access-denied-error-examples"></a>

La mayoría de los mensajes de error de acceso denegado aparecen en el formato `User user is not authorized to perform action on resource because context`. En este ejemplo, *user* es el ARN de la entidad principal a la que se le deniega el acceso, *action* es la acción de servicio que la política deniega y *resource* es el ARN del recurso sobre el que actúa la política. El campo *context* proporciona un contexto adicional sobre el tipo de política que denegó el acceso. En algunos casos, también contiene el ARN de la política que denegó el acceso.

Cuando una política deniega explícitamente el acceso porque contiene una declaración `Deny`, AWS incluye la frase `with an explicit deny in a type policy` en el mensaje de error de acceso denegado. Esta frase también puede especificar el ARN de la política de la siguiente manera: `with an explicit deny in a type policy: policy ARN`.

Cuando la política deniega implícitamente el acceso, AWS incluye la frase `because no type policy allows the action action` en el mensaje de error de acceso denegado.

**nota**  
Algunos servicios de AWS no admiten este formato de mensaje de error de acceso denegado. El contenido de los mensajes de error de acceso denegado puede variar según el servicio que realiza la solicitud de autorización.

En los siguientes ejemplos se muestra el formato de los distintos tipos de mensajes de error de acceso denegado.

### Acceso denegado debido a una política de control de servicios: denegación implícita
<a name="access-denied-scp-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en sus políticas de control de servicio (SCP). Para el siguiente ejemplo, la acción es `codecommit:ListRepositories`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Actualización de SCP](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps_create.html#update_policy) en la *Guía del usuario de AWS Organizations*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no service control policy allows the codecommit:ListRespositories action
```

### Acceso denegado debido a una política de control de servicios: denegación explícita
<a name="access-denied-scp-examples-explicit"></a>

1. Si se proporciona el ARN de una política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en la política de control de servicio (SCP) especificada. En el ejemplo siguiente, la acción es `codecommit:ListRepositories`.

1. Si no se proporciona el ARN de ninguna política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en sus SCP.

1. Actualice su SCP al eliminar la instrucción `Deny`. Para obtener más información, consulte [Actualización de una política de control de servicio (SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy) en la *Guía del usuario de AWS Organizations*.

Mensaje de error con el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/service_control_policy/p-examplepolicyid123
```

Mensaje de error sin el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
with an explicit deny in a service control policy
```

### Acceso denegado debido a una política de control de recursos: denegación explícita
<a name="access-denied-rcp-examples-explicit"></a>

1. Si se proporciona el ARN de una política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en la política de control de recursos (RCP) especificada. En el ejemplo siguiente, la acción es `secretsmanager:GetSecretValue`.

1. Si no se proporciona el ARN de ninguna política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en sus RCP.

1. Actualice su RCP al eliminar la instrucción `Deny`. Para obtener más información, consulte [Actualización de una política de control de recursos (RCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_policies_update.html#update_policy-rcp) en la *Guía del usuario de AWS Organizations*.

Mensaje de error con el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy: arn:aws:organizations::777788889999:policy/o-exampleorgid/resource_control_policy/p-examplepolicyid456
```

Mensaje de error sin el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource control policy
```

### Acceso denegado debido a una política de punto de conexión de VPC: denegación implícita
<a name="access-denied-vpc-endpoint-examples-implicit.title"></a>

1. Compruebe si falta la instrucción `Allow` para la acción en sus políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción es `codecommit:ListRepositories`.

1. Actualice su política de punto de conexión de VPC al agregar la instrucción `Allow`. Para obtener más información, consulte [Actualizar una política de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) en la *Guía de AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no VPC endpoint policy allows the codecommit:ListRepositories action
```

### Acceso denegado debido a una política de punto de conexión de VPC: denegación explícita
<a name="access-denied-vpc-endpoint-examples-explicit.title"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en sus políticas de punto de conexión de nube privada virtual (VPC). Para el siguiente ejemplo, la acción es `codedeploy:ListDeployments`.

1. Actualice su política de punto de conexión de VPC al eliminar la instrucción `Deny`. Para obtener más información, consulte [Actualizar una política de punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html#update-vpc-endpoint-policy) en la *Guía de AWS PrivateLink*.

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a VPC endpoint policy
```

### Acceso denegado debido a un límite de permisos: denegación implícita
<a name="access-denied-permissions-boundary-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en su límite de permisos. Para el siguiente ejemplo, la acción es `codedeploy:ListDeployments`.

1. Actualice su límite de permisos al agregar la instrucción `Allow` a su política de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](access_policies_boundaries.md) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
because no permissions boundary allows the codedeploy:ListDeployments action
```

### Acceso denegado debido a un límite de permisos: denegación explícita
<a name="access-denied-permissions-boundary-examples-explicit"></a>

1. Si se proporciona el ARN de una política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en el límite de permisos especificado. En el ejemplo siguiente, la acción es `sagemaker:ListModels`.

1. Si no se proporciona el ARN de ninguna política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en el límite de permisos adjunto a la entidad principal. 

1. Actualice su límite de permisos al eliminar la instrucción `Deny` de su política de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](access_policies_boundaries.md) y [Edición de políticas de IAM](access_policies_manage-edit.md).

Mensaje de error con el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary: arn:aws:iam::123456789012:policy/DeveloperPermissionBoundary
```

Mensaje de error sin el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sagemaker:ListModels
with an explicit deny in a permissions boundary
```

### Acceso denegado debido a políticas de sesión: denegación implícita
<a name="access-denied-session-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en sus políticas de sesión. Para el siguiente ejemplo, la acción es `codecommit:ListRepositories`.

1. Actualice su política de sesión al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codecommit:ListRepositories
because no session policy allows the codecommit:ListRepositories action
```

### Acceso denegado debido a políticas de sesión: denegación explícita
<a name="access-denied-session-policy-examples-explicit"></a>

1. Si se proporciona el ARN de una política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en la política de sesión especificada. En el ejemplo siguiente, la acción es `codedeploy:ListDeployments`.

1. Si no se proporciona el ARN de ninguna política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en sus políticas de sesión.

1. Actualice su política de sesión al eliminar la instrucción `Deny`. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) y [Edición de políticas de IAM](access_policies_manage-edit.md).

Mensaje de error con el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy: arn:aws:iam::123456789012:policy/DeveloperSessionPolicy
```

Mensaje de error sin el ARN de una política:

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in a session policy
```

### Acceso denegado debido a políticas basadas en recursos: denegación implícita
<a name="access-denied-resource-based-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en su política basada en recursos. Para el siguiente ejemplo, la acción es `secretsmanager:GetSecretValue`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
because no resource-based policy allows the secretsmanager:GetSecretValue action
```

### Acceso denegado debido a políticas basadas en recursos: denegación explícita
<a name="access-denied-resource-based-policy-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en su política basada en recursos. Para el siguiente ejemplo, la acción es `secretsmanager:GetSecretValue`.

1. Actualice su política al eliminar la instrucción `Deny`. Para obtener más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: secretsmanager:GetSecretValue
on resource: arn:aws:secretsmanager:us-east-1:123456789012:secret:*
with an explicit deny in a resource-based policy
```

### Acceso denegado debido a políticas de confianza de rol: denegación implícita
<a name="access-denied-role-trust-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en su política de confianza de rol. Para el siguiente ejemplo, la acción es `sts:AssumeRole`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
because no role trust policy allows the sts:AssumeRole action
```

### Acceso denegado debido a políticas de confianza de rol: denegación explícita
<a name="access-denied-role-trust-policy-examples-explicit"></a>

1. Compruebe si hay una instrucción `Deny` explícita para la acción en su política de confianza de rol. Para el siguiente ejemplo, la acción es `sts:AssumeRole`.

1. Actualice su política al eliminar la instrucción `Deny`. Para obtener más información, consulte [Políticas basadas en recursos](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_resource-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:user/John is not authorized to perform: sts:AssumeRole
with an explicit deny in the role trust policy
```

### Acceso denegado debido a políticas basadas en identidad: denegación implícita
<a name="access-denied-identity-based-policy-examples-implicit"></a>

1. Compruebe si falta una instrucción `Allow` para la acción en las políticas basadas en identidad asociadas a la identidad. Para el siguiente ejemplo, la acción es `codecommit:ListRepositories` y está asociada al rol `HR`.

1. Actualice su política al agregar la instrucción `Allow`. Para obtener más información, consulte [Políticas basadas en identidad](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codecommit:ListRepositories
because no identity-based policy allows the codecommit:ListRepositories action
```

### Acceso denegado debido a políticas basadas en identidades: denegación explícita
<a name="access-denied-identity-based-policy-examples-explicit"></a>

1. Si se proporciona el ARN de una política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en la política especificada. En el ejemplo siguiente, la acción es `codedeploy:ListDeployments`.

1. Si no se proporciona el ARN de ninguna política en el mensaje de error, compruebe si hay una instrucción `Deny` para la acción en las políticas basadas en identidades adjuntas a la identidad. 

1. Actualice su política al eliminar la instrucción `Deny`. Para obtener más información, consulte [Políticas basadas en identidad](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_id-based) y [Edición de políticas de IAM](access_policies_manage-edit.md).

Mensaje de error con el ARN de una política:

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy: arn:aws:iam::123456789012:policy/HRAccessPolicy
```

Mensaje de error sin el ARN de una política:

```
User: arn:aws:iam::123456789012:role/HR is not authorized to perform: codedeploy:ListDeployments
on resource: arn:aws:codedeploy:us-east-1:123456789012:deploymentgroup:*
with an explicit deny in an identity-based policy
```

# Solucionar problemas con el usuario raíz
<a name="troubleshooting_root-user"></a>

Utilice la información que aquí se incluye para solucionar problemas relacionados con el usuario raíz de una Cuenta de AWS.

**nota**  
Las Cuentas de AWS administradas con AWS Organizations pueden tener habilitado el [acceso raíz centralizado](id_root-user.md#id_root-user-access-management) para las cuentas de los miembros. Estas cuentas de miembros no tienen credenciales de usuario raíz, no pueden iniciar sesión como usuarios raíz y no pueden recuperar la contraseña del usuario raíz. Póngase en contacto con su administrador si necesita realizar una tarea que requiera credenciales de usuario raíz.

## No puedo realizar las tareas que espero poder realizar si inicio sesión como usuario raíz de la cuenta.
<a name="troubleshooting_root-user_tasks"></a>

Su cuenta podría ser miembro de una organización en AWS Organizations. Es posible que el administrador de la organización tenga una política de control de servicio (SCP) para limitar los permisos de su cuenta. Las SCP afectan a todos los usuarios, incluido el usuario raíz. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_type-auth.html) en la *Guía del usuario de AWS Organizations*.

## He olvidado la contraseña del usuario raíz de mi Cuenta de AWS
<a name="troubleshoot-forgot-root-password"></a>

Si usted es un usuario raíz y ha perdido u olvidado la contraseña de su Cuenta de AWS, puede restablecerla. Debe saber qué dirección de correo electrónico se utilizó para crear la Cuenta de AWS, como así también tener acceso a la cuenta de correo electrónico. Para obtener más información, consulte [Restablecimiento de una contraseña de usuario raíz perdida u olvidada](reset-root-password.md).

## No tengo acceso al correo electrónico de mi Cuenta de AWS
<a name="troubleshoot_general_lost-root-creds"></a>

Al crear una Cuenta de AWS, debe proporcionar una dirección de correo electrónico y una contraseña. Estas son las credenciales del Usuario raíz de la cuenta de AWS. Si no está seguro de la dirección de correo electrónico asociada a su Cuenta de AWS, busque los mensajes que `@signin.aws` o `@verify.signin.aws` envió a alguna dirección de correo electrónico de su organización y que se puedan haber utilizado para abrir la Cuenta de AWS.

Si conoce la dirección de correo electrónico, pero ya no tiene acceso a dicho correo electrónico, intente recuperar el acceso al correo electrónico. Utilice una de las siguientes opciones para recuperar el acceso a su correo electrónico:
+ Si es el propietario del dominio de la dirección de correo electrónico, puede restaurar una dirección de correo electrónico eliminada. Otra opción consiste en configurar un método catch-all para su cuenta de correo electrónico. Un catch-all recopila todos los mensajes enviados a direcciones de correo electrónico que ya no existen en el servidor de correo y los redirige a otra dirección de correo electrónico.
+ Si la dirección de correo electrónico de la cuenta forma parte de su sistema de correo electrónico de la empresa, le recomendamos que se ponga en contacto con los administradores del sistema de TI. Estos administradores podrían ayudarlo a recuperar el acceso al correo electrónico.

Si sigue sin poder iniciar sesión en su Cuenta de AWS, puede encontrar otras opciones de asistencia en [Contáctenos](https://aws.amazon.com/contact-us/).

# Solucionar problemas de políticas de IAM
<a name="troubleshoot_policies"></a>

Una [política](access_policies.md) es una entidad en AWS que, cuando se asocia a una identidad o un recurso, define sus permisos. AWS evalúa estas políticas cuando una entidad principal, como un usuario, realiza una solicitud. Los permisos en las políticas determinan si la solicitud se permite o se deniega. Las políticas se almacenan en AWS como documentos JSON que se asocian a entidades principales como *políticas basadas en identidad* o a recursos como *políticas basadas en recursos*. Puede asociar una política basada en la identidad a una entidad principal (o identidad), como un grupo, usuario o rol de IAM. Las políticas basadas en la identidad incluyen políticas administradas por AWS, políticas administradas por el cliente y políticas insertadas. Puede crear y editar políticas administradas por el cliente en la Consola de administración de AWS utilizando las opciones **Visual** y **JSON** del editor. Cuando consulte una política en la Consola de administración de AWS, podrá ver un resumen de los permisos concedidos por dicha política. Puede utilizar el editor visual y los resúmenes de políticas para poder diagnosticar y corregir los errores comunes encontrados al administrar las políticas de IAM.

Tenga en cuenta que todas las políticas de IAM se almacenan mediante la sintaxis que comienza con las reglas de [JavaScript Object Notation](http://www.json.org) (JSON). No tiene que entender esta sintaxis para crear o administrar sus políticas. Puede crear y editar una política con el editor visual de la Consola de administración de AWS. Para obtener más información sobre la sintaxis JSON en las políticas de IAM, consulte [Gramática del lenguaje de la política JSON de IAM](reference_policies_grammar.md).

**Resolución de problemas de temas relacionados con las políticas de IAM**
+ [Solución de problemas con el editor visual](#troubleshoot_policies-viseditor)
  + [Reestructuración de políticas](#troubleshoot_viseditor-restructure)
  + [Selección del ARN de un recurso en el editor visual](#troubleshoot_policies-resource-arn)
  + [Denegación de permisos en el editor visual](#troubleshoot_policies-switch-deny)
  + [Especificación de varios servicios en el editor visual](#troubleshoot_policies-multiple-services)
  + [Reducción del tamaño de su política en el editor visual](#troubleshoot_policy-size)
  + [Corrección de servicios, acciones o tipos de recurso no reconocidos en el editor visual](#troubleshoot_policies-unrecognized-visual)
+ [Solución de problemas con resúmenes de política](#troubleshoot_policies-polsum)
  + [Resumen de la política que falta](#missing-policy-summary)
  + [El resumen de la política incluye servicios, acciones o tipos de recurso no reconocidos](#unrecognized-services-actions)
  + [El servicio no admite resúmenes de políticas de IAM](#unsupported-services-actions)
  + [Mi política no concede los permisos esperados](#policy-summary-not-grant-permissions)
+ [Solución de problemas de administración de políticas](#troubleshoot_policies-policy-manage)
  + [Asociar o desvincular una política en una cuenta de IAM](#troubleshoot_roles_cant-attach-detach-policy)
  + [Cambio de las políticas para las identidades de IAM en función de su actividad](#troubleshoot_change-policies-based-on-activity)
+ [Solución de problemas con documentos de políticas JSON](#troubleshoot_policies-json)
  + [Validar sus políticas](#usepolicyvalidation)
  + [No tengo permisos para validación de políticas en el editor de JSON](#nopermsforpolicyvalidation)
  + [Más de un objeto de política JSON](#morethanonepolicyblock)
  + [Más de un elemento de instrucción JSON](#morethanonestatement)
  + [Más de un elemento de efecto, acción o recurso en un elemento de instrucción JSON](#duplicateelement)
  + [Falta el elemento de versión JSON](#missing-version)

## Solución de problemas con el editor visual
<a name="troubleshoot_policies-viseditor"></a>

Al crear o editar una política administrada por el cliente, puede utilizar la información del editor **Visual** como ayuda para solucionar errores de la política. Para ver un ejemplo de cómo utilizar el editor para crear una política, consulte [Control del acceso a identidades](access_controlling.md#access_controlling-identities).

### Reestructuración de políticas
<a name="troubleshoot_viseditor-restructure"></a>

Cuando crea una política, AWS valida los procesos y transforma la política antes de almacenarla. Cuando se recupera la política, AWS la transforma de nuevo a un formato legible para humanos sin cambiar los permisos. Esto puede generar diferencias en lo que aparece en el editor visual de la política o en la pestaña **JSON**.
+ Se puede agregar, reordenar o eliminar bloques de permisos del editor visual y optimizar el contenido de un bloque.
+ En la pestaña **JSON** puede que se hayan eliminado los espacios en blanco y que se hayan reordenado los elementos de los mapas JSON. Además, los ID de la Cuenta de AWS en los elementos principales se pueden reemplazar por el nombre de recurso de Amazon (ARN) del Usuario raíz de la cuenta de AWS.

Debido a estos posibles cambios, no debe comparar los documentos de política JSON como cadenas.

Al crear una política administrada por el cliente en la Consola de administración de AWS, puede decidir trabajar únicamente en el editor **JSON**. Si nunca cambia la política en el editor **visual** y selecciona **Siguiente** en el editor **JSON**, es menos probable que se reestructure la política. Al utilizar el editor **visual**, IAM podría reestructurar la política para mejorar su aspecto. Esta reestructuración se produce únicamente en su sesión de edición y no se guarda automáticamente.

Si la política se ha reestructurado en su sesión de edición, IAM determina si debe guardar la reestructuración en función de las siguientes situaciones:


| Uso de esta opción del editor | Si edita la política | Y luego seleccione ***Siguiente*** en esta pestaña | Cuando elige ***Save changes (Guardar cambios)*** | 
| --- | --- | --- | --- | 
| Visual | Editado | Visual | La política se reestructura | 
| Visual | Editado | JSON | La política se reestructura | 
| Visual | No editado | Visual | La política se reestructura | 
| JSON | Editado | Visual | La política se reestructura | 
| JSON | Editado | JSON | La estructura de la política no cambia | 
| JSON | No editado | JSON | La estructura de la política no cambia | 

IAM podría reestructurar políticas complejas o políticas que tengan bloques de permisos o instrucciones que permitan varios servicios, tipos de recursos o claves de condición.

### Selección del ARN de un recurso en el editor visual
<a name="troubleshoot_policies-resource-arn"></a>

Cuando crea o edita una política con el editor visual, primero debe elegir un servicio y, a continuación, elegir las acciones de dicho servicio. Si el servicio y las acciones que ha seleccionado permiten elegir [recursos específicos](access_controlling.md#access_controlling-resources), el editor visual muestra una lista de los tipos de recursos admitidos. A continuación, puede elegir **Add ARN (Agregar ARN)** para proporcionar los detalles del recurso. Puede elegir entre las siguientes opciones para añadir un ARN para un tipo de recurso.
+ **Utilizar el creador de ARN**: es posible que vea diferentes campos para crear su ARN en función del tipo de recurso. También puede elegir **Any (Cualquiera)** para proporcionar permisos para cualquier valor de la opción especificada. Por ejemplo, si ha seleccionado el grupo de nivel de acceso **Read (Lectura)** de Amazon EC2, las acciones de la política permiten el tipo de recurso `instance`. Proporcione los valores de **Región**, **Cuenta** e **ID de instancia** para el recurso. La política concede permisos para todas las instancias de su cuenta si proporciona el ID de cuenta y elige **Cualquiera** para ID de instancia y Región.
+ **Escribir o pegar el ARN**: puede especificar los recursos por su [Nombre de recurso de Amazon (ARN)](reference_identifiers.md#identifiers-arns). Puede incluir un carácter comodín (**\$1**) en cualquier campo del ARN (entre cada par de dos puntos). Para obtener más información, consulte [Elementos de política JSON de IAM: Resource](reference_policies_elements_resource.md).

### Denegación de permisos en el editor visual
<a name="troubleshoot_policies-switch-deny"></a>

De forma predeterminada, la política que crea utilizando el editor visual permite las acciones que usted elija. Para denegar las acciones elegidas, seleccione **Switch to deny permissions (Cambiar a denegar permisos)**. Dado que las solicitudes *se deniegan de forma predeterminada*, recomendamos que conceda permisos solo para aquellas acciones y recursos que un usuario necesita. Debe crear una instrucción de denegación solo si desea invalidar por separado un permiso que permita otra instrucción o política. Le recomendamos que limite al mínimo el número de operaciones de denegación de permisos, ya que pueden aumentar la dificultad de solucionar problemas con los permisos. Para obtener más información acerca de cómo IAM evalúa la lógica de las políticas, consulte [Lógica de evaluación de políticas](reference_policies_evaluation-logic.md).

**nota**  
De forma predeterminada, solo el Usuario raíz de la cuenta de AWS tiene acceso a todos los recursos de esa cuenta. Por lo tanto, si no ha iniciado sesión como usuario raíz, debe disponer de permisos concedidos por una política.

### Especificación de varios servicios en el editor visual
<a name="troubleshoot_policies-multiple-services"></a>

Cuando utiliza el editor visual para crear una política, puede seleccionar solo un servicio a la vez. Se trata de una práctica recomendada, ya que el editor visual le permite elegir acciones para ese único servicio. Seguidamente, deberá elegir los recursos admitidos por dicho servicio y las acciones seleccionadas. Esto facilita la creación de la política y la resolución de problemas. 

También puede utilizar un carácter comodín (\$1) para especificar de forma manual varios servicios. Por ejemplo, escriba **Code\$1** para proporcionar permisos para todos los servicios que comiencen por `Code`, como `CodeBuild` y `CodeCommit`. Sin embargo, debe especificar los ARN de las acciones y los recursos para completar su política. Además, al guardar la política, esta podría [reestructurarse](#troubleshoot_viseditor-restructure) para incluir cada servicio en un bloque de permisos distinto.

O bien, si desea utilizar sintaxis JSON (por ejemplo, caracteres comodín) para los servicios, cree, edite y guarde la política utilizando la opción **JSON** del editor.

### Reducción del tamaño de su política en el editor visual
<a name="troubleshoot_policy-size"></a>

Cuando se utiliza el editor visual para crear una política, IAM crea un documento JSON para almacenar la política. Puede ver este documento cambiando a la opción **JSON** del editor. Si este documento JSON supera el límite de tamaño de una política, el editor visual muestra un mensaje de error. No podrá revisar ni guardar la política. Para ver la limitación de IAM del tamaño de una política administrada, consulte [Límites de caracteres de IAM y STS](reference_iam-quotas.md#reference_iam-quotas-entity-length). 

Para reducir el tamaño de su política en el editor visual, edite la política o mueva bloques de permiso a otra política. El mensaje de error incluye la cantidad de caracteres que contiene su documento de política. Puede utilizar esta información para reducir el tamaño de su política.

### Corrección de servicios, acciones o tipos de recurso no reconocidos en el editor visual
<a name="troubleshoot_policies-unrecognized-visual"></a>

Es posible que vea una advertencia en el editor visual que le indique que su política incluye un servicio, una acción o un tipo de recurso no reconocido.

**nota**  
IAM comprueba los nombres de los servicios, las acciones y los tipos de recurso para los servicios que admiten resúmenes de políticas. Sin embargo, el resumen de política podría incluir algún valor de recurso o condición que no exista. Pruebe siempre las políticas con el [simulador de políticas](access_policies_testing-policies.md).

Si la política incluye servicios, acciones o tipos de recurso no reconocidos, se debe a uno de los siguientes errores:
+ **Servicio de vista previa** – Los servicios en vista previa no admiten el editor visual. Si participa en la vista previa, debe especificar de forma manual los ARN de las acciones y los recursos para completar la política. Puede ignorar cualquier advertencia y continuar. También puede elegir la opción **JSON** del editor para escribir o pegar un documento de política de JSON.
+ **Servicio personalizado** – Los servicios personalizados no admiten el editor visual. Si utiliza un servicio personalizado, debe especificar de forma manual los ARN de las acciones y los recursos para completar la política. Puede ignorar cualquier advertencia y continuar. También puede elegir la opción **JSON** del editor para escribir o pegar un documento de política de JSON.
+ **El servicio no admite el editor visual**: si su política incluye un servicio disponible de manera general (GA) que no admite el editor visual, debe especificar de forma manual los ARN de las acciones y los recursos para completar la política. Puede ignorar cualquier advertencia y continuar. También puede elegir la opción **JSON** del editor para escribir o pegar un documento de política de JSON. 

  Los servicios disponibles en general son servicios puestos a disposición del público y no son servicios de vista previa ni personalizados. Si un servicio no reconocido está disponible con carácter general y el nombre está escrito correctamente, entonces el servicio no admite el editor visual. Para saber cómo solicitar que se admita el editor visual o el resumen de políticas para un servicio disponible con carácter general, consulte [El servicio no admite resúmenes de políticas de IAM](#unsupported-services-actions).
+ **La acción no admite el editor visual**: si su política incluye un servicio admitido con una acción no admitida, debe especificar de forma manual los ARN de las acciones y los recursos para completar la política. Puede ignorar cualquier advertencia y continuar. También puede elegir la opción **JSON** del editor para escribir o pegar un documento de política de JSON.

  Si la política incluye un servicio admitido con una acción no admitida, entonces el servicio no admite el editor visual en su totalidad. Para saber cómo solicitar que se admita el editor visual o el resumen de políticas para un servicio disponible con carácter general, consulte [El servicio no admite resúmenes de políticas de IAM](#unsupported-services-actions).
+ **El tipo de recurso no admite el editor visual** – Si la política incluye una acción admitida con un tipo de recurso no admitido, puede omitir la advertencia y continuar. Sin embargo, IAM no puede confirmar que ha incluido recursos para todas las acciones seleccionadas y es posible que vea advertencias adicionales.
+ **Error tipográfico** – Cuando especifica manualmente un servicio, acción o recurso en el editor visual, puede crear una política que incluya un error tipográfico. Le recomendamos que utilice el editor visual seleccionando de la lista de servicios y acciones. Luego, complete la sección de recursos de acuerdo con las indicaciones. Si un servicio no admite plenamente el editor visual, es posible que tenga que especificar de forma manual algunas partes de la política. 

  Si está seguro de que la política no contiene ninguno de los errores previamente mencionados, es posible que la política tenga un error tipográfico. Compruebe los problemas siguientes:
  + Nombres de servicios, acciones y tipos de recursos mal escritos, como por ejemplo, `s2` en lugar de `s3` o `ListMyBuckets` en lugar de `ListAllMyBuckets`
  + Texto innecesario en los ARN, como `arn:aws:s3: : :*`
  + Dos puntos faltantes en acciones, como `iam.CreateUser`

  Puede evaluar una política que es posible que incluya errores tipográficos si selecciona **Siguiente** para revisar el resumen de política. Luego, confirme si la política proporciona los permisos deseados.

## Solución de problemas con resúmenes de política
<a name="troubleshoot_policies-polsum"></a>

Puede diagnosticar y resolver problemas relacionados con los resúmenes de políticas.

### Resumen de la política que falta
<a name="missing-policy-summary"></a>

La consola de IAM incluye tablas de *resumen de política* que describen el nivel de acceso, los recursos y las condiciones permitidos o rechazados para cada servicio de una política. Las políticas se resumen en tres tablas: el [resumen de política](access_policies_understand-policy-summary.md), el [resumen de servicio](access_policies_understand-service-summary.md) y el [resumen de acción](access_policies_understand-action-summary.md). La tabla *resumen de política* incluye una lista de servicios y resúmenes de los permisos que la política elegida define. Puede ver el [resumen de política](access_policies_understand.md) de cualquier política que esté asociada a una entidad en la página **Detalles de la política** correspondiente a esa política. Puede ver el resumen de política de las políticas administradas en la página **Policies (Políticas)**. Si AWS no puede representar un resumen de una política, verá el documento de la política JSON y recibirá el siguiente error:

**No se puede generar un resumen para esta política. Pero puede ver o editar el documento de la política JSON.**

Si la política no incluye un resumen, se debe a que se ha producido uno de los siguientes errores:
+ **Elemento de política no admitido** – IAM no es compatible con la generación de resúmenes de políticas que incluyan uno de los siguientes [elementos de política](reference_policies_elements.md):
  + `Principal`
  + `NotPrincipal`
  + `NotResource`
+ **Sin permisos de política** – Si una política no proporciona permisos eficaces, no se podrá generar el resumen de política. Por ejemplo, si una política incluye una única instrucción con el elemento `"NotAction": "*"`, entonces concede el acceso a todas las acciones excepto "todas las acciones" (\$1). Lo que significa que no otorga acceso `Deny` o `Allow` a nada.
**nota**  
Tenga cuidado al utilizar estos elementos de política como `NotPrincipal`, `NotAction` y `NotResource`. Para obtener más información sobre el uso de elementos de política, consulte [Referencia de los elementos de la política de JSON de IAM](reference_policies_elements.md).

  Si proporciona servicios y recursos que no coinciden, puede crear una política que no proporcione permisos eficaces. Esto puede ocurrir cuando especifica acciones de un servicio y los recursos de otro servicio. En ese caso, el resumen de la política no aparece. La única indicación de que existe un problema es que la columna de recursos en el resumen puede incluir un recurso de otro servicio. Si esta columna incluye un recurso no coincidente, debe comprobar que la política no tiene errores. Pruebe sus políticas con el [simulador de políticas](access_policies_testing-policies.md) para comprenderlas mejor.

### El resumen de la política incluye servicios, acciones o tipos de recurso no reconocidos
<a name="unrecognized-services-actions"></a>

En la consola de IAM, si un [resumen de política](access_policies_understand.md) incluye un símbolo de advertencia (![\[Warning hazard sign icon with yellow triangle background.\]](http://docs.aws.amazon.com/es_es/IAM/latest/UserGuide/images/console-alert-icon.console.png)), es posible que la política incluya un servicio, una acción o un tipo de recurso no reconocido. Para obtener más información acerca de las advertencias dentro de un resumen de política, consulte [Resumen de política (lista de servicios)](access_policies_understand-policy-summary.md). 

**nota**  
IAM comprueba los nombres de los servicios, las acciones y los tipos de recurso para los servicios que admiten resúmenes de políticas. Sin embargo, el resumen de política podría incluir algún valor de recurso o condición que no exista. Pruebe siempre las políticas con el [simulador de políticas](access_policies_testing-policies.md).

Si la política incluye servicios, acciones o tipos de recurso no reconocidos, se debe a uno de los siguientes errores:
+ **Servicio de vista previa** – Los servicios en vista previa no admiten resúmenes de política.
+ **Servicio personalizado** – Los servicios personalizados no admiten resúmenes de políticas.
+ **El servicio no admite resúmenes** – Si su política incluye un servicio disponible de manera general (GA) que no admite resúmenes de políticas, el servicio se incluye en la sección **Servicios no reconocidos** de la tabla de resumen de la política. Los servicios disponibles en general son servicios puestos a disposición del público y no son servicios de vista previa ni personalizados. Si un servicio no reconocido está disponible en general y el nombre está escrito correctamente, entonces el servicio no admite resúmenes de políticas de IAM. Para aprender a solicitar soporte de resumen de políticas para un servicio de disponibilidad general, consulte [El servicio no admite resúmenes de políticas de IAM](#unsupported-services-actions).
+ **La acción no admite resúmenes** – Si la política incluye un servicio admitido con una acción no admitida, la acción se incluye en la sección **Acciones no reconocidas** de la tabla de resumen de servicio. Para obtener más información acerca de las advertencias dentro de un resumen de servicio, consulte [Resumen de servicios (lista de acciones)](access_policies_understand-service-summary.md).
+ **El tipo de recurso no admite resúmenes** – Si la política incluye una acción admitida con un tipo de recurso no admitido, el recurso se incluye en la sección **Tipos de recursos no reconocidos** de la tabla de resumen de servicio. Para obtener más información acerca de las advertencias dentro de un resumen de servicio, consulte [Resumen de servicios (lista de acciones)](access_policies_understand-service-summary.md).
+ **Tipografía** – AWS comprueba que el JSON es sintácticamente correcto y que la política no incluye errores tipográficos u otros errores como parte de la [validación de políticas](access_policies_policy-validator.md).

**nota**  
Como [práctica recomendada](best-practices.md), le sugerimos utilizar IAM Access Analyzer para validar sus políticas de IAM y así garantizar la seguridad y funcionalidad de los permisos. Recomendamos que abra las políticas existentes y revise y resuelva cualquier recomendación de validación de políticas.

### El servicio no admite resúmenes de políticas de IAM
<a name="unsupported-services-actions"></a>

Es posible que los resúmenes de políticas de IAM o el editor visual no admitan un servicio o una acción disponible de manera general (GA). Los servicios disponibles en general son servicios puestos a disposición del público y no son servicios de vista previa ni personalizados. Si un servicio no reconocido está disponible con carácter general y el nombre está escrito correctamente, entonces el servicio no admite estas características. Si la política incluye un servicio admitido con una acción no admitida, entonces el servicio no admitirá totalmente los resúmenes de políticas de IAM.

**Para solicitar que un servicio añada soporte para el resumen de políticas de IAM o el editor visual**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Localice la política que incluye el servicio no admitido:
   + Si la política es una política administrada, seleccione **Policies (Políticas)** en el panel de navegación. En la lista de políticas, seleccione el nombre de la política que desea ver.
   + Si la política es una política en línea asociada al usuario, seleccione **Users (Usuarios)** en el panel de navegación. En la lista de usuarios, seleccione el nombre del usuario cuya política desea ver. En la tabla de políticas para el usuario, expanda el encabezado del resumen de política que desea ver.

1. A la izquierda del pie de página de la Consola de administración de AWS, seleccione **Feedback (Valoración)**. En el cuadro **Comentarios para IAM**, escriba **I request that the <ServiceName> service add support for IAM policy summaries and the visual editor**. Si quiere que más de un servicio admita los resúmenes, escriba **I request that the <ServiceName1>, <ServiceName2>, and <ServiceName3> services add support for IAM policy summaries and the visual editor**.

**Para solicitar que un servicio añada soporte para el resumen de política de IAM para una acción faltante**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Localice la política que incluye el servicio no admitido:
   + Si la política es una política administrada, seleccione **Policies (Políticas)** en el panel de navegación. En la lista de políticas, seleccione el nombre de la política que desea ver.
   + Si la política es una política en línea asociada al usuario, seleccione **Users (Usuarios)** en el panel de navegación. En la lista de usuarios, seleccione el nombre del usuario cuya política desea ver. En la tabla de políticas para el usuario, seleccione el nombre de la política que quiere ver para expandir el resumen de política.

1. En el resumen de política, elija el nombre del servicio que incluye una acción no compatible.

1. A la izquierda del pie de página de la Consola de administración de AWS, seleccione **Feedback (Valoración)**. En el cuadro **Comentarios para IAM**, escriba **I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName> action**. Si quiere notificar más de una acción no admitida, escriba **I request that the <ServiceName> service add IAM policy summary and the visual editor support for the <ActionName1>, <ActionName2>, and <ActionName3> actions**. 

Para solicitar que un servicio diferente incluya las acciones que faltan, repita los últimos tres pasos.

### Mi política no concede los permisos esperados
<a name="policy-summary-not-grant-permissions"></a>

Para asignar permisos a un usuario, grupo, rol o recurso, puede crear una *política*, que es un documento que define permisos. El documento de políticas incluye los siguientes elementos:
+ **Efecto** – Indica si la política permite o deniega acceso.
+ **Acción** – La lista de acciones permitidas o denegadas por la política
+ **Recurso** – La lista de recursos en los que pueden producirse las acciones
+ **Condición** (opcional) – Las circunstancias en las que la política concede permisos

Para obtener más información sobre este y otros elementos de políticas, consulte [Referencia de los elementos de la política de JSON de IAM](reference_policies_elements.md). 

Para conceder acceso, la política debe definir una acción con un recurso admitido. Si la política también incluye una condición, esta debe contener una [clave de condición global](reference_policies_condition-keys.md) o ser aplicable a la acción. Para saber qué recursos admite una acción, consulte la [documentación de AWS](https://docs.aws.amazon.com/) de su servicio. Para saber qué condiciones admite una acción, consulte [Acciones, recursos y claves de condición de los servicios de AWS](reference_policies_actions-resources-contextkeys.html).

Compruebe si su política define una acción, un recurso o una condición que no otorgan permisos. Consulte el [resumen de política](access_policies_understand-policy-summary.md) de su política mediante la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/). Puede utilizar resúmenes de políticas para identificar y corregir problemas en su política.

Hay varias razones por las que un elemento puede no estar concediendo permisos a pesar de que se define en la política de IAM:
+ [**Se ha definido una acción sin un recurso aplicable**](#mismatch_action-no-resource)
+ [**Se ha definido un recurso sin una acción aplicable**](#mismatch_resource-no-action)
+ [**Se ha definido una condición sin una acción aplicable**](#mismatch_condition-no-match)

Para ver ejemplos de resúmenes de políticas que incluyen advertencias, consulte [Resumen de política (lista de servicios)](access_policies_understand-policy-summary.md).

#### Se define una acción sin un recurso aplicable
<a name="mismatch_action-no-resource"></a>

La política que aparece a continuación define todas las acciones `ec2:Describe*` y define un recurso específico. Ninguna de las acciones `ec2:Describe` se conceden porque ninguna de ellas admite permisos de nivel de recursos. Los permisos de nivel de recursos implican que la acción admite recursos que utilicen los [ARN](reference_identifiers.md#identifiers-arns) en el elemento [`Resource`](reference_policies_elements_resource.md) de la política. Si una acción no admite permisos de nivel de recursos, dicha instrucción en la política debe utilizar un comodín (`*`) en el elemento `Resource`. Para saber qué servicios de admiten permisos en el nivel de recursos, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:Describe*",
            "Resource": "arn:aws:ec2:us-east-2:111122223333:instance/*"
        }
    ]
}
```

------

Esta política no concede permisos y la política de resumen incluye los siguientes errores:

`This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para solucionar esta política, debe utilizar `*` en el elemento `Resource`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
    }]
}
```

------

#### Se define un recurso sin una acción aplicable
<a name="mismatch_resource-no-action"></a>

La política de recursos que aparece a continuación define un bucket de Amazon S3, pero no incluye una acción de S3 que pueda llevarse a cabo en dicho recurso. Esta política también concede acceso completo a todas las acciones de Amazon CloudFront.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
        "Effect": "Allow",
        "Action": "cloudfront:*",
        "Resource": [
            "arn:aws:cloudfront:*",
            "arn:aws:s3:::amzn-s3-demo-bucket"
        ]
        }
    ]
}
```

------

Esta política concede permisos para todas las acciones de CloudFront. Sin embargo, como la política define el recurso de S3 `amzn-s3-demo-bucket` sin definir ninguna acción de S3, el resumen de política incluye la siguiente advertencia:

`This policy defines some actions, resources, or conditions that do not provide permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para solucionar esta política con el fin de proporcionar permisos del bucket de S3, debe definir acciones de S3 que puedan llevarse a cabo en un recurso de bucket.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudfront:*",
                "s3:CreateBucket",
                "s3:ListBucket*",
                "s3:PutBucket*",
                "s3:GetBucket*"
            ],
            "Resource": [
                "arn:aws:cloudfront:*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }
    ]
}
```

------

Otra opción para corregir esta política de modo que proporcione solo permisos de CloudFront es eliminar el recurso de S3.

#### Se define una condición sin una acción aplicable
<a name="mismatch_condition-no-match"></a>

La política siguiente define dos acciones de Amazon S3 para todos los recursos de S3, si el prefijo de S3 es `custom` y el ID de la versión es `1234`. Sin embargo, la clave de condición `s3:VersionId` se utiliza para etiquetar la versión de los objetos y no es admitida por las acciones definidas por el bucket. Para conocer qué condiciones admite una acción, consulte [Actions, Resources, and Condition Keys for AWS Services](https://docs.aws.amazon.com/service-authorization/latest/reference/reference_policies_actions-resources-contextkeys.html) y seleccione el servicio a fin de ver la documentación del servicio para las claves de condición.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "custom"
                    ],
                    "s3:VersionId": [
                        "1234"
                    ]
                }
            }
        }
    ]
}
```

------

Esta política concede permisos para las acciones `s3:ListBucketVersions` y `s3:ListBucket` si el nombre del bucket incluye el `custom` prefijo. Sin embargo, como la condición `s3:VersionId` no es compatible con ninguna de las acciones definidas, el resumen de políticas incluye el siguiente error:

`This policy does not grant any permissions. To grant access, policies must have an action that has an applicable resource or condition.`

Para corregir esta política y que utilice el etiquetado de versiones de objetos de S3, debe definir una acción de S3 admita la clave de condición `s3:VersionId`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:GetObjectVersion"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": [
                        "custom"
                    ],
                    "s3:VersionId": [
                        "1234"
                    ]
                }
            }
        }
    ]
}
```

------

Esta política concede permisos para cada acción y condición de sí misma. Sin embargo, la política sigue sin conceder permisos porque no hay un caso en el que una única acción coincida con ambas condiciones. En su lugar, debe crear dos instrucciones independientes, y cada una debe incluir únicamente acciones con las condiciones a las que son aplicables.

Para corregir esta política, cree dos instrucciones. La primera instrucción incluye las acciones que admiten la condición `s3:prefix` y la segunda incluye las acciones que admiten la condición `s3:VersionId`.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucketVersions",
                "s3:ListBucket"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:prefix": "custom"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "s3:GetObjectVersion",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "s3:VersionId": "1234"
                }
            }
        }
    ]
}
```

------

## Solución de problemas de administración de políticas
<a name="troubleshoot_policies-policy-manage"></a>

Puede diagnosticar y resolver problemas relacionados con la administración de políticas.

### Asociar o desvincular una política en una cuenta de IAM
<a name="troubleshoot_roles_cant-attach-detach-policy"></a>

Algunas políticas administradas de AWS están vinculadas a un servicio. Estas políticas se utilizan únicamente con un [rol vinculado a un servicio](id_roles.md#iam-term-service-linked-role) de dicho servicio. En la consola de IAM, cuando se visualiza la página **Detalles de la política**, dicha página incluye un banner para indicar que la política está vinculada a un servicio. No puede adjuntar esta política a un usuario, grupo o rol en IAM. Si crea un rol vinculado al servicio para este servicio, esta política se adjunta automáticamente al nuevo rol. Dado que la política es necesaria, no puede separar la política del rol vinculado al servicio. 

### Cambio de las políticas para las identidades de IAM en función de su actividad
<a name="troubleshoot_change-policies-based-on-activity"></a>

Puede actualizar políticas para sus identidades de IAM (usuarios, grupos y roles) en función de su actividad. Para ello, vea los eventos de su cuenta en el **Historial de eventos** de CloudTrail. Los registros de eventos de CloudTrail de incluyen información detallada que usted puede utilizar para cambiar los permisos de la política.

**Un usuario o rol intenta realizar una acción en AWS y dicha solicitud se deniega.**  
Considere si el usuario o rol deben tener permiso para ejecutar la acción. En tal caso, puede añadir a su política la acción e incluso el ARN del recurso al que ha intentado el acceso.

**Un usuario o rol tiene permisos que no se utilizan.**  
Considere la posibilidad de eliminar esos permisos de su política. Asegúrese de que sus políticas concedan el [privilegio mínimo](best-practices.md#grant-least-privilege) que es necesario para realizar únicamente las acciones necesarias.

Para obtener más información acerca del uso de CloudTrail, consulte [Ver eventos de CloudTrail en la consola de CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events-console.html) en la *Guía del usuario de AWS CloudTrail*.

## Solución de problemas con documentos de políticas JSON
<a name="troubleshoot_policies-json"></a>

Puede diagnosticar y resolver problemas relacionados con documentos de políticas JSON.

### Validar sus políticas
<a name="usepolicyvalidation"></a>

 Al crear o editar una política JSON, IAM puede llevar a cabo la validación de políticas para poder crear una política eficaz. IAM identifica errores de sintaxis JSON, mientras que Analizador de acceso de IAM proporciona verificaciones de políticas adicionales con recomendaciones para poder perfeccionar aún más las políticas. Para obtener más información acerca la validación de políticas, consulte [Validación de la política de IAM](access_policies_policy-validator.md). Para obtener más información acerca de las verificaciones de políticas de IAM Access Analyzer y las recomendaciones procesables, consulte [Validación de políticas de IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html). 

### No tengo permisos para validación de políticas en el editor de JSON
<a name="nopermsforpolicyvalidation"></a>

En Consola de administración de AWS, puede recibir el siguiente error si no tiene permisos para ver los resultados de validación de políticas de IAM Access Analyzer:

`You need permissions. You do not have the permissions required to perform this operation. Ask your administrator to add permissions.`

Para solucionar este error, pida al administrador que añada el permiso `access-analyzer:ValidatePolicy` para usted.

### Más de un objeto de política JSON
<a name="morethanonepolicyblock"></a>

Una política de IAM debe contar con un solo objeto JSON. Los objetos se indican incluyéndolos en llaves \$1 \$1. Puede anidar otros objetos en un objeto JSON incorporando llaves (\$1\$1) adicionales en el par externo. Una política debe contener solo un par externo de llaves (\$1\$1). El siguiente ejemplo es incorrecto porque contiene dos objetos en la parte superior (indicados en *rojo*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": 
      {
         "Effect":"Allow",
         "Action":"ec2:Describe*",
         "Resource":"*"
      }
    }
    { 
      "Statement": {
         "Effect": "Allow",
         "Action": "s3:*",
         "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

Sin embargo, podría satisfacer la intención del ejemplo anterior con el uso de la gramática de políticas correcta. En lugar de incluir dos objetos de política completos, cada uno con su propio elemento `Statement`, puede combinar los dos bloques en un único elemento `Statement`. El elemento `Statement` tiene una matriz de dos objetos como valor, tal y como se muestra en el ejemplo siguiente (destacado en **negrita**): 

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ec2:Describe*",
          "Resource":"*"
        },
        {
          "Effect": "Allow",
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
      ]
    }
```

------

### Más de un elemento de instrucción JSON
<a name="morethanonestatement"></a>

A simple vista, este error podría parecer una variante del error de la sección anterior. Sin embargo, es un tipo de error diferente desde el punto de vista sintáctico. En el siguiente ejemplo solo hay un objeto de política tal como indica el único par de llaves \$1 \$1 en el nivel superior. Sin embargo, ese objeto contiene dos elementos `Statement` en su interior.

 Una política de IAM debe contener solo un elemento `Statement`, que consta del nombre (`Statement`) que aparece a la izquierda de un carácter de punto y coma, seguido de su valor a la derecha. El valor de un elemento `Statement` debe ser un objeto, identificado por llaves \$1 \$1, que contiene un elemento `Effect`, un elemento `Action` y un elemento `Resource`. El siguiente ejemplo es incorrecto porque contiene dos elementos `Statement` en el objeto de política (destacado en *rojo*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
      },
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

Un objeto de valor puede ser un conjunto de varios objetos de valor. Para solucionar este problema, combine los dos elementos `Statement` en un elemento con una matriz de objetos, tal y como se muestra en el ejemplo siguiente (destacado en **negrita**):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "ec2:Describe*",
          "Resource":"*"
        },
        {
          "Effect": "Allow",
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
     ]
    }
```

------

El valor del elemento `Statement` es una matriz de objetos. La matriz del ejemplo se compone de dos objetos, cada uno de los cuales es un valor correcto para un elemento `Statement`. Cada objeto de la matriz está separado por comas.

### Más de un elemento de efecto, acción o recurso en un elemento de instrucción JSON
<a name="duplicateelement"></a>

En el lado del valor del par nombre/valor `Statement`, el objeto debe constar de un único elemento `Effect`, un elemento `Action` y un elemento `Resource`. La siguiente política es incorrecta porque contiene dos elementos `Effect` en la `Statement`:

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Deny",
        "Effect": "Allow",     
        "Action": "ec2:* ",
        "Resource": "*"
      }
    }
```

------

**nota**  
El motor de políticas no permite este tipo de errores en políticas nuevas o editadas. Sin embargo, el motor de políticas continúa aceptando las políticas que se guardaron antes de que se actualizara el motor. El comportamiento de las políticas existentes ante este error es el siguiente:  
Varios elementos `Effect`: solo se considera el último elemento `Effect`. Los demás se omiten.
Varios elementos `Action`: todos los elementos `Action` se combinan de manera interna y se tratan como una lista individual.
Varios elementos `Resource`: todos los elementos `Resource` se combinan de manera interna y se tratan como una lista individual.
El motor de políticas no le permite guardar ninguna política con errores sintácticos. Corrija los errores en la política antes de guardar. Revise y corrija cualquier recomendación de [validación de políticas](access_policies_policy-validator.md) para sus políticas.

 En todos los casos, la solución es eliminar el elemento adicional incorrecto. Para los elementos `Effect`, está claro: si desea que en el ejemplo anterior se *denieguen* los permisos para las instancias de Amazon EC2, deberá eliminar la línea `"Effect": "Allow",` de la política tal y como se indica a continuación:

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Deny",
        "Action": "ec2:*",
        "Resource": "*"
      }
    }
```

------

Sin embargo, si el elemento duplicado es `Action` o `Resource`, la solución puede complicarse. Puede disponer de varias acciones para las que desea permitir (o denegar) permisos o puede que quiera controlar el acceso a varios recursos. El siguiente ejemplo es incorrecto porque tiene varios elementos `Resource` (destacados en *rojo*):

------
#### [ JSON ]

****  

```
{
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
      }
    }
```

------

Cada uno de los elementos necesarios en un objeto de valor del elemento `Statement` puede estar presente solo una vez. La solución consiste en colocar cada valor en una matriz. El siguiente ejemplo lo muestra al convertir los dos elementos de recursos independientes en un elemento `Resource` con una matriz como objeto de valor (destacado en **negrita**):

------
#### [ JSON ]

****  

```
{	
      "Version":"2012-10-17",		 	 	 
      "Statement": {
        "Effect": "Allow",
        "Action": "s3:*",
        "Resource": [
          "arn:aws:s3:::amzn-s3-demo-bucket",
          "arn:aws:s3:::amzn-s3-demo-bucket/*"
        ]
      }
    }
```

------

### Falta el elemento de versión JSON
<a name="missing-version"></a>

El elemento de política `Version` es diferente de la versión de una política. El elemento de política `Version` se utiliza en una política y define la versión del lenguaje de la política. En comparación, una versión de política se crea al cambiar una política administrada por el cliente en IAM. La política modificada no anula la política existente. En cambio, IAM crea una nueva versión de la política administrada. Para obtener más información sobre el elemento de política `Version`, consulte [Elementos de política JSON de IAM: Version](reference_policies_elements_version.md). Para obtener más información sobre las versiones de política, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md).

A medida que evolucionan las características de AWS, se añaden nuevas funciones a las políticas de IAM para respaldar dichas características. A veces, una actualización en la sintaxis de la política incluye un número de versión nuevo. Si utiliza las características más nuevas de la política gramatical en la política, debe indicarle al motor de análisis de políticas la versión que está utilizando. La versión predeterminada de la política es "2008-10-17". Si desea utilizar una característica de la política introducida más tarde, entonces deberá especificar el número de versión compatible con la característica que desee. Le recomendamos que incluya *siempre* el número de versión de la sintaxis de política más reciente, que actualmente es `"Version": "2012-10-17"`. Por ejemplo, la siguiente política es incorrecta pues utiliza una variable de política `${...}` en el ARN de un recurso. Sin embargo, no especifica una versión de sintaxis de política que admita las variables de política (destacadas en *rojo*):

```
{
  "Statement": 
  {
    "Action": "iam:*AccessKey*",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::123456789012:user/${aws:username}"
  }
}
```

Añadir un elemento `Version` en la parte superior de la política con el valor `2012-10-17`, que es la primera versión de la API de IAM que admite variables de política, soluciona este problema (destacado en **negrita**):

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": 
  {
    "Action": "iam:*AccessKey*",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::123456789012:user/${aws:username}"
  }
}
```

------

# Solucionar problemas con claves de acceso y claves de seguridad FIDO
<a name="troubleshoot_mfa-fido"></a>

Utilice la información que se indica aquí para diagnosticar y solucionar los problemas más frecuentes que surgen cuando se trabaja con claves de seguridad FIDO2.

**Topics**
+ [No puedo habilitar mi clave de seguridad FIDO](#troubleshoot_mfa-fido-cant-enable)
+ [No puedo iniciar sesión con mi clave de seguridad FIDO](#troubleshoot_mfa-fido-signin)
+ [He perdido o he roto la clave de seguridad FIDO](#troubleshoot_mfa-fido-lost)
+ [Otros problemas.](#troubleshoot_mfa-fido-other-issues)

## No puedo habilitar mi clave de seguridad FIDO
<a name="troubleshoot_mfa-fido-cant-enable"></a>

Consulte las siguientes soluciones según sea su estado, usuario de IAM o administrador del sistema

### Usuarios de IAM
<a name="troubleshoot_mfa-fido-cant-enable-iam-user"></a>

Si no puede habilitar su clave de seguridad FIDO, compruebe lo siguiente:
+ ¿Está utilizando una configuración admitida?

  IAM es compatible con dispositivos de seguridad FIDO2 que se conectan a sus dispositivos a través de USB, Bluetooth o NFC. IAM también admite autenticadores de plataforma como TouchID o FaceID. IAM no admite el registro de contraseña local para Windows Hello. Para crear y utilizar contraseñas, los usuarios de Windows deben utilizar la [autenticación entre dispositivos](https://passkeys.dev/docs/reference/terms/#cross-device-authentication-cda), en la que se utiliza una contraseña de un dispositivo, como un dispositivo móvil o una clave de seguridad de hardware, para iniciar sesión en otro dispositivo, como un portátil.

  Para obtener información acerca de los dispositivos y navegadores que puede utilizar con WebAuthn y AWS, consulte [Configuraciones admitidas para usar las claves de acceso y las claves de seguridad](id_credentials_mfa_fido_supported_configurations.md).
+ ¿Está utilizando algún complemento de navegador?

  AWS no es compatible con el uso de complementos para agregar compatibilidad de navegador con WebAuthn. En su lugar, utilice un navegador que ofrezca compatibilidad nativa con el estándar WebAuthn.

  Incluso si está utilizando un navegador compatible, puede tener un complemento que sea incompatible con WebAuthn. Un complemento incompatible puede impedir que pueda activar y utilizar su clave de seguridad compatible con FIDO. Deshabilite todos los complementos que puedan ser incompatibles y reinicie el navegador. Luego, intente volver a habilitar la clave de seguridad FIDO.
+ ¿Tiene los permisos adecuados?

  Si no tiene ninguno de los problemas de compatibilidad anteriores, es posible que no tenga los permisos pertinentes. Póngase en contacto con el administrador del sistema. 

### Administradores de sistemas
<a name="troubleshoot_mfa-fido-cant-enable-sys-admin"></a>

Si los usuarios de IAM no pueden habilitar sus claves de seguridad FIDO a pesar de utilizar una configuración admitida, revise sus permisos. Para un ejemplo detallado, consulte [Tutorial de IAM: permitir a los usuarios administrar sus credenciales y configuración de MFA](tutorial_users-self-manage-mfa-and-creds.md).

## No puedo iniciar sesión con mi clave de seguridad FIDO
<a name="troubleshoot_mfa-fido-signin"></a>

Si no puede iniciar sesión en la Consola de administración de AWS con su clave de seguridad FIDO, consulte primero [Configuraciones admitidas para usar las claves de acceso y las claves de seguridad](id_credentials_mfa_fido_supported_configurations.md). Si utiliza una configuración admitida pero no puede iniciar sesión, póngase en contacto con su administrador del sistema para obtener ayuda. 

## He perdido o he roto la clave de seguridad FIDO
<a name="troubleshoot_mfa-fido-lost"></a>

Se pueden asignar a un usuario hasta **ocho** dispositivos MFA de cualquier combinación de los [tipos de MFA actualmente compatibles](https://aws.amazon.com/iam/features/mfa/). Con varios dispositivos MFA, solo necesita un dispositivo MFA para iniciar sesión en la Consola de administración de AWS. Reemplazar una clave de seguridad FIDO es similar a reemplazar un token TOTP de hardware. Si pierde o rompe cualquier tipo de dispositivo de MFA, consulte [Recuperación de una identidad protegida por MFA en IAM](id_credentials_mfa_lost-or-broken.md).

## Otros problemas.
<a name="troubleshoot_mfa-fido-other-issues"></a>

Si tiene un problema con las claves de seguridad FIDO que no se aborde aquí, siga una de las indicaciones que se indica a continuación:
+ Usuarios de IAM: póngase en contacto con el administrador del sistema.
+ usuarios raíz de Cuenta de AWS: contacte [Soporte de AWS](https://aws.amazon.com/premiumsupport/).

# Solucionar problemas de roles de IAM
<a name="troubleshoot_roles"></a>

Utilice la información que se indica aquí para diagnosticar y solucionar los problemas comunes que puedan surgir cuando trabaje con roles de IAM.

**Topics**
+ [No puedo asumir un rol](#troubleshoot_roles_cant-assume-role)
+ [Un nuevo rol ha aparecido en la cuenta de AWS](#troubleshoot_roles_new-role-appeared)
+ [No logro editar o eliminar un rol en mi Cuenta de AWS](#troubleshoot_roles_cant-edit-delete-role)
+ [No estoy autorizado a realizar la operación: iam: PassRole](#troubleshoot_roles_not-auth-passrole)
+ [¿Por qué no puedo asumir un rol con una sesión de 12 horas? (AWS CLI o API de AWS)](#troubleshoot_roles_cant-set-session)
+ [Recibo un error cuando intento cambiar de rol en la consola de IAM](#troubleshoot_roles_cant-switch-role-console)
+ [Mi función tiene una política que me permite realizar una acción, sin embargo, obtengo "acceso denegado"](#troubleshoot_roles_session-policy)
+ [El servicio no creó la versión de directiva predeterminada del rol](#troubleshoot_serviceroles_edited-policy)
+ [No hay ningún caso de uso para un rol de servicio en la consola](#troubleshoot_serviceroles_console-use-case)

## No puedo asumir un rol
<a name="troubleshoot_roles_cant-assume-role"></a>

Comprueba lo siguiente:
+ Para permitir que los usuarios vuelvan a asumir el rol actual dentro de una sesión de rol, especifique el ARN del rol o el ARN de la Cuenta de AWS como entidad principal en la política de confianza de rol. Los Servicios de AWS que proporcionan recursos de computación, como Amazon EC2, Amazon ECS, Amazon EKS y Lambda, brindan credenciales temporales y las actualizan automáticamente. Esto garantiza que siempre disponga de un conjunto de credenciales válido. Para estos servicios, no es necesario volver a asumir el rol actual a fin de obtener credenciales temporales. Sin embargo, si tiene la intención de aprobar [etiquetas de sesión](id_session-tags.md) o una [política de sesión](access_policies.md#policies_session), tendrá que volver a asumir el rol actual. Para obtener información sobre cómo modificar una política de confianza de roles a fin de agregar el ARN del rol o el ARN de la Cuenta de AWS para la entidad principal, consulte [Actualizar una política de confianza de rol](id_roles_update-role-trust-policy.md).
+ Cuando asume un rol utilizando Consola de administración de AWS, asegúrese de utilizar el nombre exacto de su rol. Los nombres de rol distinguen entre mayúsculas y minúsculas al asumir un rol.
+ Cuando asume un rol utilizando API de AWS STS o AWS CLI, asegúrese de utilizar el nombre exacto de su rol en el ARN. Los nombres de rol distinguen entre mayúsculas y minúsculas al asumir un rol. 
+ Cuando asuma un rol con un proveedor de identidad federado basado en SAML y el cifrado SAML esté habilitado, asegúrese de haber cargado una clave de descifrado privada válida para el proveedor de identidad SAML. Para obtener más información, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).
+ Compruebe que la política de IAM le concede permisos para llamar a `sts:AssumeRole` para el rol que desea asumir. El elemento `Action` de su política de IAM debe permitir llamar a la acción `AssumeRole`. Además, el elemento `Resource` de la política de IAM debe especificar el rol que desea asumir. Por ejemplo, el elemento `Resource` puede especificar un rol utilizando el nombre de recurso de Amazon (ARN) o un comodín (\$1). Por ejemplo, al menos una política aplicable a usted debe conceder permisos similares a los siguientes:

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
  ```
+ Compruebe que su identidad de IAM se etiqueta con las etiquetas que la política de IAM requiere. Por ejemplo, en los siguientes permisos de políticas, el elemento `Condition` requiere que usted, como principal que solicita asumir el rol, tenga una etiqueta específica. Debe ser etiquetados con `department = HR` o `department = CS`. De lo contrario, no puede asumir el rol. Para obtener más información sobre el etiquetado de usuarios y roles de IAM, consulte [Etiquetas para recursos de AWS Identity and Access Management](id_tags.md).

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "*",
      "Condition": {"StringEquals": {"aws:PrincipalTag/department": [
              "HR",
              "CS"
          ]}}
  ```
+ Compruebe que cumple todas las condiciones que se especifican en la política de confianza del rol. Una `Condition` puede especificar una fecha de vencimiento, un ID externo o que una solicitud debe proceder de unas direcciones IP determinadas. Considere el siguiente ejemplo: si la fecha actual es posterior a la fecha especificada, entonces la política nunca coincidirá y no podrá concederle el permiso para asumir el rol.

  ```
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"
      "Condition": {
          "DateLessThan" : {
              "aws:CurrentTime" : "2016-05-01T12:00:00Z"
          }
      }
  ```
+ Compruebe que la Cuenta de AWS desde la que está llamando a `AssumeRole` es una entidad de confianza para el rol que va a tomar. Las entidades de confianza se definen como `Principal` en la política de confianza del rol. El siguiente ejemplo es una política de confianza que está asociada a la función que desea asumir. En este ejemplo, el ID de la cuenta con el usuario de IAM con el que ha iniciado sesión debe ser 123456789012. Si el número de cuenta no está incluido en el elemento `Principal` de la política de confianza del rol, no se puede asumir el rol. No importa los permisos que le otorguen las políticas de acceso. Tenga en cuenta que esta política de ejemplo limita los permisos a acciones que se producen entre el 1 de julio de 2017 y el 31 de diciembre de 2017 (UTC), ambos incluidos. Si inicia sesión antes o después de dichas fechas, entonces la política no coincidirá y no podrá asumir el rol. 

  ```
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::123456789012:root" },
      "Action": "sts:AssumeRole",
      "Condition": {
        "DateGreaterThan": {"aws:CurrentTime": "2017-07-01T00:00:00Z"},
        "DateLessThan": {"aws:CurrentTime": "2017-12-31T23:59:59Z"}
      }
  ```
+ **Identidad de fuente**: los administradores pueden configurar roles para requerir que las identidades pasen una cadena personalizada que identifique a la persona o aplicación que está realizando acciones en AWS, llamados *Identidad de fuente*. Compruebe si el rol que se asume requiere que se establezca una identidad de fuente. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

## Un nuevo rol ha aparecido en la cuenta de AWS
<a name="troubleshoot_roles_new-role-appeared"></a>

Algunos servicios de AWS exigen que utilice un tipo único de rol de servicio vinculado directamente al servicio. El servicio define previamente este [rol vinculado al servicio](id_roles.md#iam-term-service-linked-role) e incluye todos los permisos que el servicio requiere. Esto simplifica la configuración de un servicio porque ya no tendrá que añadir manualmente los permisos necesarios. Para obtener información general acerca de los roles vinculados a servicios, consulte [Creación de un rol vinculado al servicio](id_roles_create-service-linked-role.md).

Es posible que ya esté utilizando un servicio cuando este comience a admitir roles vinculados a servicios. De ser así, es posible que reciba un mensaje de correo electrónico informándole de un nuevo rol en su cuenta. Este rol incluye todos los permisos que el servicio necesita para realizar acciones en su nombre. No es necesario realizar ninguna acción para admitir este rol. Sin embargo, no debe eliminar el rol de su cuenta. Si lo hace, podría eliminar los permisos que el servicio necesita para obtener acceso a los recursos de AWS. Puede consultar los roles vinculados a servicios en su cuenta en cualquier momento a través de la página de **Roles** de IAM de la consola de IAM. Los roles vinculados con servicios aparecen con el texto **(Service-linked role (Función vinculada al servicio))** en la columna **Trusted entities (Entidades de confianza)** de la tabla.

Para obtener información sobre los servicios que admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md) y busque los servicios que tengan **Yes (Sí)**en la columna **Service-Linked Role (Rol vinculado al servicio)**. Para obtener más información acerca del uso de roles vinculados a servicios en un servicio, elija el enlace **Yes (Sí)**.

## No logro editar o eliminar un rol en mi Cuenta de AWS
<a name="troubleshoot_roles_cant-edit-delete-role"></a>

No es posible eliminar ni editar los permisos de un [rol vinculado a un servicio](id_roles.md#iam-term-service-linked-role) desde IAM. Estos roles incluyen permisos y políticas de confianza predefinidos exigidos por el servicio para poder realizar acciones en su nombre. Puede utilizar la consola IAM, la AWS CLI o la API para editar solo la descripción de un rol vinculado a un servicio. Puede consultar los roles vinculados a servicios en su cuenta en cualquier momento a través de la página de **Roles** de IAM de la consola. Los roles vinculados con servicios aparecen con el texto **(Service-linked role (Función vinculada al servicio))** en la columna **Trusted entities (Entidades de confianza)** de la tabla. Un banner en la página **Summary (Resumen)** del rol también indica que es un tipo de rol vinculado a un servicio. Puede administrar y eliminar estos roles vinculados únicamente a través del servicio vinculado, si dicho servicio admite esa acción. Tenga cuidado a la hora de modificar o eliminar roles vinculados a servicios, ya que podría eliminar permisos que el servicio necesita para acceder a los recursos de AWS. 

Para obtener información sobre los servicios que admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md) y busque los servicios que tengan **Yes (Sí)**en la columna **Service-Linked Role (Rol vinculado al servicio)**. 

## No estoy autorizado a realizar la operación: iam: PassRole
<a name="troubleshoot_roles_not-auth-passrole"></a>

Si crea un rol vinculado a un servicio, debe disponer de permiso para transferir ese rol al servicio. Algunos servicios crean automáticamente un rol vinculado a un servicio en su cuenta al realizar una acción en dicho servicio. Por ejemplo, Amazon EC2 Auto Scaling crea el rol vinculado a un servicio `AWSServiceRoleForAutoScaling` automáticamente la primera vez que se crea un grupo de Auto Scaling. Si intenta crear un grupo de Auto Scaling sin el permiso `PassRole`, recibirá el siguiente error:

`ClientError: An error occurred (AccessDenied) when calling the PutLifecycleHook operation: User: arn:aws:sts::111122223333:assumed-role/Testrole/Diego is not authorized to perform: iam:PassRole on resource: arn:aws:iam::111122223333:role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling`

Para solucionar este error, pida al administrador que añada el permiso `iam:PassRole` para usted.

Para saber qué servicios admiten roles vinculados a servicios, consulte [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md). Para saber si un servicio crea automáticamente una función vinculada al servicio por usted, haga clic en el enlace **Yes (Sí)** para consultar la documentación relacionada con las funciones vinculadas a servicios.

## ¿Por qué no puedo asumir un rol con una sesión de 12 horas? (AWS CLI o API de AWS)
<a name="troubleshoot_roles_cant-set-session"></a>

Cuando se utiliza la API de AWS STS de `AssumeRole*` o las operaciones de CLI `assume-role*` para asumir un rol, es posible especificar un valor para el parámetro `DurationSeconds`. Puede especificar un valor comprendido entre 900 segundos (15 minutos) y la **duración máxima de la sesión** para el rol. Si especifica un valor superior al indicado en esta opción, la operación producirá un error. Este ajuste puede tener un valor máximo de 12 horas. Por ejemplo, si especifica una duración de 12 horas para la sesión, pero el administrador establece la duración máxima de la sesión en 6 horas, la operación genera un error. Para obtener información sobre cómo ver el valor máximo para el rol, consulte [Actualizar la duración máxima de la sesión para un rol](id_roles_update-role-settings.md#id_roles_update-session-duration). 

Si utiliza el [*encadenamiento de roles*](id_roles.md#iam-term-role-chaining) (en el que se usa un rol para asumir otro), la sesión tendrá una duración máxima de una hora. Si utiliza a continuación el parámetro `DurationSeconds` para proporcionar un valor superior a una hora, la operación generará un error. 

## Recibo un error cuando intento cambiar de rol en la consola de IAM
<a name="troubleshoot_roles_cant-switch-role-console"></a>

La información que introduzca en la página **Cambiar rol** debe coincidir con la información del rol. De lo contrario, la operación falla y recibirá el siguiente error:

`Invalid information in one or more fields. Check your information or contact your administrator.`

Si recibe este error, confirme que la siguiente información es correcta:
+ **ID de cuenta o alias**: El ID de la Cuenta de AWS es un número de 12 dígitos. Es posible que su cuenta tenga un alias, que es un identificador descriptivo, como el nombre de su empresa, que se puede utilizar en lugar de su ID de Cuenta de AWS. Puede utilizar el ID de cuenta o el alias en este campo.
+ **Nombre de rol** – Los nombres de rol distinguen entre mayúsculas y minúsculas. El Id. de cuenta y el nombre del rol deben coincidir con la configuración del rol.

Si continúa recibiendo un mensaje de error, póngase en contacto con el administrador para verificar la información anterior. La política de confianza de rol o la política de usuario de IAM pueden limitar el acceso. El administrador puede verificar los permisos de estas directivas.

## Mi función tiene una política que me permite realizar una acción, sin embargo, obtengo "acceso denegado"
<a name="troubleshoot_roles_session-policy"></a>

Puede que su sesión de función se vea limitada por las políticas de la sesión. Al [solicitar las credenciales de seguridad temporales](id_credentials_temp_request.md) mediante programación utilizando AWS STS, tiene la opción de pasar las [políticas de sesión](access_policies.md#policies_session) administradas o insertadas. Las políticas de sesión son políticas avanzadas que se pasan como parámetro cuando se crea una sesión de credenciales temporal mediante programación para un rol. Puede transferir un único documento de política de sesión insertada JSON utilizando el parámetro `Policy`. Puede utilizar el parámetro `PolicyArns` para especificar hasta 10 políticas de sesión administrada. Los permisos de la sesión resultantes son la intersección de las políticas basadas en identidades del rol y las políticas de la sesión. De manera alternativa, si el administrador o un programa personalizado le proporcionan credenciales temporales, es posible que hayan incluido una política de sesión para limitar su acceso.

## El servicio no creó la versión de directiva predeterminada del rol
<a name="troubleshoot_serviceroles_edited-policy"></a>

Un rol de servicio es un rol que asume funciones para realizar acciones en su cuenta en su nombre. Al configurar algunos de los entornos de los servicios de AWS, debe definir un rol que el servicio asumirá. En algunos casos, el servicio crea la función de servicio y su política de IAM para usted. Aunque puede modificar o eliminar la función de servicio y su política desde dentro de IAM, AWS no lo recomienda. El rol y la directiva están pensados para su uso exclusivo de ese servicio. Si edita la directiva y configura otro entorno, cuando el servicio intenta utilizar el mismo rol y la misma directiva, la operación puede fallar.

Por ejemplo, cuando se utiliza AWS CodeBuild por primera vez, el servicio crea un rol denominado `codebuild-RWBCore-service-role`. Ese rol de servicio utiliza la directiva denominada `codebuild-RWBCore-managed-policy`. Si edita la directiva, creará una nueva versión y la guardará como la versión predeterminada. Si realiza una operación posterior en AWS CodeBuild, el servicio podría intentar actualizar la directiva. Si lo hace, recibirá el siguiente error:

`codebuild.amazon.com did not create the default version (V2) of the codebuild-RWBCore-managed-policy policy that is attached to the codebuild-RWBCore-service-role role. To continue, detach the policy from any other identities and then delete the policy and the role.`

Si recibe este error, debe realizar cambios en IAM antes de poder continuar con la operación de servicio. En primer lugar, establezca la versión de directiva predeterminada en V1 e intente la operación de nuevo. Si V1 se eliminó anteriormente, o si V1 no funciona, limpie y elimine la política y el rol existentes.

Para obtener más información sobre la edición de directivas administradas, consulte [Edición de políticas administradas por el cliente (Consola)](access_policies_manage-edit-console.md#edit-customer-managed-policy-console). Para obtener más información acerca de las versiones, consulte [Control de versiones de políticas de IAM](access_policies_managed-versioning.md). 

**Para eliminar un rol de servicio y su directiva**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, seleccione **Políticas**.

1. En la lista de políticas, seleccione el nombre de la política que desea ver.

1. Seleccione la pestaña **Entidades asociadas** para ver qué usuarios, grupos o roles de IAM utilizan esta política. Si alguna de estas identidades utiliza la directiva, complete las siguientes tareas:

   1. Cree una nueva directiva administrada con los permisos necesarios. Para asegurarse de que las identidades tienen los mismos permisos antes y después de las acciones, copie el documento de directiva JSON de la directiva existente. Después, cree la nueva política administrada y pegue el documento JSON tal y como se explica en [Creación de políticas mediante el editor JSON](access_policies_create-console.md#access_policies_create-json-editor).

   1. Para cada identidad afectada, adjunte la nueva directiva y, a continuación, desconecte la anterior. Para obtener más información, consulte [Adición y eliminación de permisos de identidad de IAM](access_policies_manage-attach-detach.md).

1. Seleccione **Roles** en el panel de navegación.

1. En la lista de roles, elija el nombre del rol que desea eliminar.

1. Seleccione la ficha **Relaciones de confianza** para ver qué entidades pueden asumir el rol. Si aparece alguna entidad distinta del servicio, complete las siguientes tareas:

   1. [Cree un nuevo rol](id_roles_create_for-user.md#roles-creatingrole-user-console) que confíe en esas entidades.

   1. La política que creó en el paso anterior. Si omitió ese paso, cree ahora la nueva directiva administrada.

   1. Notifique a cualquier persona que esté asumiendo el rol que ya no puede hacerlo. Proporcione información acerca de cómo asumir el nuevo rol y tener los mismos permisos.

1. [Elimine la política](access_policies_manage-delete-console.md#delete-customer-managed-policy-console).

1. [Elimine el rol](id_roles_manage_delete.md#roles-managingrole-deleting-console).

## No hay ningún caso de uso para un rol de servicio en la consola
<a name="troubleshoot_serviceroles_console-use-case"></a>

Algunos servicios requieren que cree de forma manual un rol de servicio con el fin de otorgar los permisos de servicio para realizar acciones en su nombre. Si el servicio no aparece en la consola de IAM, debe agregarlo manualmente como la entidad principal de confianza. Si la documentación del servicio o de la característica que utiliza no incluye las instrucciones para agregarlo como la entidad principal de confianza, envíe comentarios sobre la página.

Para crear manualmente un rol de servicio, debe conocer la [entidad principal de servicio](reference_policies_elements_principal.md#principal-services) para el servicio que asumirá la función. Una entidad principal de servicio es un identificador que se utiliza para conceder permisos a un servicio. El servicio define la entidad principal de servicio. 

Puede encontrar la entidad principal de algunos servicios comprobando lo siguiente:

1. Abra . [Servicios de AWS que funcionan con IAM](reference_aws-services-that-work-with-iam.md).

1. Compruebe si el servicio tiene la palabra **Yes (Sí)** en la columna **Service-linked roles (Roles vinculados al servicio)**.

1. Seleccione el vínculo **Sí** para ver la documentación acerca del rol vinculado a servicios para ese servicio.

1. Consulte la sección de permisos de rol vinculados a servicios de ese servicio para ver la [entidad principal del servicio](reference_policies_elements_principal.md#principal-services).

Puede crear manualmente un rol de servicio mediante los [comandos de la AWS CLI](id_roles_create_for-service.md#roles-creatingrole-service-cli) o de las [operaciones de la API de AWS](id_roles_create_for-service.md#roles-creatingrole-service-api). Para crear manualmente una función de servicio mediante la consola de IAM, realice las siguientes tareas:

1. Cree un rol de IAM con su ID de cuenta. No asocie ninguna política ni otorgue ningún permiso. Para obtener más información, consulte [Creación de un rol para delegar permisos a un usuario de IAM](id_roles_create_for-user.md).

1. Abra el rol y edite la relación de confianza. En lugar de confiar en la cuenta, el rol debe confiar en el servicio. Por ejemplo, actualice el siguiente elemento de la `Principal`:

   ```
   "Principal": { "AWS": "arn:aws:iam::123456789012:root" }
   ```

   Cambie la entidad principal por el valor de su servicio, como IAM.

   ```
   "Principal": { "Service": "iam.amazonaws.com" }
   ```

1. Agregue los permisos que requiere el servicio asociando políticas de permisos al rol.

1. Regrese al servicio que requiere los permisos y utilice el método documentado para notificar al servicio acerca del nuevo rol de servicio.

# Solucionar problemas de IAM y Amazon EC2
<a name="troubleshoot_iam-ec2"></a>

La siguiente información puede permitirle solucionar problemas de IAM con Amazon EC2.

**Topics**
+ [Cuando intento lanzar una instancia, no veo el rol en la lista **Rol de IAM** de la consola de Amazon EC2](#troubleshoot_iam-ec2_missingrole)
+ [Las credenciales de mi instancia tienen un rol erróneo.](#troubleshoot_iam-ec2_wrongrole)
+ [Cuando intento llamar a `AddRoleToInstanceProfile`, recibo el error `AccessDenied`.](#troubleshoot_iam-ec2_access-denied-adding-role)
+ [Amazon EC2: cuando intento lanzar una instancia con un rol, obtengo el error `AccessDenied`](#troubleshoot_iam-ec2_access-denied-launch)
+ [No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2.](#troubleshoot_iam-ec2_no-keys)
+ [¿Qué significan los errores del documento `info` en el subárbol de IAM?](#troubleshoot_iam-ec2_errors-info-doc)

## Cuando intento lanzar una instancia, no veo el rol en la lista **Rol de IAM** de la consola de Amazon EC2
<a name="troubleshoot_iam-ec2_missingrole"></a>

Comprueba lo siguiente:
+ Si ha iniciado sesión como usuario de IAM, verifique que tenga permiso para llamar a `ListInstanceProfiles`. Para obtener información sobre los permisos necesarios a fin de trabajar con roles, consulte [Permisos necesarios para utilizar roles con Amazon EC2](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-permissions). Para obtener información sobre cómo añadir permisos a un usuario, consulte [Administración de políticas de IAM](access_policies_manage.md).

  Si no puede modificar sus propios permisos, debe ponerse en contacto con un administrador que pueda trabajar con IAM para actualizar los permisos.
+ Si creó un rol mediante la CLI o API de IAM, verifique lo siguiente:
  + Creó un perfil de instancia y agregó el rol a dicho perfil de instancia.
  + Utilizó el mismo nombre para el rol y el perfil de instancia. Si el rol y el perfil de instancia tienen un nombre diferente, no verá el nombre de rol correcto en la consola de Amazon EC2.

  La lista **Rol de IAM** de la consola de Amazon EC2 establece una lista de los nombres de perfiles de instancia, pero no de los nombres de rol. Tendrá que seleccionar el nombre del perfil de instancia que contiene el rol que desea. Para obtener más información acerca de los perfiles de instancia, consulte [Utilizar perfiles de instancia](id_roles_use_switch-role-ec2_instance-profiles.md).
**nota**  
Si utiliza la consola de IAM para crear roles, no es necesario que trabaje con perfiles de instancias. Por cada rol que cree en la consola de IAM, se creará un perfil de instancias con el mismo nombre que el rol, y este se agregará automáticamente a dicho perfil de instancias. Un perfil de instancias puede contener un único rol de IAM y este límite no se puede aumentar.

## Las credenciales de mi instancia tienen un rol erróneo.
<a name="troubleshoot_iam-ec2_wrongrole"></a>

La función del perfil de instancia podría haber sido reemplazada recientemente. En caso afirmativo, la aplicación tendrá que esperar a la siguiente rotación de credenciales programada automáticamente para que las credenciales de la función estén disponibles.

Para forzar el cambio, debe [desvincular el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) y, a continuación, [asociar el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), o bien puede detener la instancia y después reiniciarla.

## Cuando intento llamar a `AddRoleToInstanceProfile`, recibo el error `AccessDenied`.
<a name="troubleshoot_iam-ec2_access-denied-adding-role"></a>

Si realiza las solicitudes como usuario de IAM, compruebe que los siguientes permisos se cumplan:
+ `iam:AddRoleToInstanceProfile` con el recurso que coincide con el ARN del perfil de instancia (por ejemplo, `arn:aws:iam::999999999999:instance-profile/ExampleInstanceProfile`). 

Para obtener más información sobre los permisos necesarios a fin de trabajar con roles, consulte [¿Cómo puedo comenzar?](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-get-started). Para obtener información sobre cómo añadir permisos a un usuario, consulte [Administración de políticas de IAM](access_policies_manage.md).

## Amazon EC2: cuando intento lanzar una instancia con un rol, obtengo el error `AccessDenied`
<a name="troubleshoot_iam-ec2_access-denied-launch"></a>

Comprueba lo siguiente:
+ Lance una instancia sin un perfil de instancia; Esto le servirá para asegurarse de que el problema se limita a los roles de IAM para instancias Amazon EC2.
+ Si realiza las solicitudes como usuario de IAM, compruebe que los siguientes permisos se cumplan:
  + `ec2:RunInstances` con un recurso de comodín ("\$1")
  + `iam:PassRole` con el recurso que coincide con el ARN del rol (por ejemplo, `arn:aws:iam::999999999999:role/ExampleRoleName`)
+ Llame a la acción `GetInstanceProfile` de IAM para asegurarse de que está utilizando un nombre de perfil de instancias válido o un ARN de perfil de instancias válido. Para obtener más información, consulte [Uso roles de IAM con instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#UsingIAMrolesWithAmazonEC2Instances).
+ Llame a la acción `GetInstanceProfile` de IAM para asegurarse de que el perfil de instancias tenga un rol. Los perfiles de instancia vacíos darán un error `AccessDenied`. Para obtener más información sobre cómo crear un rol, consulte [Creación de roles de IAM](id_roles_create.md).

Para obtener más información sobre los permisos necesarios a fin de trabajar con roles, consulte [¿Cómo puedo comenzar?](id_roles_use_switch-role-ec2.md#roles-usingrole-ec2instance-get-started). Para obtener información sobre cómo añadir permisos a un usuario, consulte [Administración de políticas de IAM](access_policies_manage.md). 

## No puedo obtener acceso a las credenciales de seguridad temporales de mi instancia EC2.
<a name="troubleshoot_iam-ec2_no-keys"></a>

Para acceder a las credenciales de seguridad temporales en la instancia EC2, primero debe utilizar la consola de IAM para crear un rol. A continuación, debe lanzar una instancia EC2 que utilice ese rol y examinar la instancia en ejecución. Para obtener más información, consulte la sección **How Do I Get Started? (¿Cómo comenzar?)** en [Utilizar un rol de IAM para conceder permisos a aplicaciones que se ejecutan en instancias de Amazon EC2](id_roles_use_switch-role-ec2.md).

Si sigue sin poder acceder a sus credenciales de seguridad temporales en la instancia EC2, compruebe lo siguiente:
+ ¿Puede obtener acceso a otra parte del Servicio de metadatos de la instancia (IMDS)? Si no puede, compruebe que el firewall no tenga reglas que bloqueen el acceso a las solicitudes al IMDS.

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/hostname; echo
  ```
+ ¿Existe el subárbol `iam` del IMDS? De lo contrario, verifique que su instancia tenga un perfil de instancia de IAM asociado. Para ello, llame a la operación de la API `DescribeInstances` de EC2 o utilice el comando de la CLI `aws ec2 describe-instances`. 

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam; echo
  ```
+ Consulte el documento `info` del subárbol de IAM por si hay un error. Si detecta un error, consulte [¿Qué significan los errores del documento `info` en el subárbol de IAM?](#troubleshoot_iam-ec2_errors-info-doc) para obtener más información.

  ```
  [ec2-user@domU-12-31-39-0A-8D-DE ~]$ GET http://169.254.169.254/latest/meta-data/iam/info; echo
  ```

## ¿Qué significan los errores del documento `info` en el subárbol de IAM?
<a name="troubleshoot_iam-ec2_errors-info-doc"></a>

### El documento `iam/info` indica `"Code":"InstanceProfileNotFound"`
<a name="troubleshoot_iam-ec2_errors-info-doc-profile-not-found"></a>

Su perfil de instancias de IAM se ha eliminado y Amazon EC2 ya no puede proporcionar credenciales a su instancia. Debe asociar un perfil de instancias válido a la instancia de Amazon EC2.

Si existe un perfil de instancia con ese nombre, compruebe que el perfil de instancia no se haya eliminado y que no se haya creado otro con el mismo nombre:

1. Llame a la operación IAM de `GetInstanceProfile` para obtener el `InstanceProfileId`.

1. Llame a la operación Amazon EC2 de `DescribeInstances` para obtener el `IamInstanceProfileId` de la instancia.

1. Compruebe que el `InstanceProfileId` de la operación de IAM coincida con el `IamInstanceProfileId` de la operación de Amazon EC2.

Si los ID son diferentes, el perfil de instancia asociado a sus instancias ya no es válido. Debe asociar un perfil de instancia válido a la instancia. 

### El documento `iam/info` indica una operación correcta, pero también indica `"Message":"Instance Profile does not contain a role..."`
<a name="troubleshoot_iam-ec2_errors-info-doc-no-role"></a>

Se ha eliminado el rol del perfil de instancias mediante la acción `RemoveRoleFromInstanceProfile` de IAM. Puede utilizar la acción `AddRoleToInstanceProfile` de IAM para adjuntar un rol al perfil de instancias. La aplicación tendrá que esperar hasta la siguiente actualización programada para obtener acceso a las credenciales del rol. 

Para forzar el cambio, debe [desvincular el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) y, a continuación, [asociar el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), o bien puede detener la instancia y después reiniciarla.

### El documento `iam/security-credentials/[role-name]` indica `"Code":"AssumeRoleUnauthorizedAccess"`
<a name="troubleshoot_iam-ec2_errors-info-doc-unauthorized-access"></a>

Amazon EC2 no tiene permiso para asumir el rol. El permiso para asumir el rol se controla mediante la política de confianza asociada al rol, como en el ejemplo siguiente. Utilice la API `UpdateAssumeRolePolicy` de IAM para actualizar la política de confianza. 

------
#### [ JSON ]

****  

```
{"Version":"2012-10-17",		 	 	 "Statement": [{"Effect": "Allow","Principal": {"Service": ["ec2.amazonaws.com"]},"Action": ["sts:AssumeRole"]}]}
```

------

La aplicación tendrá que esperar hasta la siguiente actualización programada automáticamente para obtener acceso a las credenciales del rol.

Para forzar el cambio, debe [desvincular el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DisassociateIamInstanceProfile.html) y, a continuación, [asociar el perfil de instancia](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AssociateIamInstanceProfile.html), o bien puede detener la instancia y después reiniciarla.

# Solucionar problemas de Amazon S3 e IAM
<a name="troubleshoot_iam-s3"></a>

Utilice la información que se indica aquí para diagnosticar y solucionar los problemas que puedan surgir cuando trabaje con Amazon S3 y IAM.

## ¿Cómo puedo conceder acceso anónimo a un bucket de Amazon S3?
<a name="troubleshoot_iam-s3_anonymous-bucket-access"></a>

Puede utilizar una política de bucket de Amazon S3 que especifique un asterisco (\$1) en el elemento `principal`, lo que significa que cualquiera puede obtener acceso al bucket. Con un acceso anónimo, cualquiera (incluidos los usuarios sin una Cuenta de AWS) podrá obtener acceso al bucket. Para ver ejemplos de políticas, consulte [Ejemplos de políticas de bucket de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/dev/AccessPolicyLanguage_UseCases_s3_a.html) en la *Guía del usuario de Amazon Simple Storage Service*.

## Inicié sesión como usuario raíz de Cuenta de AWS. ¿Por qué no puedo obtener acceso a un bucket de Amazon S3 que se encuentra en mi cuenta?
<a name="troubleshoot_iam-s3_root-bucket-access"></a>

En algunos casos es posible que tenga un usuario de IAM con acceso completo a IAM y Amazon S3. Si el usuario de IAM asigna una política de bucket a un bucket de Amazon S3 y no especifica el usuario raíz de la cuenta de como principal, se denegará al usuario el acceso a dicho bucket. Sin embargo, como usuario raíz, sigue pudiendo obtener acceso al bucket. Para ello, modifique la política del bucket para permitir el acceso a desde la consola de Amazon S3 o la AWS CLI. Utilice la siguiente entidad principal, reemplazando *123456789012* por el ID de la Cuenta de AWS.

```
"Principal": { "AWS": "arn:aws:iam::123456789012:root" }
```

# Solución de problemas de federación SAML con IAM
<a name="troubleshoot_saml"></a>

Utilice la información que se indica aquí para diagnosticar y solucionar los problemas que puedan surgir cuando trabaje con SAML 2.0 y la federación con AWS Identity and Access Management.

**Topics**
+ [Error: la solicitud incluyó una respuesta SAML que no es válida. Para cerrar sesión, haga clic aquí.](#troubleshoot_saml_invalid-response)
+ [Error: RoleSessionName es obligatorio en AuthnResponse (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_missing-rolesessionname)
+ [Error: falta la autorización para realizar sts:AssumeRoleWithSAML (servicio: AWSSecurityTokenService; código de estado: 403; código de error: AccessDenied)](#troubleshoot_saml_missing-role)
+ [Error: RoleSessionName en AuthnResponse debe coincidir [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-rolesessionname)
+ [Error: identidad de fuente debe coincidir con [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 y no comenzar con `"aws:"` (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-sourceidentity)
+ [Error: firma de respuesta no válida (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)](#troubleshoot_saml_invalid-metadata)
+ [Error: Clave privada no válida.](#troubleshoot_saml_invalid-private-key)
+ [Error: No se pudo eliminar la clave privada.](#troubleshoot_saml_invalid-remove-key)
+ [Error: No se pudo eliminar la clave privada porque el ID de la clave no coincide con una clave privada.](#troubleshoot_saml_invalid-remove-key-mismatch)
+ [Error: no se ha podido asumir un rol: el emisor no está presente en el proveedor especificado (servicio: AWSOpenIdDiscoveryService; código de estado: 400; código de error: AuthSamlInvalidSamlResponseException)](#troubleshoot_saml_issuer-mismatch)
+ [Error: no se ha podido analizar los metadatos.](#troubleshoot_saml_issuer-metadata)
+ [Error: No se pudo actualizar un proveedor de identidades. No se han definido actualizaciones para los metadatos o la aserción de cifrado.](#troubleshoot_saml_unable-to-update)
+ [Error: No se pudo establecer el modo de cifrado de aserciones en Obligatorio porque no se ha proporcionado una clave privada.](#troubleshoot_saml_issuer-private-key-required)
+ [Error: No se pueden añadir ni eliminar claves privadas en la misma solicitud. Establezca un valor para solo uno de los dos parámetros.](#troubleshoot_saml_add-remove-keys)
+ [Error: el proveedor especificado no existe.](#troubleshoot_saml_provider-doesnotexist)
+ [Error: el valor de DurationSeconds solicitado es mayor que el valor de MaxSessionDuration establecido para este rol.](#troubleshoot_saml_duration-exceeds)
+ [Error: Se alcanzó el límite máximo de 2 claves privadas.](#troubleshoot_saml_private-key-exceeds)
+ [Error: la respuesta no contiene la audiencia requerida.](#troubleshoot_saml_required-audience)

## Error: la solicitud incluyó una respuesta SAML que no es válida. Para cerrar sesión, haga clic aquí.
<a name="troubleshoot_saml_invalid-response"></a>

Este error puede producirse cuando la respuesta SAML del proveedor de identidades no contiene un atributo con `Name` establecido en `https://aws.amazon.com/SAML/Attributes/Role`. El atributo debe contener uno o varios elementos `AttributeValue`, cada uno con un par de cadenas separadas por comas:
+ El ARN de un rol con el que el usuario puede estar mapeado.
+ El ARN del proveedor SAML.

El error también puede producirse cuando los valores de los atributos SAML enviados por el proveedor de identidad tienen un espacio en blanco al principio o al final, u otros caracteres no válidos en los valores de los atributos SAML. Para obtener más información sobre los valores esperados para los atributos SAML, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md)

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: RoleSessionName es obligatorio en AuthnResponse (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_missing-rolesessionname"></a>

Este error puede producirse cuando la respuesta SAML del proveedor de identidades no contiene un atributo con `Name` establecido en `https://aws.amazon.com/SAML/Attributes/RoleSessionName`. El valor de atributo es un identificador para el usuario y suele ser un ID de usuario o una dirección de correo electrónico.

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: falta la autorización para realizar sts:AssumeRoleWithSAML (servicio: AWSSecurityTokenService; código de estado: 403; código de error: AccessDenied)
<a name="troubleshoot_saml_missing-role"></a>

Este error se produce si el rol de IAM especificado en la respuesta de SAML está mal escrito o no existe. Asegúrese de utilizar el nombre exacto de su rol, ya que los nombres de roles distinguen entre mayúsculas y minúsculas. Corrija el nombre del rol en la configuración del proveedor de servicios SAML.

Solo se le permite el acceso si la política de confianza de rol incluye la acción `sts:AssumeRoleWithSAML`. Si la aserción SAML está configurada para utilizar el [atributo `PrincipalTag`](id_roles_providers_create_saml_assertions.md#saml_role-session-tags), la política de confianza también debe incluir la acción `sts:TagSession`. Para obtener más información acerca de las etiquetas de sesión, consulte [Transferencia de etiquetas de sesión en AWS STS](id_session-tags.md).

Este error puede producirse si no tiene `sts:SetSourceIdentity` en su política de confianza de rol. Si la aserción SAML está configurada para utilizar el atributo [`SourceIdentity`](id_roles_providers_create_saml_assertions.md#saml_sourceidentity), la política de confianza también debe incluir la acción `sts:SetSourceIdentity`. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

Este error también puede ocurrir si una entidad principal federada no tiene permisos para asumir el rol. El rol debe tener una política de confianza que especifique el ARN de la identidad SAML de IAM como el elemento `Principal`. El rol también contiene condiciones que controlan qué usuarios pueden asumir el rol. Asegúrese de que sus usuarios cumplan los requisitos de las condiciones.

Este error también puede producirse si la respuesta de SAML no contiene un `Subject` con un `NameID`.

Para obtener más información, consulte [Concesión de acceso a la Consola de administración de AWS a las entidades principales federadas de SAML 2.0](id_roles_providers_enable-console-saml.md) y [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: RoleSessionName en AuthnResponse debe coincidir [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-rolesessionname"></a>

Este error puede producirse si el valor del atributo `RoleSessionName` es demasiado largo o contiene caracteres no válidos. La longitud válida máxima es de 64 caracteres.

Para obtener más información, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: identidad de fuente debe coincidir con [a-zA-Z\$10-9\$1=,.@-]\$12,64\$1 y no comenzar con `"aws:"` (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-sourceidentity"></a>

Este error puede producirse si el valor del atributo `sourceIdentity` es demasiado largo o contiene caracteres no válidos. La longitud válida máxima es de 64 caracteres. Para obtener más información acerca de las identidades de fuente, consulte [Monitorear y controlar las acciones realizadas con roles asumidos](id_credentials_temp_control-access_monitor.md).

Para obtener más información acerca de la creación de aserciones SAML, consulte [Configure aserciones SAML para la respuesta de autenticación](id_roles_providers_create_saml_assertions.md). Para ver la respuesta de SAML en el navegador, siga los pasos que se indican en [Ver una respuesta SAML en su navegador](troubleshoot_saml_view-saml-response.md).

## Error: firma de respuesta no válida (servicio: AWSSecurityTokenService; código de estado: 400; código de error: InvalidIdentityToken)
<a name="troubleshoot_saml_invalid-metadata"></a>

Este error puede producirse cuando los metadatos de la federación del proveedor de identidades no coinciden con los metadatos del proveedor de identidades de IAM. Por ejemplo, el archivo de metadatos del proveedor de servicios de identidades podría haber cambiado para actualizar un certificado caducado. Descargue el archivo de metadatos SAML actualizado de su proveedor de servicios de identidades. A continuación, actualícelo en la entidad de proveedor de identidades de AWS que usted define en IAM con el comando de la `aws iam update-saml-provider` CLI o el cmdlet de PowerShell `Update-IAMSAMLProvider`.

## Error: Clave privada no válida.
<a name="troubleshoot_saml_invalid-private-key"></a>

Este error se puede producir si el archivo de clave privada no está formateado correctamente. Este error puede proporcionar detalles adicionales sobre por qué la clave privada no es válida:
+ La clave está cifrada.
+ No se reconoce el formato de la clave. El archivo de clave privada debe ser un archivo .pem.

Cuando se ejecuta [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md) en la Consola de administración de AWS, debe descargar la clave privada desde su proveedor de identidad para proporcionársela a IAM y permitir el cifrado. La clave privada debe ser de un archivo .pem que utilice el algoritmo de cifrado AES-GCM o AES-CBC para descifrar las afirmaciones de SAML.

## Error: No se pudo eliminar la clave privada.
<a name="troubleshoot_saml_invalid-remove-key"></a>

Este error puede producirse cuando el cifrado SAML está establecido en Obligatorio y su solicitud eliminaría la única clave de descifrado privada del proveedor de SAML de IAM. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: No se pudo eliminar la clave privada porque el ID de la clave no coincide con una clave privada.
<a name="troubleshoot_saml_invalid-remove-key-mismatch"></a>

Este error puede producirse si el valor `keyId` de la clave privada no coincide con ningún ID de clave de los archivos de clave privada del proveedor de identidad.

Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para eliminar las claves privadas de cifrado SAML, el valor de `RemovePrivateKey` debe ser un ID de clave válida para una clave privada adjunta a su proveedor de identidad.

## Error: no se ha podido asumir un rol: el emisor no está presente en el proveedor especificado (servicio: AWSOpenIdDiscoveryService; código de estado: 400; código de error: AuthSamlInvalidSamlResponseException)
<a name="troubleshoot_saml_issuer-mismatch"></a>

Este error puede producirse si el emisor de la respuesta de SAML no coincide con el emisor declarado en el archivo de metadatos de federación. El archivo de metadatos se ha cargado a AWS al crear el proveedor de identidad en IAM.

## Error: no se ha podido analizar los metadatos.
<a name="troubleshoot_saml_issuer-metadata"></a>

Este error se puede producir si el archivo de metadatos no está formateado correctamente.

Cuando [crea o administra un proveedor de identidad SAML](id_roles_providers_create_saml.md#idp-manage-identityprovider-console) en la Consola de administración de AWS debe recuperar el documento de metadatos de SAML de su proveedor de identidad.

Este archivo de metadatos incluye el nombre del emisor, información de vencimiento y las claves que se pueden utilizar para validar la respuesta de autenticación SAML (afirmaciones) recibida desde el IdP. El archivo de metadatos debe estar codificado en formato UTF-8 sin una marca de orden de bytes (BOM). Para eliminar la BOM, puede codificar el archivo en UTF-8 con una herramienta de edición de texto, como Notepad\$1\$1.

El certificado X.509 incluido como parte del documento de metadatos de SAML debe utilizar un tamaño de clave de al menos 1024 bits. Además, el certificado X.509 no debe contener extensiones repetidas. Puede utilizar extensiones, pero estas solo pueden aparecer una vez en el certificado. Si el certificado X.509 no cumple ninguna condición, se produce un error en la creación de proveedor de identidad (IdP) y devuelve el mensaje “Unable to parse metadata” (No se pueden analizar los metadatos).

Según se define en la [versión 1.0 del perfil de interoperabilidad de metadatos SAML V2.0](https://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-os.html), IAM no evalúa ni toma medidas en relación con la caducidad de los certificados X.509 de los documento de metadatos SAML. Si le preocupan los certificados X.509 caducados, le recomendamos que supervise las fechas de caducidad de los certificados y los alterne de acuerdo con las políticas de gobernanza y seguridad de su organización.

## Error: No se pudo actualizar un proveedor de identidades. No se han definido actualizaciones para los metadatos o la aserción de cifrado.
<a name="troubleshoot_saml_unable-to-update"></a>

Este error puede producirse si utiliza las operaciones de la CLI del `update-saml-provider` o la API del `UpdateSAMLProvider`, pero no proporciona valores de actualización en los parámetros de la solicitud. Para obtener más información sobre la actualización de su proveedor de SAML de IAM, consulte [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md).

## Error: No se pudo establecer el modo de cifrado de aserciones en Obligatorio porque no se ha proporcionado una clave privada.
<a name="troubleshoot_saml_issuer-private-key-required"></a>

Este error puede producirse si no ha cargado con antelación una clave de descifrado privada e intenta establecer el cifrado SAML en Obligatorio sin incluir una clave privada en la solicitud.

Asegúrese de definir una clave privada para su proveedor de SAML de IAM cuando utilice operaciones de la CLI del `create-saml-provider`, de la API del `CreateSAMLProvider`, de la CLI del `update-saml-provider` o la API de `UpdateSAMLProvider` para requerir aserciones de SAML cifradas. 

## Error: No se pueden añadir ni eliminar claves privadas en la misma solicitud. Establezca un valor para solo uno de los dos parámetros.
<a name="troubleshoot_saml_add-remove-keys"></a>

Este error puede producirse si en la misma solicitud se incluyen valores para añadir y eliminar claves privadas.

Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para rotar los archivos de clave privada de cifrado SAML, solo puede añadir o eliminar una clave privada en su solicitud. Si agrega una clave privada y elimina una clave privada al mismo tiempo, se produce un error en la operación. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: el proveedor especificado no existe.
<a name="troubleshoot_saml_provider-doesnotexist"></a>

Este error se produce si el nombre del proveedor en la confirmación SAML no coincide con el nombre del proveedor en IAM. Para obtener más información sobre cómo ver el nombre del proveedor, consulte [Crear un proveedor de identidades de SAML en IAM](id_roles_providers_create_saml.md).

## Error: el valor de DurationSeconds solicitado es mayor que el valor de MaxSessionDuration establecido para este rol.
<a name="troubleshoot_saml_duration-exceeds"></a>

Este error puede producirse si se asume un rol desde la AWS CLI o la API. 

Cuando utilice las operaciones [assume-role-with-saml](https://docs.aws.amazon.com/cli/latest/reference/sts/assume-role-with-saml.html) de la CLI o [AssumeRoleWithSAML](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithSAML.html) de la API para asumir un rol, puede especificar un valor para el parámetro `DurationSeconds`. Puede especificar un valor comprendido entre 900 segundos (15 minutos) y la duración máxima de la sesión para el rol. Si especifica un valor superior al indicado en esta opción, la operación producirá un error. Por ejemplo, si especifica una duración de 12 horas para la sesión, pero el administrador establece la duración máxima de la sesión en 6 horas, la operación genera un error. Para obtener información sobre cómo ver el valor máximo para el rol, consulte [Actualizar la duración máxima de la sesión para un rol](id_roles_update-role-settings.md#id_roles_update-session-duration).

## Error: Se alcanzó el límite máximo de 2 claves privadas.
<a name="troubleshoot_saml_private-key-exceeds"></a>

Este error puede producirse si intenta añadir una clave privada a su proveedor de identidad.

Puede guardar hasta dos claves privadas para cada proveedor de identidad. Cuando utiliza las operaciones de la API [update-saml-provider](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iam/update-saml-provider.html) o [UpdateSAMLProvider](https://docs.aws.amazon.com/IAM/latest/APIReference/API_UpdateSAMLProvider.html) para añadir una tercera clave privada, se produce un error en la operación. 

Elimine las claves privadas que hayan caducado antes de añadir una nueva clave privada. Para obtener más información acerca de la rotación de claves privadas, consulte [Gestiona las claves de cifrado SAML](id_roles_providers_create_saml.md#id_federation_manage-saml-encryption).

## Error: la respuesta no contiene la audiencia requerida.
<a name="troubleshoot_saml_required-audience"></a>

Este error puede producirse si hay una discrepancia entre la URL de la audiencia y el proveedor de identidades en la configuración de SAML. Asegúrese de que el identificador de la parte de confianza del proveedor de identidades (IdP) coincida exactamente con la URL de la audiencia (ID de entidad) proporcionada en la configuración de SAML.