¿Cómo puedo resolver los problemas relacionados con el cambio de roles de IAM mediante la consola de administración de AWS?

Actualización más reciente: 05 de abril de 2022

Al intentar cambiar el rol de AWS Identity and Access Management (IAM) mediante la consola de administración de AWS, apareció un error similar al siguiente:

“Invalid information in one or more fields. Check your information or contact your administrator.” (Información no válida en uno o más campos. Compruebe la información o póngase en contacto con su administrador).

Descripción corta

Este error puede producirse debido a las siguientes causas:

  • Permisos de acción AssumeRole incorrectos
  • Política de confianza de IAM incorrecta
  • Denegación explícita de políticas
  • ID de cuenta o nombre de rol incorrectos
  • ID externo necesario para cambiar de rol
  • Condiciones de política de confianza incorrectas

Resolución

Siga estas instrucciones para verificar la configuración de la política de IAM para cambiar los roles de IAM para su escenario.

Permisos de acción AssumeRole incorrectos o ausentes

Para cambiar de rol de IAM, la entidad de IAM debe tener el permiso de acción AssumeRole. La entidad de IAM debe tener una política con permiso de acción AssumeRole similar a la siguiente:

{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Resource": "arn:aws:iam::account_id_number:role/role-name-you-want-to-assume"  
}

Asegúrese de que el recurso coincida con el nombre de recurso de Amazon (ARN) del rol de IAM al que desea cambiar. Para obtener más información, consulte Conceder permisos de usuario para cambiar de rol.

La política de confianza del rol de IAM no confía en el ID de cuenta del usuario de IAM

La política de confianza del rol de IAM define las entidades principales que pueden asumir el rol. Compruebe que la política de confianza incluya el ID de cuenta del usuario de IAM como la entidad principal de confianza. Por ejemplo, un usuario de IAM llamado Bob con el ID de cuenta 111222333444 quiere cambiar a un rol de IAM llamado Alice para el ID de cuenta 444555666777. El ID de cuenta 111222333444 es la cuenta de confianza y el ID de cuenta 444555666777 es la cuenta de confianza. El rol de IAM Alice tiene una política de confianza que confía en Bob de forma similar a la siguiente:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Principal": {
                "AWS": “<111222333444>
            },
            "Condition": {}
        }
    ]
}

Nota: se recomienda seguir el principio de privilegio mínimo y especificar el ARN completo solo para los roles que el usuario necesita.

Para obtener más información, consulte Modificación de una política de confianza de rol (consola).

Denegación explícita de políticas de control de servicios (SCP) o de una política de IAM

Si su cuenta de AWS forma parte de AWS Organizations, es posible que su cuenta de administración tenga SCP. Asegúrese de que no haya una denegación explícita de las SCP para la acción AssumeRole. Compruebe si hay SCP que denieguen acciones de API basadas en regiones de AWS. AWS Security Token Service (AWS STS) es un servicio global que debe incluirse en la lista de exclusión de servicios globales. Asegúrese de que no haya ninguna denegación explícita de las políticas de IAM, ya que las declaraciones “deny” (denegar) tienen prioridad sobre las declaraciones “allow” (permitir).

Para obtener más información, consulte Denegar el acceso a AWS en función de la región de AWS solicitada.

Comprobar el ID de la cuenta de AWS y el nombre del rol de IAM

Compruebe que el ID de la cuenta y el nombre del rol de IAM sean correctos en la página de cambio de rol. El ID de cuenta es un identificador de 12 dígitos y el nombre del rol de IAM es el nombre del rol que desea asumir.

Para obtener más información, consulte Cosas que debe saber sobre el cambio de roles en la consola.

Es necesario un ID externo para cambiar el rol de IAM

Los administradores pueden usar un ID externo para dar acceso de terceros a los recursos de AWS. No puede cambiar roles de IAM en la consola de administración de AWS a un rol que requiera un valor de clave de condición ExternalId. Solo puede cambiar los roles de IAM si llama a la acción AssumeRole que admite la clave ExternalId.

Para más información, consulte Cómo usar una ID externa al conceder acceso a los recursos de AWS a un tercero.

Condiciones válidas en la política de confianza del rol de IAM

Compruebe que cumple todas las condiciones que se especifican en la política de confianza del rol de IAM. Una condición puede especificar una fecha de vencimiento, un ID externo o que las solicitudes solo provengan de direcciones IP específicas. En el siguiente ejemplo de política, si la fecha actual es posterior a la fecha especificada, la condición es falsa. La política no puede conceder permisos para asumir el rol de IAM.

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