Concessão de permissões a um usuário para alternar funções - AWS Identity and Access Management

Concessão de 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 de confiança) 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 de confiança 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 alternar para uma função, o administrador da conta confiável cria uma nova política para o usuário. Ou o administrador pode editar uma política existente para adicionar os elementos necessários. O administrador pode então enviar aos usuários um link que o direciona para a página Switch Role (Alternar 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 Alternância para uma função (console).

Observe que você só pode alternar perfis quando fizer login como usuário do IAM, perfil federado SAML ou como perfil federado de identidade da web. Você não pode alternar funções se fizer login 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çãoB enquanto estiver usando a FunçãoA, o usuário original ou as credenciais de função federada serão usadas para autorizar sua tentativa. As credenciais para RoleA não são usadas para essa ação.

Criação ou edição da 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 for 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 ARN 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: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 o 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 ou o alias da conta 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 que você direcione seus usuários para o tópico Alternância 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 você fizer isso, deverá fornecer o caminho completo e o nome da função aos usuários para que eles possam inseri-los 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 Switch Role (Alternar função) no AWS Management Console, o Path e o RoleName combinados não podem 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 da 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 seu próprio nome de usuário como a identidade-fonte. Isso pode ajudar você a determinar qual usuário executou uma ação específica na AWS. Para 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 assumirem uma função. Isso pode ajudar você a diferenciar as sessões de função quando uma função é usada por diferentes entidades de segurança.