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
-
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.
-
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
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 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 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 umRoleName
. 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, oPath
e oRoleName
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.