Alternância para uma função do IAM (Tools for Windows PowerShell) - AWS Identity and Access Management

Alternância para uma função do IAM (Tools for Windows PowerShell)

Uma função especifica um conjunto de permissões que você pode usar para acessar os recursos da AWS de que você precisa. Nesse sentido, ela é semelhante a um usuário do AWS Identity and Access Management (IAM). Ao fazer login como usuário, você obtém um conjunto específico de permissões. No entanto, você não faz login em uma função, mas uma vez que fez login, pode mudar para uma função. Isso separa, temporariamente, as permissões originais de usuário e, em vez disso, oferece a você as permissões atribuídas à função. A função pode estar em sua própria conta ou em qualquer outra conta da AWS. Para obter mais informações sobre funções, seus benefícios e como criar e configurá-las, consulte Perfis do IAMe Criação de funções do IAM.

Importante

As permissões do seu usuário do IAM e quaisquer funções para as quais você mude não são cumulativas. Apenas um conjunto de permissões é ativo por vez. Quando você muda para uma função, perde, temporariamente, as permissões de usuário e trabalha com permissões atribuídas à função. Ao sair da função, suas permissões de usuário são, automaticamente, restauradas.

Esta seção descreve como alternar entre funções ao trabalhar na linha de comando com o AWS Tools for Windows PowerShell.

Imagine que você tenha uma conta no ambiente de desenvolvimento e, ocasionalmente, precise trabalhar com o ambiente de produção na linha de comando usando o Tools for Windows PowerShell. Você já tem um conjunto de credenciais de chave de acesso disponível para você. Elas podem ser um par de chaves de acesso atribuído ao seu usuário padrão do IAM. Ou, se tiver feito login como um usuário federado, elas poderão ser o par de chaves de acesso para a função atribuída inicialmente a você. Você pode usar essas credenciais para executar o cmdlet Use-STSRole que transmite o ARN de uma nova função como um parâmetro. O comando retorna credenciais de segurança temporárias para a função solicitada. Em seguida, você pode usar essas credenciais em comandos subsequentes do PowerShell com as permissões da função para acessar recursos na produção. Enquanto você usa a função, não pode usar suas permissões de usuário na conta de desenvolvimento, pois apenas um conjunto de permissões pode estar ativado por vez.

nota

Por motivos de segurança, os administradores podem revisar logs do AWS CloudTrail para saber quem executou uma ação na AWS. Seu administrador pode exigir que você especifique uma identidade-fonte ou um nome de sessão de função ao assumir a função. Para obter mais informações, consulte sts:SourceIdentity e sts:RoleSessionName.

Todas as chaves de acesso e tokens são apenas exemplos e não podem ser usados da forma que são mostrados. Substitua pelos valores apropriados do seu ambiente real.

Para alternar para uma função (Tools for Windows PowerShell)

  1. Abra um prompt de comando do PowerShell e configure o perfil padrão para usar a chave de acesso do usuário do IAM ou de sua função federada. Se você já tive usado o Tools for Windows PowerShell, isso provavelmente já foi feito. Observe que você só pode alternar funções se estiver conectado como um usuário do IAM, não como usuário raiz da Conta da AWS.

    PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7EXAMPLE -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -StoreAs MyMainUserProfile PS C:\> Initialize-AWSDefaults -ProfileName MyMainUserProfile -Region us-east-2

    Para obter mais informações, consulte Uso de credenciais da AWS no Guia do usuário do AWS Tools for Windows PowerShell.

  2. Para recuperar credenciais para a nova função, execute o comando a seguir para alternar para a função RoleName na conta 123456789012. Você obtém o ARN da função do administrador da conta que criou a função. O comando exige que você também forneça um nome de sessão. Você pode escolher qualquer texto para isso. O comando a seguir solicita as credenciais e, em seguida, captura o objeto de propriedade Credentials do objeto de resultados retornados e o armazena na variável $Creds.

    PS C:\> $Creds = (Use-STSRole -RoleArn "arn:aws:iam::123456789012:role/RoleName" -RoleSessionName "MyRoleSessionName").Credentials

    $Creds é um objeto que agora contém os elementos AccessKeyId, SecretAccessKey e SessionToken de que você precisa nas etapas a seguir. Os seguintes comandos de exemplo ilustram valores comuns:

    PS C:\> $Creds.AccessKeyId AKIAIOSFODNN7EXAMPLE PS C:\> $Creds.SecretAccessKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY PS C:\> $Creds.SessionToken AQoDYXdzEGcaEXAMPLE2gsYULo+Im5ZEXAMPLEeYjs1M2FUIgIJx9tQqNMBEXAMPLECvSRyh0FW7jEXAMPLEW+vE/7s1HRp XviG7b+qYf4nD00EXAMPLEmj4wxS04L/uZEXAMPLECihzFB5lTYLto9dyBgSDyEXAMPLE9/g7QRUhZp4bqbEXAMPLENwGPy Oj59pFA4lNKCIkVgkREXAMPLEjlzxQ7y52gekeVEXAMPLEDiB9ST3UuysgsKdEXAMPLE1TVastU1A0SKFEXAMPLEiywCC/C s8EXAMPLEpZgOs+6hz4AP4KEXAMPLERbASP+4eZScEXAMPLEsnf87eNhyDHq6ikBQ== PS C:\> $Creds.Expiration Thursday, June 18, 2018 2:28:31 PM
  3. Para usar essas credenciais para qualquer comando subsequente, inclua-as com o parâmetro -Credentials. Por exemplo, o comando a seguir usa as credenciais da função e só funcionará se for concedida a permissão iam:ListRoles à função e o cmdlet Get-IAMRoles puder ser executado:

    PS C:\> get-iamroles -Credential $Creds
  4. Para retornar para as suas credenciais originais, basta parar de usar o parâmetro -Credentials $Creds e permitir que o PowerShell reverta para as credenciais que estão armazenadas no perfil padrão.