Como posso resolver problemas com a alternância de funções do IAM usando o Console de Gerenciamento da AWS?

Data da última atualização: 05/04/2022

Tentei alternar funções do AWS Identity and Access Management (IAM) usando o Console de Gerenciamento da AWS e recebi um erro semelhante ao seguinte:

"Invalid information in one or more fields. Check your information or contact your administrator" (Informações inválidas em um ou mais campos. Verifique suas informações ou entre em contato com o administrador).

Breve descrição

Esse erro pode ocorrer devido a:

  • Permissões incorretas da ação AssumeRole
  • Política de confiança do IAM incorreta
  • Negação explícita das políticas
  • ID da conta ou nome da função incorretos
  • Exigir ID externo para trocar funções
  • Condições incorretas da política de confiança

Resolução

Siga estas instruções para verificar a configuração da política do IAM para alternar funções do IAM para o cenário.

Permissões de ação AssumeRole ausentes ou incorretas

Para alternar para uma função do IAM, a entidade do IAM deve ter a permissão de ação AssumeRole. A entidade do IAM deve ter uma política com permissão de ação AssumeRole semelhante à seguinte:

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

Verifique se o recurso corresponde ao nome do recurso da Amazon (ARN) da função do IAM para a qual você deseja alternar. Para obter mais informações, consulte Concessão de permissões a um usuário para alternar funções.

A política de confiança da função do IAM não confia no ID da conta do usuário do IAM

A política de confiança de função do IAM define as entidades principais que podem assumir a função. Verifique se a política de confiança lista o ID da conta do usuário do IAM como a entidade principal confiável. Por exemplo, um usuário do IAM chamado Bob com ID de conta 111222333444 deseja alternar para uma função do IAM chamada Alice para o ID de conta 444555666777. O ID da conta 111222333444 é a conta confiável e o ID da conta 444555666777 é a conta que confia. A função do IAM Alice tem uma política de confiança que confia em Bob semelhante à seguinte:

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

Observação: é uma prática recomendada seguir o princípio de privilégio mínimo e especificar o ARN completo apenas para as funções de que o usuário precisa.

Para obter mais informações, consulte Modificar uma política de confiança de função (console).

Negação explícita das políticas de controle de serviço (SCPs) ou de uma política do IAM

Se a conta da AWS fizer parte de um AWS Organizations, a conta de gerenciamento poderá ter SCPs. Certifique-se de que não haja negação explícita das SCPs para a ação AssumeRole. Verifique se há SCPs que negam ações de API com base nas regiões da AWS. O AWS Security Token Service (AWS STS) é um serviço global que deve ser incluído na lista de exclusão de serviços globais. Certifique-se de que não haja nenhuma negação explícita das políticas do IAM, pois as declarações “deny” (negar) têm precedência sobre as instruções “allow” (permitir).

Para obter mais informações, consulte Negar acesso à AWS com base na região da AWS solicitada.

Verifique o ID da conta da AWS e o nome da função do IAM

Verifique se o ID da conta e o nome da função do IAM estão corretos na página de alternância de funções. O ID da conta é um identificador de 12 dígitos e o nome da função do IAM é o nome da função que você deseja assumir.

Para obter mais informações, consulte O que é preciso saber sobre como alternar funções no console.

Exigir que o ID externo alterne para a função do IAM

Os administradores podem usar um ID externo para conceder acesso de terceiros aos recursos da AWS. Não é possível alternar as funções do IAM no Console de Gerenciamento da AWS para uma função que exija uma chave-valor de condição ExternalId. Você só pode alternar para funções do IAM chamando a ação AssumeRole que oferece suporte à chave ExternalId.

Para obter mais informações, consulte Como usar um ID externo ao conceder acesso aos seus recursos da AWS a terceiros.

Condições válidas na política de confiança de função do IAM

Verifique se você atende a todas as condições especificadas na política de confiança de função do IAM. Uma condição pode especificar uma data de validade, um ID externo ou que as solicitações só devem vir de endereços IP específicos. No exemplo de política a seguir, se a data atual for qualquer hora após a data especificada, a condição será falsa. A política não pode conceder permissões para assumir a função do 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"
        }
    }