Eu usei o Console de Gerenciamento da AWS para tentar trocar os perfis do AWS Identity and Access Management (AWS IAM). Recebi o seguinte erro: “Invalid information in one or more fields. Check your information or contact your administrator.”
Breve descrição
Você recebe a mensagem de erro Invalid information in one or more fields devido a uma política configurada incorretamente. Você também pode receber a mensagem de erro deles quando sua solicitação não atende às condições de uma política de confiança.
Resolução
Configure as permissões AssumeRole para seu usuário ou perfil do IAM
Para conceder a um usuário permissões para trocar de perfil, adicione a ação AssumeRole do AWS Security Token Service (AWS STS) à sua política de identidade do IAM.
Exemplo 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"
}
}
Observação: substitua o arn:aws:iam::account_id_number:role/role-name-you-want-to assume pelo nome do recurso da Amazon (ARN) do perfil do IAM.
Verifique se a política de confiança do perfil do IAM inclui uma entidade principal
Atualize a política de confiança para incluir uma entidade principal. A entidade principal pode ser um usuário ou um perfil do IAM ou uma conta da AWS.
Observação: se você adicionar uma conta como entidade principal confiável, todas as identidades nessa conta poderão assumir o perfil. No entanto, as identidades devem ter a permissão AssumeRole.
Por exemplo, o usuário do IAM Carlos na ID da conta 111222333444 quer assumir o perfil Maria na ID da conta 444555666777.
A ID da conta 111222333444 é a conta confiável e a ID da conta 444555666777 é a conta confiável. O perfil de Maria do IAM tem uma política de confiança que confia em Carlos.
Exemplo de política de confiança para o perfil do IAM de Maria:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Principal": {
"AWS": "arn:aws:iam::111222333444:user/Carlos"
},
"Condition": {}
}
]
}
Carlos também deve ter uma política do IAM para assumir o perfil do IAM de Maria na outra conta.
Exemplo de política do IAM para Carlos assumir o perfil de Maria do IAM:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::444555666777:role/Maria"
}
]
}
Para permitir que todas as identidades do IAM em uma conta assumam o perfil, use a entidade principal raiz da conta.
Na política de confiança do perfil do IAM de Maria, substitua usuário/Carlos por root:
"AWS": "arn:aws:iam::111222333444:root"
Na política de confiança do perfil do IAM de Maria, também é possível usar o curinga (*) para que o usuário possa assumir qualquer perfil em qualquer conta:
"Resource": "arn:aws:iam::444555666777:role/\\\*"
As alterações anteriores permitem que qualquer usuário ou perfil do IAM na conta 111222333444 assuma o perfil do IAM de Maria, que está na ID da conta 444555666777. Para minimizar o número de identidades que podem assumir o perfil, é uma prática recomendada especificar o ARN somente do usuário ou do perfil do IAM que requer acesso.
Para obter mais informações, consulte Atualizar uma política de confiança de perfil.
Negação explícita de SCPs ou de uma política do IAM
Se sua conta fizer parte do AWS Organizations, a conta gerencial poderá aplicar políticas de controle de serviços (SCPs) que restringem a troca de perfis. Para obter mais informações, consulte Práticas recomendadas para a conta gerencial.
Verifique se há uma Negação explícita para a ação AssumeRole na política de SCP ou IAM. Se houver uma Negação explícita, a negação substituirá qualquer permissão Permitir, o que impede a assunção do perfil. No exemplo anterior, se houver uma Negação explícita, Carlos não poderá assumir o perfil do IAM de Maria.
Além disso, verifique se os SCPs restringem o acesso com base nas regiões da AWS. O AWS STS é um serviço global, portanto, você deve listá-lo na lista global de exclusão de serviços.
Para obter mais informações, consulte Negar acesso à AWS com base na região da AWS solicitada.
O perfil exige um sts:ExternalId para mudar para o perfil do IAM
Se o perfil do IAM exigir uma chave sts:ExternalId, você poderá usar o Console de Gerenciamento da AWS para trocar de perfil. Edite a política para usar a ação AssumeRole com o parâmetro sts:ExternalId.
A chave sts:ExternalId permite o acesso de terceiros aos recursos da AWS.
Para obter mais informações, consulte Acesso às contas da AWS de propriedade de terceiros.
Verifique as condições na política de confiança do perfil do IAM
Analise as condições que você configurou na política de confiança, como uma data de expiração ou a exigência de um ExternalId. Sua solicitação deve atender às condições da política de perfil do IAM.
Por exemplo, se a data atual for posterior à data especificada, a condição é falsa e a política não pode conceder permissão para assumir o perfil.
A política a seguir nega a permissão para assumir o perfil após 1º de maio 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"
}
}
}
Certifique-se de que sua solicitação atenda a todas as condições da política de confiança.
Informações relacionadas
Como faço para fornecer um link para um perfil do IAM aos usuários do IAM?
Como faço para usar o IAM para acessar recursos em outra conta da AWS?
Qual é a diferença entre uma política de controle de serviços do AWS Organizations e uma política do IAM?