Tentei assumir um perfil do AWS Identity and Access Management (IAM) entre contas. No entanto, recebi um erro semelhante ao seguinte: "An error occurred (AccessDenied) when calling the AssumeRole operation:" ou "Invalid information in one or more fields. Check your information or contact your administrator."
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solucionar erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Para assumir o perfil do IAM em uma conta cruzada, primeiro edite as permissões da conta que assumiu o perfil do IAM. Em seguida, edite a política de confiança na outra conta do AWS que permite assumir o perfil do IAM.
No exemplo a seguir, você tem duas contas: Account_Bob e Account _Alice. Você também tem um usuário ou perfil do IAM chamado Bob em Account_Bob e um perfil do IAM chamado Alice em Account_Alice. Nesse cenário, Bob assumirá o perfil do IAM chamado Alice.
Para usar a chamada de API AssumeRole em várias contas da AWS ou entre contas, você deve ter uma política de confiança para conceder permissão para assumir perfis.
Exemplo de permissões necessárias para Bob:
{ "Version": "2012-10-17",
"Statement": [
{
"Sid": "PermissionToAssumeAlice",
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::Account_Alice:role/Alice"
}
]
}
Exemplo de política de confiança necessária para Alice:
{ "Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT_Bob:user/Bob"
},
"Action": "sts:AssumeRole"
}
]
}
Exemplo de comando da AWS CLI para assumir um perfil do IAM entre contas:
aws sts assume-role --role-arn "arn:aws:iam::123456789012:role/example-role" --role-session-name assume-cross-account
Para obter mais informações, consulte Como faço para assumir um perfil do IAM usando a AWS CLI?
Para evitar erros quando você assumir um perfil do IAM entre contas, certifique-se de seguir estas práticas recomendadas para o seu caso de uso:
- O perfil que está assumindo, Bob, deve ter permissões para a ação da API AssumeRole.
- Você deve estar conectado à conta da AWS como Bob. Para obter mais informações, consulte Usar um alias para seu ID da Conta da AWS.
- O perfil que está sendo assumido, Alice, deve existir. Verifique se ele não foi excluído e se o nome do recurso da Amazon (ARN) está configurado corretamente.
- Se você usar o encadeamento de perfis, certifique-se de não usar as credenciais do IAM de uma sessão anterior. Para obter mais informações, consulte a seção de encadeamento de perfis dos termos e conceitos de perfis.
- Se Account_Bob fizer parte de uma organização da AWS, pode haver uma política de controle de serviços (SCP) que restrinja o acesso de AssumeRole com Account_Bob ou Account_Alice. Certifique-se de editar ou remover a SCP que restringe o acesso com Account_Bob ou Account_Alice. Para obter mais informações, consulte SCPs.
Informações relacionadas
Como posso obter dados para ajudar na solução de problemas de permissão de acesso negado ou erros não autorizados do IAM?
Mudar de um usuário para um perfil do IAM (console)
Alterar para uma perfil do IAM (AWS CLI)