¿Cómo se puede solucionar el error en la política de confianza de IAM “ Se produjo un error al actualizar la política de confianza. La entidad principal de la política no es válida?”

6 minutos de lectura
0

Recibo el error de IAM “Failed to update trust policy. Invalid principal in policy” (Se produjo un error al actualizar la política de confianza. La entidad principal de la política no es válida) al intentar editar la política de confianza de mi rol de AWS Identity and Access Management (IAM) mediante la consola de administración de AWS.

Descripción breve

Este mensaje de error indica que el valor de una entidad principal de la política de confianza de IAM no es válido. Para resolver este error, confirme lo siguiente:

  • La política de confianza del rol de IAM utiliza valores compatibles con el formato correcto para el elemento de entidad principal.
  • Si la política de confianza del rol de IAM utiliza identidades de IAM (usuarios, grupos de usuarios y roles) como entidades principales, confirme que el usuario o el rol no se hayan eliminado.

Nota: Las cuentas de AWS GovCloud (EE. UU.) también pueden recibir este error si la cuenta de AWS estándar intenta agregar el número de cuenta de AWS GovCloud (EE. UU.). No puede crear un rol para delegar el acceso entre una cuenta de AWS GovCloud (EE. UU.) y una cuenta de AWS estándar. Para obtener más información, consulte How IAM Differs for AWS GovCloud (US) (¿En qué se diferencia IAM de AWS GovCloud [EE. UU.]?).

Resolución

Compruebe los valores admitidos para el elemento de entidad principal

El elemento de entidad principal de la política de confianza de IAM del rol debe incluir los siguientes valores admitidos.

1.    Asegúrese de que la política de IAM incluya el ID de cuenta de AWS de 12 dígitos de AWS correcto, similar al siguiente:

"Principal": {
"AWS": "123456789012"
}

Nota: la cuenta de AWS también se puede especificar con el nombre de recurso de Amazon (ARN) del usuario raíz. Por ejemplo, arn:aws:iam::123456789012:root.

2.    Si las entidades principales de la política de confianza de IAM son usuarios, roles o usuarios federados de IAM, entonces se debe especificar todo el ARN de forma similar a la siguiente:

"Principal": {
  "AWS": [
    "arn:aws:iam::123456789012:user/user-name",
    "arn:aws:iam::123456789012:role/role-name",
    "arn:aws:sts::123456789012:assumed-role/role-name/role-session-name",
    "arn:aws:sts::123456789012:federated-user/user-name"
  ]
}

3.    Si la política de confianza de IAM incluye caracteres comodín, siga estas pautas.

Nota: no puede usar un comodín “*” de modo que coincida con parte de un nombre de entidad principal o ARN.

El siguiente ejemplo ilustra un uso incorrecto de un comodín en una política de confianza de IAM:

"Principal": {
  "AWS": "arn:aws:iam::123456789012:user/user-*"
}

Para que parte del nombre de entidad principal coincida mediante un comodín, utilice un elemento de Condición con la clave de condición global aws:PrincipalArn. A continuación, especifique un ARN con el comodín.

Para especificar las identidades de todas las cuentas de AWS, utilice un comodín similar al siguiente:

"Principal": {
  "AWS": "*"
}

Importante: Puede utilizar un comodín en el elemento de entidad principal con un efecto Permitir en una política de confianza. Sin embargo, esto permite que cualquier usuario de IAM, sesión de rol asumida o usuario federado de cualquier cuenta de AWS en la misma partición acceda al rol. Las entidades principales de usuarios y roles de IAM dentro de la cuenta de AWS no requieren otros permisos. Las entidades principales de otras cuentas de AWS, deben tener permisos basados en la identidad para asumir el rol de IAM.

Este método no permite que las entidades principales de sesión de identidad web, las entidades principales de sesión SAML o las entidades principales de servicio accedan a los recursos.

Como práctica recomendada, utilice este método solo con el elemento de condición y una clave de condición como aws:PrincipalArn para limitar los permisos. Por ejemplo, el archivo podría tener un aspecto similar al siguiente:

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

En este ejemplo de política de confianza se utiliza la clave de condición aws:PrincipalArn para permitir que solo los usuarios con nombres de usuario coincidentes asuman el rol de IAM.

4.    Si el rol de IAM es un rol de servicio de AWS, se debe especificar toda la entidad principal de servicio de manera similar a la siguiente:

"Principal": {
  "Service": "ec2.amazonaws.com"
}

5.    Puede utilizar entidades principales de sesión de SAML con un proveedor de identidad SAML externo para autenticar a los usuarios de IAM. La política de confianza del rol de IAM debe tener un elemento de entidad principal similar al siguiente:

"Principal": {
  "Federated": "arn:aws:iam::123456789012:saml-provider/provider-name"
}

6.    Puede utilizar entidades principales de sesión de identidad web para autenticar a los usuarios de IAM. La política de confianza del rol de IAM que proporciona acceso debe tener un elemento de entidad principal similar al siguiente:

"Principal": { 
  "Federated": "cognito-identity.amazonaws.com" 
}

7.    Si utiliza diferentes tipos de entidades principales en una sola instrucción, asegúrese de que el formato de la política de confianza de IAM sea similar al siguiente:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:user/user-name",
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

El usuario o el rol de IAM deben ser una identidad existente

Si la política de confianza del rol de IAM utiliza usuarios o roles de IAM como entidades principales, confirme que esas identidades de IAM no se han eliminado. El error “La entidad principal de la política no es válida” se produce si se modifica la política de confianza de IAM y se elimina la entidad principal.

Nota: Si se eliminó la entidad principal, anote el identificador único de la entidad principal en la política de confianza de IAM y no el ARN.


Información relacionada

How can I use AWS Identity and Access Management (IAM) to allow user access to resources? (¿Cómo puedo utilizar AWS Identity and Access Management (IAM) para conceder a los usuarios acceso a los recursos?)

How do I access resources in another AWS account using AWS IAM? (¿Cómo accedo a los recursos en otra cuenta de AWS a través de AWS IAM?)

¿Por qué hay un formato de entidad principal desconocida en mi política basada en recursos de IAM?

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año