Como posso resolver o erro da política de confiança do IAM “Falha ao atualizar a política de confiança. Entidade principal inválida na política”?

5 minuto de leitura
0

Recebi o erro do “Falha ao atualizar a política de confiança. Entidade principal inválida na política”. Ao tentar editar a política de confiança para meu perfil do AWS Identity and Access Management (IAM) usando o Console de Gerenciamento da AWS Management Console.

Breve descrição

Essa mensagem de erro indica que o valor de um elemento de Entidade principal na sua política de confiança do IAM não é válido. Para resolver esse erro, confirme o seguinte:

  • A política de confiança do perfil do IAM usa valores compatíveis com a formatação correta para o elemento da entidade principal.
  • Se a política de confiança do perfil do IAM usar uma identidade do IAM (usuários, grupos de usuários e funções) como entidades principais, confirme se o usuário ou o perfil não foi excluído.

Observação: as contas AWS GovCloud (EUA) também podem receber esse erro se a conta padrão da AWS tentar adicionar o número da conta AWS GovCloud (EUA). Você não pode criar um perfil para delegar o acesso entre uma conta AWS GovCloud (EUA) e uma conta padrão da AWS. Para obter mais informações, consulte How IAM Differs for AWS GovCloud (US) (Como o IAM difere para o AWS GovCloud - EUA).

Resolução

Verifique os valores compatíveis com o elemento da Entidade principal

O elemento da Entidade principal na política de confiança do IAM da sua função deve incluir os seguintes valores compatíveis.

1.    Certifique-se de que a política do IAM inclua o ID correto da conta da AWS de 12 dígitos semelhante ao seguinte:

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

Observação: a conta da AWS também pode ser especificada usando o usuário raiz nome do recurso da Amazon (ARN). Por exemplo: arn:aws:iam::123456789012:root.

2.    Se as entidades principais da política de confiança do IAM forem usuários, perfis ou usuários federados do IAM, todo o ARN deverá ser especificado como a seguir:

"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.    Se a política de confiança do IAM incluir curinga, siga essas diretrizes.

Observação: não é possível usar um caractere curinga "*" para corresponder uma parte de um nome da entidade principal ou ARN.

O exemplo a seguir tem um uso incorreto de um caractere curinga em uma política de confiança do IAM:

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

Para corresponder a parte do nome da entidade principal usando um caractere curinga, use um elemento Condition (Condição) com a chave de condição global aws:PrincipalArn. Em seguida, especifique um ARN com o curinga.

Para especificar identidades de todas as contas da AWS, use um caractere curinga semelhante ao seguinte:

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

Importante: você pode usar um caractere curinga no elemento de Entidade principal com um efeito Allow (Permitir) em uma política de confiança. Porém, isso permite que qualquer usuário do IAM, sessão de perfil presumido ou usuário federado em qualquer conta da AWS na mesma partição acesse seu perfil. Os usuários do IAM e as entidades principais do perfil em sua conta da AWS não exigem nenhuma outra permissão. As entidades principais em outras contas da AWS devem ter permissões baseadas em identidade para assumir o perfil do IAM.

Esse método não permite que as entidades principais de sessões de identidade da Web, entidades de sessão SAML ou entidades principais do serviço acessem os recursos.

Como prática recomendada, use esse método somente com o elemento Condition (Condição) e uma chave de condição, como aws:PrincipalArn, para limitar as permissões. Por exemplo, seu arquivo pode ser semelhante ao seguinte:

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

Esse exemplo de política de confiança usa a chave de condição aws:PrincipalArn para permitir que somente usuários com nomes de usuário correspondentes assumam o perfil do IAM.

4.    Se o perfil do IAM for um perfil de serviço da AWS, toda a entidade principal do serviço deverá ser especificada conforme a seguir:

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

5.    Você pode usarentidades principais de sessão SAML com um provedor de identidade SAML externo para autenticar usuários do IAM. A política de confiança da função do IAM deve ter um elemento de Entidade principal semelhante ao seguinte:

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

6.    Você pode usar as entidades principais de sessão de identidade da web para autenticar usuários do IAM. A política de confiança da função do IAM que fornece acesso deve ter um elemento de Entidade principal semelhante ao seguinte:

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

7.    Se você usar diferentes tipos de entidades principais em uma única instrução, formate a política de confiança do IAM conforme a seguir:

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

O usuário ou perfil do IAM deve ser uma identidade existente

Se a política de confiança de função do IAM utilizar usuários ou funções do IAM como entidades principais, confirme se essas identidades do IAM não foram excluídas. O erro “Entidade principal inválida na política” ocorre se você modificar a política de confiança do IAM e a entidade principal for excluída.

Observação: se a entidade principal foi excluída, observe o ID exclusivo da entidade principal na política de confiança do IAM e não o ARN.


Informações relacionadas

Como posso usar o AWS Identity and Access Management (IAM) para permitir o acesso de usuários aos recursos?

Como acesso recursos em outra conta da AWS usando o AWS IAM?

Por que há um formato de entidade principal desconhecido em minha política baseada em recursos do IAM?

AWS OFICIAL
AWS OFICIALAtualizada há um ano