Saltar al contenido

¿Cómo resuelvo los problemas cuando uso la consola de administración de AWS para cambiar de rol de IAM?

5 minutos de lectura
0

He utilizado la consola de administración de AWS para intentar cambiar los roles de AWS Identity and Access Management (IAM). Sin embargo, he recibido el siguiente error: «Invalid information in one or more fields. Check your information or contact your administrator».

Descripción corta

Recibes el mensaje de error Invalid information in one or more fields debido a una política mal configurada. También es posible que recibas su mensaje de error cuando tu solicitud no cumple las condiciones de una política de confianza.

Resolución

Configuración de los permisos de AssumeRole para tu usuario o rol de IAM

Para conceder a un usuario permisos para cambiar de rol, agrega la acción AssumeRole de AWS Security Token Service (AWS STS) a la política de identidad de IAM.

Ejemplo de política:

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

Nota: Sustituye arn:aws:iam::account_id_number:role/role-name-you-want-to assume por el nombre de recurso de Amazon (ARN) del rol de IAM.

Comprobar que la política de confianza del rol de IAM incluya una entidad principal

Actualiza la política de confianza para incluir una entidad principal. La entidad principal puede ser un usuario o rol de IAM o una cuenta de AWS.

Nota: Si agregas una cuenta como entidad principal de confianza, todas las identidades de esa cuenta pueden asumir el rol. Sin embargo, las identidades deben tener el permiso AssumeRole.

Por ejemplo, el usuario de IAM Carlos, del ID de cuenta 111222333444, quiere asumir el rol de Maria en el ID de cuenta 444555666777.

El ID de cuenta 111222333444 es la cuenta de confianza y el ID de cuenta 444555666777 es la cuenta en la que se confía. El rol de IAM de Maria tiene una política de confianza que confía en Carlos.

Ejemplo de política de confianza para el rol de IAM de Maria:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Principal": {
        "AWS": "arn:aws:iam::111222333444:user/Carlos"
      },
      "Condition": {}
    }
  ]
}

Carlos también debe tener una política de IAM para asumir el rol de IAM de Maria en la otra cuenta.

Ejemplo de política de IAM para que Carlos asuma el rol de IAM de Maria:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "sts:AssumeRole",
      "Resource": "arn:aws:iam::444555666777:role/Maria"
    }
  ]
}

Para permitir que todas las identidades de IAM de una cuenta asuman el rol, utiliza la entidad principal raíz de la cuenta.

En la política de confianza del rol de IAM de Maria, sustituye user/Carlos por root:

"AWS": "arn:aws:iam::111222333444:root"

En la política de confianza del rol de IAM de Maria, también puedes usar el comodín (*) para que el usuario pueda asumir cualquier rol en cualquier cuenta:

"Resource": "arn:aws:iam::444555666777:role/\\\*"

Los cambios anteriores permiten que cualquier usuario o rol de IAM de la cuenta 111222333444 asuma el rol de IAM de Maria que se encuentra en el ID de cuenta 444555666777. Para minimizar la cantidad de identidades que pueden asumir el rol, se recomienda especificar el ARN solo del usuario o rol de IAM que requiere acceso.

Para obtener más información, consulta Actualización de una política de confianza de rol.

Denegación explícita de SCP o de una política de IAM

Si tu cuenta forma parte de AWS Organizations, es posible que la cuenta de administración aplique políticas de control de servicios (SCP) que restrinjan el cambio de roles. Para obtener más información, consulta Prácticas recomendadas para la cuenta de administración.

Comprueba si hay una denegación explícita para la acción AssumeRole en la política de SCP o de IAM. Si hay una denegación explícita, la denegación anula cualquier permiso de tipo Permitir, lo que impide la asunción del rol. En el ejemplo anterior, si hay una denegación explícita, Carlos no puede asumir el rol de IAM de Maria.

Además, comprueba si los SCP restringen el acceso en función de las regiones de AWS. AWS STS es un servicio global, por lo que debes incluirlo en la lista global de exclusiones de servicios.

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

El rol requiere un sts:ExternalId para cambiar al rol de IAM

Si el rol de IAM requiere una clave sts:ExternalId, puedes usar la consola de administración de AWS para cambiar de rol. Edita la política para usar la acción AssumeRole con el parámetro sts:ExternalId.

La clave sts:ExternalId permite el acceso de terceros a los recursos de AWS.

Para obtener más información, consulta Acceso a cuentas de AWS propiedad de terceros.

Comprobación de las condiciones de la política de confianza de roles de IAM

Revisa las condiciones que has configurado en la política de confianza, como la fecha de caducidad o el requisito de ExternalId. Tu solicitud debe cumplir las condiciones de la política de roles de IAM.

Por ejemplo, si la fecha actual es posterior a la fecha especificada, la condición es falsa y la política no puede conceder el permiso para asumir el rol.

La siguiente política deniega el permiso para asumir el rol después del 1 de mayo de 2016:

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

Asegúrate de que tu solicitud cumpla con todas las condiciones de la política de confianza.

Información relacionada

¿Cómo proporciono a los usuarios de IAM un enlace para que asuman un rol de IAM?

¿Cómo puedo usar IAM para acceder a los recursos de otra cuenta de AWS?

¿Cuál es la diferencia entre una política de control de servicio de AWS Organizations y una política de IAM?