Conceder permissões a um usuário para alternar funções - AWS Identity and Access Management

Conceder permissões a um usuário para alternar funções

Quando um administrador cria uma função para acesso entre contas ele estabelece confiança entre a conta que possui a função e os recursos (conta confiável) e a conta que contém os usuários (conta confiável). Para fazer isso, o administrador da conta confiável especifica o número da conta confiável como Principal na política de confiança da função. Isso permite que potencialmente qualquer usuário na conta confiável assuma a função. Para concluir a configuração, o administrador da conta confiável deve conceder a grupos ou usuários específicos nessa conta permissão para alternar para a função.

Para conceder a um usuário permissão para mudar para uma função, o administrador da conta confiável cria uma política para o usuário. Ou o administrador pode editar uma política existente para adicionar os elementos necessários. Depois, o administrador pode enviar aos usuários um link que leva o usuário para a página Trocar de função com todos os detalhes já preenchidos. Como alternativa, o administrador pode fornecer ao usuário o número de ID da conta ou o alias da conta que contém a função e o nome da função. Em seguida, o usuário acessa a página Alternar função e adiciona os detalhes manualmente. Para obter detalhes sobre como um usuário alterna as funções, consulte Alternar para uma função (console).

Você só pode alternar funções quando fizer login como um usuário do IAM. Você não pode mudar de funções quando se conecta como o Usuário raiz da Conta da AWS .

Importante

Não é possível alternar no AWS Management Console para uma função que exija um valor ExternalId. Você pode alternar para uma função apenas chamando a API AssumeRole, que dá suporte ao parâmetro ExternalId.

Observações
  • Este tópico aborda políticas para um usuário, porque, em última análise, estamos concedendo permissões a um usuário para realizar uma tarefa. No entanto, é melhor prática não conceder permissões diretamente a um usuário individual. Para facilitar o gerenciamento, recomendamos atribuir políticas e conceder permissões a grupos do IAM e, em seguida, tornar os usuários membros dos grupos apropriados.

  • Quando você muda de funções no AWS Management Console, o console sempre usa suas credenciais originais para autorizar a mudança. Isso se aplica se você fizer login como usuário do IAM, como função federada SAML ou como função federada de identidade da web. Por exemplo, se você mudar para a Função A, ele usa o usuário original ou as credenciais de função federada para determinar se você tem permissão para assumir a Função A. Se você tentar mudar para a Função B enquanto estiver usando a Função A, seu usuário original ou as credenciais de função federada serão usadas para autorizar sua tentativa. As credenciais da Função A não são usadas para essa ação.

Criar ou editar a política

Uma política que conceda a um usuário permissão para assumir uma função deve incluir uma instrução com o efeito Allow sobre o seguinte:

  • A ação sts:AssumeRole

  • O Amazon Resource Name (ARN – Nome de recurso da Amazon) da função em um elemento Resource

Isso é mostrado no exemplo a seguir. Os usuários que obtêm a política (por meio da associação do grupo ou diretamente anexada) podem alternar para a função especificada.

nota

Se Resource estiver definido como *, o usuário poderá assumir qualquer função em qualquer conta que confie na conta do usuário. (Em outras palavras, a política de confiança da função especifica a conta do usuário como Principal). Como melhor prática, recomendamos que você siga o princípio do menor privilégio e especifique o nome de recurso da Amazon completo apenas para as funções de que o usuário precisa.

O exemplo a seguir mostra uma política que permite que o usuário assuma funções em apenas uma conta. Além disso, a política usa um curinga (*) para especificar que o usuário só pode alternar para uma função caso o nome da função comece com as letras Test.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:role/Test*" } }
nota

As permissões que a função concede ao usuário não são adicionadas às permissões já concedidas ao usuário. Quando um usuário alterna para uma função, ele desiste temporariamente de suas permissões originais em troca das concedidas pela função. Quando o usuário sai da função, as permissões originais do usuário são restauradas automaticamente. Por exemplo, digamos que as permissões do usuário permitam trabalhar com instâncias do Amazon EC2, mas a política de permissões da função não conceda essas permissões. Nesse caso, enquanto usa a função, o usuário não pode trabalhar com instâncias do Amazon EC2 no console. Além disso, as credenciais temporárias obtidas por meio de AssumeRole não funcionam com instâncias do Amazon EC2 de maneira programática.

Fornecer informações ao usuário

Depois de criar uma função e conceder ao usuário permissões a fim de alternar para ela, você deverá fornecer ao usuário o seguinte:

  • O nome da função

  • O ID ou alias da conta que contém a função

Você pode facilitar as coisas para seus usuários enviando a eles um link pré-configurado com o ID da conta e o nome da função. Você pode ver o link da função na última página do assistente Criar função ou na página Resumo da função de qualquer função habilitada entre contas.

Você também pode usar o seguinte formato para construir manualmente o link. Substitua o ID da conta ou o alias e o nome da função para os dois parâmetros no exemplo a seguir.

https://signin.aws.amazon.com/switchrole?account=your_account_ID_or_alias&roleName=optional_path/role_name

Recomendamos direcionar os usuários para Alternar para uma função (console) para orientá-los durante o processo.

Considerações

  • Se você criar a função de forma programática, poderá criar a função com um caminho além de um nome. Se fizer isso, forneça o caminho completo e o nome da função aos usuários na página Switch Role (Alternar função) do AWS Management Console. Por exemplo: division_abc/subdivision_efg/role_XYZ.

  • Se você criar a função de forma programática, poderá adicionar um Path de até 512 caracteres, além de um RoleName. O nome da função pode ter até 64 caracteres. No entanto, para usar uma função com o recurso Trocar de função no AWS Management Console, o Path e o RoleName combinados não poderão exceder 64 caracteres.

  • Por motivos de segurança, você pode revisar logs do AWS CloudTrail para saber quem executou uma ação na AWS. Você pode usar a chave de condição sts:SourceIdentity na política de confiança de função para exigir que os usuários especifiquem uma identidade quando assumirem uma função. Por exemplo, você pode exigir que os usuários do IAM especifiquem o próprio nome de usuário como identidade de origem. Isso pode ajudar a determinar qual usuário executou uma ação específica na AWS. Para obter mais informações, consulte sts:SourceIdentity. Você também pode usar sts:RoleSessionName para exigir que os usuários especifiquem um nome de sessão quando assumem uma função. Isso pode ajudar a diferenciar entre sessões de função quando uma função é usada por diferentes entidades.