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

Ao criar um perfil para acesso entre contas, o administrador estabelece confiança entre a conta que possui perfil, 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 potencialmente permite que qualquer usuário na conta confiável assuma o perfil. 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 permissão para alternar para um perfil
  1. Como administrador da conta confiável, crie uma nova política para o usuário ou edite uma política existente adicionando os elementos necessários. Para obter mais detalhes, consulte Criação ou edição da política.

  2. Em seguida, escolha como deseja compartilhar as informações do perfil:

    • Link do perfil: envie aos usuários um link que os leve para a página Switch Role (Alternar perfil) com todos os detalhes já preenchidos.

    • Account ID or alias (ID ou alias da conta): forneça a cada usuário o nome do perfil com o número de ID da conta ou o alias da conta. Em seguida, o usuário acessa a página Alternar função e adiciona os detalhes manualmente.

    Para obter mais detalhes, consulte Fornecer informações ao usuário.

Observe que você só pode alternar funções quando fizer login como um usuário do IAM, uma função federada SAML ou uma função federada de identidade da web. 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ê só pode alternar para tal perfil chamando a API AssumeRole, que é compatível com o parâmetro ExternalId.

Observações
  • Este tópico aborda políticas para um usuário, porque, em última análise, você está concedendo permissões a um usuário para realizar uma tarefa. Porém, não recomendamos conceder permissões diretamente a um usuário individual. Ao assumir um perfil, o usuário recebe as permissões associadas a esse perfil.

  • 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 RoleA, o IAM utilizará o usuário original ou as credenciais de perfil federado para determinar se você tem permissão para assumir o RoleA. 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

Os usuários que obtêm a política têm permissão para alternar perfis no recurso listado (por meio da associação do grupo ou anexado diretamente).

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 simplificar o acesso para seus usuários enviando a eles um link pré-configurado com o ID da conta e o nome do perfil. Você pode ver o link do perfil depois de concluir o assistente de Criar perfil selecionando o banner Exibir perfil ou na página Resumo do perfil para qualquer perfil habilitado para várias 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 direcionar seus usuários a Alternância para uma função (console) para orientá-los durante o processo. Para solucionar problemas comuns que você pode encontrar ao assumir uma função, consulte Não consigo assumir uma função.

Considerações
  • Se você criar o perfil de forma programática, poderá criá-lo com um caminho e 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 um perfil de forma programática, poderá adicionar um Path de até 512 caracteres e 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 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 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.