Como assumir uma função IAM usando AWS CLI?

Como Assumir Uma Funcao Iam Usando Aws Cli



Como a AWS oferece vários serviços e enormes benefícios, é natural que as preocupações de segurança tenham sido levantadas pelos especialistas em TI. Para resolver essas questões de segurança, o serviço IAM foi introduzido pela AWS. AWS IAM é um dos principais serviços da web que permite aos usuários proteger os recursos da AWS. O IAM fornece a funcionalidade de gerenciamento central de acesso dos serviços AWS, definindo as permissões para diferentes usuários.

Esboço rápido

Neste artigo, você aprenderá sobre:







Qual é a função do AWS IAM?
Qual é a função assumida na AWS?
Como assumir uma função IAM usando AWS CLI?



Pensamentos finais



Com funções e permissões do IAM, podemos determinar o acesso autenticado e autorizado aos serviços da AWS. Essas funções e permissões só podem ser atribuídas pelo usuário root (proprietário) da conta da AWS.





Qual é a função do AWS IAM?

A função do IAM é uma identidade criada pelo usuário root na conta da AWS. Essa identidade recebe permissões específicas que definem o escopo de acesso da função do IAM aos recursos da AWS. Essas permissões podem ser gerenciadas pela AWS ou definidas de forma personalizada pelo usuário root.

Uma função do IAM é muito semelhante ao usuário do IAM, exceto que a função do IAM é uma identidade com determinadas permissões, enquanto o usuário pode assumir essas funções para executar determinadas funcionalidades. As permissões concedidas à função definem quais ações podem ser executadas com essa identidade (função do IAM).



Qual é a função assumida na AWS?

Assume Role é uma das funcionalidades do serviço AWS IAM que permite ao usuário atuar com serviços AWS embora as permissões para acessar ou manipular o recurso dentro do serviço não sejam atribuídas ao usuário. Essas permissões são atribuídas indiretamente ao usuário quando uma função é assumida. Um conjunto de credenciais temporárias junto com um login baseado em sessão é usado para acessar os recursos da AWS.

Essas credenciais temporárias incluem uma chave de acesso secreta, ID de chave de acesso e token de segurança. As funções do IAM criadas pelo usuário raiz da AWS podem ser assumidas por outros usuários da conta da AWS ou por aqueles usuários cujo ARN é mencionado na política da função. A política que contém o ARN dos usuários ou recursos é conhecida como Política de confiança .

Qual é a diferença entre a política de permissão e a política de confiança?

Antes de implementar a funcionalidade de assumir função por meio de métodos diferentes, existem dois conceitos principais que devem ser compreendidos pelo usuário. Existem dois tipos de políticas no serviço IAM:

    • Política de confiança: Uma política de confiança determina quem pode assumir uma função específica do IAM. Para que uma função seja assumida por um usuário, o ARN do usuário é mencionado na política de confiança da função IAM. Esta política de confiança determina se o usuário ou os recursos são uma entidade confiável para assumir esta função.
    • Política de permissão: Esta política determina o que um usuário pode fazer ou quais ações podem ser executadas com a função.

Como assumir uma função IAM usando AWS CLI?

Assumir uma função é semelhante a disfarçar-se de outro usuário autenticado e autorizado a realizar determinadas ações. Ao assumir uma identidade, a AWS garantiu que a segurança permanecesse intacta.

Vamos entender o funcionamento da funcionalidade Assume-role considerando o exemplo a seguir.

Por exemplo, existe um usuário na conta da AWS que não recebeu nenhuma permissão para o bucket S3. O “Acesso somente leitura” é chamada de política de permissão anexada a uma função do IAM. Para que o usuário assuma esta função, o ARN do usuário é mencionado na política da função IAM. Esta política é agora chamada de “política de confiança” e é diferente da política de permissão. A política de confiança é crucial porque ajuda a AWS a determinar se o usuário é uma entidade autorizada ou não.

Observe que o ARN é mencionado na política de confiança e não na política de permissão da função IAM. Ao assumir uma função, o usuário pode realizar algumas ações administrativas definidas pela política de permissão da função. Essas ações incluem adicionar, excluir, modificar ou restaurar um recurso, etc.

A seguir estão os três métodos para assumir uma função com AWS CLI:

Método 1: usando o STS (serviço de token de segurança)

Os usuários podem assumir uma função executando os comandos da seção STS (Secure Token Service) que retorna um conjunto de credenciais temporárias. As credenciais temporárias são usadas para estabelecer um login baseado em sessão para fazer chamadas de API para os recursos. No entanto, existem duas exceções ao usar o STS, ou seja, GetFederationToken e ObtenhaSessionToken.

O usuário está impedido de acessar esses tokens para proteger as informações confidenciais dos Tokens de Sessão e de Federação. Para que a segurança não seja comprometida em hipótese alguma. Ao assumir uma função, um usuário pode elevar os privilégios atribuídos.

Nesta seção do artigo, solicitaremos um conjunto de credenciais temporárias usando os comandos STS. Abaixo estão as etapas:

Etapa 1: Crie um usuário e uma política de usuário

Primeiro, vamos criar um usuário IAM sem permissões. Para isso, abra o DMC no menu Iniciar do Windows:


Apenas o usuário root pode criar um Usuário IAM dentro da conta AWS. Portanto, faça login na conta raiz da AWS usando o seguinte comando:

aws configurar


As credenciais já estão configuradas na CLI para esta demonstração, conforme mostrado na saída do comando:


Saber mais:

Para criar um usuário IAM , forneça o seguinte comando para CLI:

aws iam criar usuário --nome de usuário usuário de demonstração


Substitua o usuário de demonstração com o seu Nome de usuário do IAM.

Salve o “Arn” fornecido na saída do comando como será obrigatório quando criando o Política de confiança :


Consulte Mais informação:

O próximo passo é permitir o usuário (usuário demo ) para assumir um papel . Para isso, crie um Arquivo JSON usando qualquer editor de texto você prefere. Para esta demonstração, usamos Bloco de anotações conforme especificado no comando mencionado abaixo:

Para Windows

bloco de notas user-policy.json


Substitua o política de usuário pelo nome da sua política do IAM.

Para sistema operacional Linux

porque política de usuário.json


No momento, estamos usando o sistema operacional Windows para esta demonstração:


Isso abrirá o bloco de notas. Cole a seguinte política no bloco de notas e pressione “CTRL+S” do teclado para salvar as alterações:

{
'Versão' : '17/10/2012' ,
'Declaração' : [
{
'Efeito' : 'Permitir' ,
'Ação' : [
'ec2:Descrever*' ,
'iam:ListRoles' ,
'sts:AssumeRole'
] ,
'Recurso' : '*'
}
]
}


Abaixo é fornecida uma breve descrição da política especificada:

    • ec2:Descrever: Esta permissão especifica que o usuário pode visualizar ou listar todas as AMIs, snapshots ou instâncias do EC2
    • iam:ListRoles: Essa permissão especifica que o usuário pode listar todas as funções no serviço IAM.
    • sts:AssumeRole: Esta permissão representa que o usuário pode assumir uma função definida no serviço IAM.

Aqui, a política foi editada no bloco de notas e salva:


Cada AWS recurso é atribuído um Nome do recurso de acesso (ARN) qual identifica exclusivamente o recurso. Para determinar o ARN da política, use o comando mencionado abaixo.

aws iam criar política --nome da política política de usuário --documento de política arquivo: // política de usuário.json


No comando mencionado acima:

    • -nome da política: Substitua o valor “política do usuário” com qualquer nome de política de sua preferência.
    • –documento de política: Neste campo, substitua o “ política de usuário.json” pelo nome do arquivo json que contém a política do usuário.

A saída do comando mencionado acima é a seguinte. Salve o “Arn” mencionado na saída da política, pois será necessário ao anexar esta política ao usuário:

Etapa 2: anexar política ao usuário

Esta política permitirá ao usuário listar os Instâncias EC2 , Amigos , etc. Quando o usuário assume uma função com uma permissão diferente, o usuário poderá executar apenas aquela ação específica permitida pela política de permissão.

Para anexar a política ao usuário criado anteriormente nesta seção, use o seguinte comando:

aws iam attachment-user-policy --nome de usuário usuário de demonstração --policy-arn 'arn:aws:iam::123456789:policy/user-policy'


No comando mencionado acima:

    • -nome de usuário: Substitua o “usuário de demonstração” no -nome de usuário campo com seu nome de usuário IAM.
    • –política-arn: Da mesma forma, no –política-arn, especifique o “Arn” da saída do comando anterior, ou seja, –create-policy.

Ao executar o comando após fazer as alterações necessárias, a política foi anexada com sucesso ao usuário:


Para verificar se a política foi anexada ao usuário, forneça o seguinte comando à CLI:

aws iam políticas de usuário anexadas à lista --nome de usuário usuário de demonstração


Substitua o usuário de demonstração com seu IAM nome de usuário especificado ao criar o usuário.

A saída do comando a seguir verifica se a política foi anexada ao usuário com êxito:

Etapa 3: crie uma política de confiança e uma função IAM

Uma relação de confiança é estabelecida quando um recurso ou o ARN de um usuário é especificado em uma política. Essa funcionalidade permite então que os usuários ou entidades executem determinadas ações, pois são considerados confiáveis ​​pela política.

Nesta etapa, criaremos uma política que estabeleça a relação de confiança entre a função IAM e o usuário. Esta política de confiança será anexada à função do IAM. A função IAM será então assumida pelo usuário, o que permitirá indiretamente que o usuário execute as ações especificadas na política.

Para criar uma política de confiança, os comandos são fornecidos da seguinte forma:

Para Windows

bloco de notas trust-role-policy.json


Substitua o trust-role-policy.json com o nome de sua preferência para a apólice.

Para sistema operacional Linux

porque trust-role-policy.json


Substitua o trust-role-policy.json com o nome de sua preferência para a apólice.

A política de confiança segue o Formato JSON conforme especificado pelo .json extensão no seguinte comando:


Isso abrirá o bloco de notas. Colar a seguir política dentro do bloco de notas e aperte o “CTRL+S” botão do teclado para salvar as alterações. O ARN do usuário também pode ser copiado do painel do usuário do console IAM. Para isso, acesse o dashboard do IAM e clique no nome do usuário. Na configuração exibida, copie o ARN do usuário exibido na seção Resumo.:

{
'Versão' : '17/10/2012' ,
'Declaração' : {
'Efeito' : 'Permitir' ,
'Principal' : {
'AWS' : 'arn:aws:iam::123456789012:usuário/usuário-exemplo'
} ,
'Ação' : 'sts:AssumeRole'
}
}


Na política acima mencionada:

    • AWS: Substitua o Valor do campo AWS “arn:aws:iam::123456789012:user/example-user ”com o ARN do usuário que foi exibido na saída do comando –create-user.

O usuário pode impedir que outros usuários assumam a função do IAM especificando o ARN do usuário no campo “AWS” campo:


Consulte Mais informação:

Agora, crie uma função IAM e anexe a política de confiança a ela. Para criar uma função IAM, use o comando mencionado abaixo:

aws iam criar função --nome do papel papel do usuário --assume-role-policy-documento arquivo: // trust-role-policy.json


A seguir está a descrição dos campos mencionados acima:

    • -nome do papel: Este campo é usado para inserir o nome que será atribuído a esta função do IAM. Substitua o valor “user-role” pelo nome da função IAM de sua escolha.
    • –assumir-função-documento-política: Neste campo especifique o caminho conforme fornecido no comando. Substitua trust-role-policy.json pelo nome da política conforme especificado por você na seção anterior.

Ao executar este comando, ele retornará diversas informações na saída, por exemplo, ARN, Caminho, ID, etc:


Consulte Mais informação:

Ao assumir esta função, o usuário estará apto a realizar as “Acesso somente leitura” ação com o bucket S3. O comando é dado da seguinte forma:

aws iam anexar-role-policy --nome do papel papel do usuário --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


No comando acima:

    • -nome do papel: Substituir ' papel do usuário' no campo –role-name com o Nome da função IAM que você especificou anteriormente neste tutorial.
    • –política-arn: O arn especificado em –policy-arn refere-se à permissão ReadOnlyAccess para o bucket S3.

Nesta imagem, a função recebeu a permissão ReadOnlyAccess para o bucket S3:


Para verificar se a permissão foi atribuída à função ou não, use o seguinte comando:

aws iam políticas de função anexadas à lista --nome do papel papel do usuário


Substitua o 'papel do usuário' pelo nome da sua função do IAM.

O “AmazonS3ReadOnlyAccess” a permissão foi anexada à função do IAM. A saída do comando é dada da seguinte forma:

Etapa 4: crie as chaves de acesso

Nesta seção, criaremos as chaves de acesso do usuário. As chaves de acesso serão usadas para fazer login na conta AWS:

aws iam create-access-key --nome de usuário usuário de demonstração


Substitua o usuário de demonstração com seu nome de usuário IAM fornecido no momento da criação de um usuário.

Aqui, o comando retornou um conjunto de pares de chaves de acesso (AccessKeyId e chave de acesso secreta) com detalhes adicionais, como data de criação, status etc. Salvar o AccessKeyId e SecretAccessKey conforme exigido posteriormente no tutorial:


Consulte Mais informação:

Etapa 5: configurar a chave de acesso e verificar o usuário IAM

Para configurar a chave de acesso, forneça o seguinte comando ao CMD e insira o ID da chave de acesso e a chave de acesso secreta:

aws configurar


Forneça o ID da chave de acesso e a chave de acesso secreta à CLI que foram criadas na Etapa 4 desta seção. Para a região, mantivemos as configurações padrão. Os usuários podem configurar qualquer formato de saída para o formato de saída padrão. Para esta demonstração, especificamos o JSON formatar:


Para verificar se o usuário IAM foi configurado, forneça o seguinte comando à CLI:

aws sts get-identidade do chamador


A saída do comando indica que o “usuário de demonstração” foi configurado com sucesso e está atualmente conectado à conta AWS:


Para determinar se o usuário do IAM pode listar as instâncias do EC2 e não tem acesso ao bucket S3 atualmente, use o seguinte comando:

aws ec2 descreve instâncias --consulta 'Reservas[*].Instâncias[*].[VpcId, InstanceId, ImageId, InstanceType]'


A saída do comando é dada da seguinte forma:


Agora, forneça o seguinte comando para verificar se o usuário pode acessar o bucket S3:

ahs s3 eu


Isso exibirá o 'Acesso negado' erro que indica que o usuário não tem permissão para acessar o bucket S3:

Etapa 6: assumir a função do IAM

O usuário tem permissão para listar as funções do IAM na conta da AWS. Portanto, para assumir o Role, primeiro adquiriremos as informações necessárias como ARN executando o seguinte comando:

funções de lista aws iam --consulta 'Roles[?RoleName == 'user-role'].[RoleName, Arn]'


Substitua “user-role” pelo nome da função IAM no campo “RoleName”.

O ARN foi fornecido na saída do comando mencionado acima:


Agora que temos o ARN da função IAM, podemos assumir a função usando o seguinte comando:

aws sts assume função --role-arn 'arn:aws:iam::123456789012:role/example-role' --role-nome da sessão Sessão AWSCLI


No comando acima:

    • –role-arn: Substitua o valor mencionado para –role-arn pelo ARN da função IAM.
    • –nome da sessão da função: O usuário pode fornecer qualquer nome de preferência para este campo.

Ao executar o comando mencionado acima, um conjunto de credenciais temporárias foi retornado. Essas credenciais temporárias serão usadas para assumir a função IAM com a permissão desejada, ou seja, ReadOnlyAccess. O AccessKeyId e o SecretAccessKey serão usados ​​ao configurar estas credenciais temporárias:


Aqui está uma breve descrição da saída do comando:

    • Token de Sessão: O token de sessão é usado para criar o login baseado em sessão. Salve o valor deste campo, pois será necessário ao configurar as credenciais.
    • Expiração: O token de sessão tem data e hora de expiração. O Token não terá utilidade após o tempo especificado e o usuário não poderá assumir a função.

Etapa 7: configurar a variável de ambiente

Para configurar as credenciais temporárias, usaremos o comando “set” para Windows e a seguir forneceremos o valor do ID da chave de acesso, chave de acesso secreta, token de sessão, etc:

Para Windows

definir AWS_ACCESS_KEY_ID =RoleAccessKeyID


Substitua RoleAccessKeyID pelo ID da chave de acesso retornado pelo comando na Etapa 6.

Para sistema operacional Linux

exportar AWS_ACCESS_KEY_ID =RoleAccessKeyID


Substitua RoleAccessKeyID pelo ID da chave de acesso retornado pelo comando na Etapa 6.

A chave de acesso foi configurada:


A seguir, configuraremos a chave de acesso secreta usando o comando “set” para Windows:

Para Windows

definir AWS_SECRET_ACCESS_KEY =RoleSecretKey


Substitua RoleSecretKey pelo valor da chave de acesso secreta que foi retornado pelo comando na Etapa 6.

Para sistema operacional Linux

exportar AWS_SECRET_ACCESS_KEY =RoleSecretKey


Substitua AWS_SECRET_ACCESS_KEY pela chave de acesso secreta que foi retornada pelo comando na Etapa 6.

A chave de acesso secreta foi configurada com sucesso:


Por último, configuraremos o token de sessão para estabelecer o login baseado em sessão. Para isso, use o comando mencionado abaixo:

Para Windows

definir AWS_SESSION_TOKEN =RoleSessionToken


Substitua RoleSessionToken pelo valor do token de sessão retornado pelo comando na Etapa 6.

Para sistema operacional Linux

exportar AWS_SESSION_TOKEN =RoleSessionToken


Substitua RoleSessionToken pelo valor do token de sessão retornado pelo comando na Etapa 6.

O valor do token de sessão foi configurado com sucesso:


Para copiar o valor do token de sessão do CMD, pressione “CTRL + SHIFT + C” .

Após configurar as variáveis ​​de ambiente, verifique através do seguinte comando se a função foi assumida pelo usuário:

aws sts get-identidade do chamador


A saída do comando verifica se a função do IAM foi assumido com sucesso pelo usuário, pois o retorno do ARN é “arn:aws:sts::123456789012:função assumida/função do usuário/sessão AWSCLI” em vez de “arn:aws:iam::123456789012:usuário/usuário de demonstração”:


Como a função contém a permissão ReadOnlyAccess, o usuário deverá ser capaz de inscrever os buckets agora. Para isso, forneça o seguinte comando à CLI:

ahs s3 eu


A saída do comando inscreve com sucesso todos os buckets S3 atualmente configurados na conta AWS:


No entanto, o usuário não poderá acessar o serviço EC2 porque a função assumida não tem permissão para o serviço EC2. Para verificar isso, use o seguinte comando:

aws ec2 descreve instâncias --consulta 'Reservas[*].Instâncias[*].[VpcId, InstanceId, ImageId, InstanceType]'


Anteriormente, o usuário podia acessar as informações do serviço EC2. No entanto, ao executar o comando acima mencionado, um 'Acesso negado' Um erro ocorreu. O usuário assumiu com êxito a função do IAM:


Tudo isso é desta seção.

Dica bônus: desative as variáveis ​​de ambiente

Para retornar ao usuário IAM, ou seja, usuário demo, o usuário pode remover as variáveis ​​de ambiente definindo as variáveis ​​de ambiente como strings vazias. A seguir estão os comandos dados:

Para Windows

DEFINIR AWS_ACCESS_KEY_ID =
DEFINIR AWS_SECRET_ACCESS_KEY =
DEFINIR AWS_SESSION_TOKEN =


Para Linux

Use o comando mencionado abaixo:

desarmar AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY AWS_SESSION_TOKEN


Os comandos mencionados acima irão remover a configuração das variáveis ​​de ambiente:


Depois de executar os comandos acima, o console deve agora retornar o “usuário de demonstração” como o usuário conectado no momento em vez da função assumida, ou seja, função do usuário. Para isso utilizaremos o seguinte comando:

aws sts get-identidade do chamador


A saída do comando indica que o usuário conectado no momento é demo-user:


Da mesma forma, para fazer login como usuário root, siga o “C:\Users%USERPROFILE%.aws” caminho e clique no arquivo de credenciais:


No arquivo de credenciais, substitua os valores da chave de acesso e da chave de acesso secreta pelos valores de acesso e chave de acesso secreta do usuário root:


Forneça o seguinte comando à CLI para verificar se as credenciais estão configuradas corretamente:

aws configurar


Aqui, na imagem abaixo, podemos ver que a chave de acesso e a chave de acesso secreto do usuário root foram configuradas com sucesso:


Isso é tudo desta seção do tutorial.

Método 2: usando o parâmetro –profile

Outro método de assumir a função é usar o campo “–profile” na CLI. Esta seção do artigo apresenta a implementação prática de assumir uma função na AWS via –profile. Abaixo estão as etapas para isso:

Etapa 1: crie um usuário IAM

Para criar um usuário IAM, faça login na conta do usuário root via CLI usando o seguinte comando:

aws configurar


As credenciais já estão configuradas na CLI para esta demonstração, conforme mostrado na saída do comando:


Saber mais:

Para criar um usuário IAM, forneça o seguinte comando à CLI:

aws iam criar usuário --nome de usuário usuário de perfil


O usuário foi criado com sucesso. Salve o ARN do usuário conforme exibido na imagem abaixo. O ARN deste usuário IAM será usado posteriormente neste tutorial. Atualmente, não há permissões associadas a este usuário do IAM:


Consulte Mais informação:

Etapa 2: criar chave de acesso

Na AWS, cada usuário recebe um par de chaves de acesso para login. Para criar as chaves de acesso para este usuário, forneça o seguinte comando:

aws iam create-access-key --nome de usuário usuário de perfil


Este comando retorna um conjunto de chaves de acesso. Salvar o AccessKeyId e SecretAccessKey pois será necessário ao fazer login na conta AWS:


Agora, se fizermos login na AWS CLI usando estes AccessKeyId e SecretAccessKey, e acessarmos qualquer recurso, por exemplo. Balde S3, o 'Acesso negado' ocorrerá um erro. Isso ocorre porque atualmente não há permissões associadas ao usuário IAM. Para fazer login na AWS CLI, use o seguinte comando e forneça o ID da chave de acesso e a chave de acesso secreta conforme criada anteriormente:

aws configurar --perfil usuário de perfil


Substitua o “perfil-usuário” pelo nome de usuário do IAM que você forneceu ao criar o usuário.

Aqui, fizemos login com sucesso na AWS CLI como usuário IAM:


Para verificar se esse usuário tem permissões somente leitura para o bucket S3, forneça o seguinte comando à CLI:

ahs s3 eu --perfil usuário de perfil


Substitua profile-user pelo nome de usuário do IAM que você forneceu ao criar o usuário.

Como este usuário não recebeu nenhuma permissão do usuário root, isso resultará no “ Acesso negado ”erro:

Etapa 3: Crie uma política de confiança e uma função IAM

Uma política de confiança determina se um usuário ou recurso da AWS é uma entidade confiável para assumir a função e adquirir as permissões. Essa relação de confiança é criada especificando o ARN do usuário do IAM ou do recurso da AWS na política de permissão.

Para criar uma política de confiança no IAM, forneça o seguinte comando à CLI:

Para Windows

bloco de notas trust-policy.json


Substitua o política de confiança.json com o nome de sua preferência para a apólice.

Para sistema operacional Linux

porque trust-role-policy.json


Substitua o política de confiança.json com o nome de sua preferência para a apólice.

Os usuários podem usar qualquer editor de texto de sua preferência. Para esta demonstração, estamos usando o bloco de notas:


Isso abrirá o bloco de notas para criação da política de confiança. Cole a seguinte política no bloco de notas e pressione “CTRL+S” do teclado para aplicar e salvar as alterações:

{
'Versão' : '17/10/2012' ,
'Declaração' : {
'Efeito' : 'Permitir' ,
'Principal' : {
'AWS' : 'arn:aws:iam::012345678910:usuário/perfil-usuário'
} ,
'Ação' : 'sts:AssumeRole'
}
}


Na política acima: AWS: Substitua o valor “arn:aws:iam::012345678910:user/policy-user” pelo ARN do usuário IAM criado anteriormente nesta seção.

A política foi editada no bloco de notas:


A seguir, criaremos uma função IAM e anexaremos a ela a política de confiança acima. Use o seguinte comando para criar uma função do IAM:

aws iam criar função --nome do papel minha função --assume-role-policy-documento arquivo: // política de confiança.json


No comando mencionado acima:

    • -nome do papel: Substitua o 'minha função' com o nome da função IAM de sua escolha.
    • –assumir-função-documento-política: Neste campo, substitua o termo “trust-policy.json” com o nome da sua política de confiança do IAM

A função IAM foi criada com sucesso. Salve a função do IAM. Salve o ARN da função IAM conforme destacado na imagem a seguir. Este ARN será usado ao configurar o perfil do usuário:


A política de confiança anexada ao IAM identifica se o usuário é confiável ou não para assumir a função. A Política de Permissão determina se a função do IAM tem a permissão necessária para executar uma determinada ação com serviços da AWS ou não.

Como a política de confiança foi anexada à função do IAM, a próxima etapa é anexar a política de permissão à função do IAM. O comando mencionado abaixo será usado para anexar a política de permissão à função IAM:

aws iam anexar-role-policy --nome do papel minha função --policy-arn 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess'


Aqui, a política de permissão foi anexada à função IAM via CLI:

Etapa 4: configurar perfil

Para que o usuário assuma esta função, primeiro configuraremos este perfil dentro das credenciais da AWS. Para anexar essas credenciais temporárias, forneça o seguinte comando:

bloco de notas ~ / .aws / configuração


Dica bônus: resolva “Caminho não especificado” no Bloco de Notas

O arquivo de configuração conterá a configuração [padrão] da AWS CLI. No entanto, se o bloco de notas exibir “O sistema não consegue encontrar o caminho especificado”, digite o comando mencionado abaixo:

bloco de notas .aws / configuração


Os usuários do Linux podem usar o 'porque' editor para configurar o perfil. Os usuários podem usar qualquer editor de sua preferência para abrir o arquivo de configuração da AWS na máquina local:


No arquivo de configuração aberto no Bloco de Notas, edite as seguintes alterações:

[ perfil perfil-usuário ]
role_arn = arn:aws:iam::012345678910:role / minha função
perfil_fonte =perfil-usuário


No trecho acima:

    • role_arn: Substitua o valor “arn:aws:iam::012345678910:role/myrole” pelo ARN da função do IAM.
    • perfil_fonte: Neste campo, forneça o nome do usuário IAM que foi criado na Etapa 1 deste método.

Depois de fazer as alterações necessárias, pressione “CTRL+S” do teclado para aplicar e salvar as alterações:


Agora, para verificar se o usuário pode listar os buckets S3 ou não, forneça o seguinte comando para a CLI:

ahs s3 eu --perfil usuário de perfil


No comando acima: –perfil-usuário: Neste campo, substitua o valor “profile-use” pelo nome que você especifica no arquivo de configuração.

Como especificamos “profile-user” no arquivo de configuração, usaremos o mesmo nome com o comando na CLI. Anteriormente, o usuário não conseguia acessar o serviço S3 da AWS porque nenhuma permissão foi atribuída a ele. A função IAM possui a permissão “ReadOnlyAccess” do bucket S3 e portanto, ao assumir esta função, o usuário pode listar os buckets do S3 Dashboard:


Isso é tudo deste método do tutorial.

Método 3: usando MFA (autenticação multifator)

Ao habilitar a autenticação multifator, o usuário pode configurar uma camada adicional de segurança para sua conta. Com a MFA habilitada, usuários não autorizados não poderão acessar a conta de um usuário, mesmo que forneçam uma senha e um nome de usuário. O MFA é um código de seis dígitos necessário para fazer login na conta. Para saber mais sobre a autenticação multifator, consulte este artigo:

A seguir estão as etapas para assumir uma função com MFA via CLI:

Etapa 1: criar um usuário IAM e habilitar MFA

Para esta etapa, o usuário pode usar a CLI para criar o usuário ou acessar o AWS Management Console. Faça login na conta de usuário root usando o seguinte comando:

aws configurar


A saída do comando é dada da seguinte forma:


Para criar um usuário, forneça o seguinte comando à CLI:

aws iam criar usuário --nome de usuário usuário mfa


No comando acima: -nome de usuário: Substitua o “usuário mfa” com o nome de usuário IAM de sua escolha.

O usuário foi criado com sucesso. Salve o ARN do usuário, pois será necessário posteriormente nesta seção. Atualmente, este usuário não recebeu nenhuma permissão:


Para habilitar o MFA, visite o AWS Management Console e pesquise o serviço IAM. Clique nele nos resultados exibidos:


Clique na opção Usuários no painel de navegação esquerdo do serviço IAM. No painel Usuários, clique no nome de usuário para configurar o MFA:


Na próxima interface, toque no “Credenciais de segurança” opção:


Role para baixo até Autenticação multifator seção e clique no “Atribuir dispositivo MFA” botão:


Providencie um nome significativo no Nome do dispositivo campo de texto na interface exibida:


Role para baixo até a seção do dispositivo MFA. O usuário recebe várias opções para ativar o MFA, como digitalizando o código QR, por meio da chave de segurança ou do token TOTP de hardware. Para esta demonstração, selecione o “Aplicativo autenticador” opção:


Toque em 'Próximo' botão na parte inferior da interface para prosseguir:


Clique no “Mostrar código QR” conforme mostrado na imagem abaixo:


Inicie o aplicativo no seu celular ou laptop para escanear o código QR. Toque em “+” opção na interface do Symantec VIP:


Na Play Store, o Symantec VIP é denominado Acesso VIP.

Na próxima interface do Symantec VIP, clique no botão Digitalize o código QR botão na parte inferior da interface:


Digitalize o código QR do AWS MFA Interface do aplicativo do autenticador exibido. Este código irá gerar uma série de códigos que serão necessários para efetuar login no console do usuário IAM:


O aplicativo Symantec VIP gerará OTP de seis dígitos depois de escanear o código QR. Esses códigos continuarão chegando depois de cada 30 segundos . A captura de tela abaixo demonstra os dois códigos que são gerados:


Forneça os códigos para o Código MFA 1 e Código MFA 2 campos de texto na interface do aplicativo Authenticator do MFA. Clique no “Adicionar MFA” botão depois para ativar a funcionalidade:


A MFA foi habilitada para o usuário do IAM com sucesso. Isto pode ser verificado pelo “Autenticação multifator (MFA)” seção do “Credenciais de segurança” aba do Usuário IAM . Nesta seção, salve o valor do Identificador, pois será necessário ao assumir a função:

Etapa 2: anexar política ao usuário

Para que um usuário assuma uma função, ele deve ser capaz de listar a função do IAM para determinar qual função assumir e a permissão para assumir a função. Para equipar o usuário com a permissão necessária, siga do Método 1 neste tutorial

Etapa 3: criar uma política de confiança e uma função IAM

A próxima etapa é criar uma política de confiança para determinar se o usuário é uma entidade confiável ou não. Esta Política de Confiança será então anexada à função do IAM. Para criar a política de confiança e a função do IAM, navegue até o prompt de comando e siga do Método 1 neste artigo.

Etapa 4: crie uma chave de acesso

Para que o usuário seja autorizado e autenticado, é gerado um par de chaves de acesso globalmente exclusivas em toda a plataforma AWS. Esses pares de chaves são usados ​​no momento do login na conta AWS. Para criar as chaves de acesso para o usuário IAM, siga o do Método 1 neste artigo.

Etapa 5: configurar credenciais

O usuário da AWS só poderá acessar os recursos e serviços da AWS se as credenciais estiverem configuradas corretamente. Nesta seção do Método, configuraremos as credenciais do usuário IAM fornecendo a Chave de Acesso e a Chave de Acesso Secreta à Interface de Linha de Comando. Para tanto, siga o do Método 1 deste tutorial.

Etapa 6:  assumir a função do IAM

Depois de anexar com êxito a função do IAM e implementar a política de confiança, o usuário agora pode assumir a função do IAM. Para isso, forneça o seguinte comando à CLI:

aws iam create-access-key --nome de usuário usuário mfa


Aqui a chave foi criada com sucesso para o usuário IAM. Salve AccessKeyId e SecretAccessKey, pois eles serão necessários para fazer login na conta AWS:


A próxima etapa é configurar as chaves de acesso na AWS CLI. Use o comando mencionado abaixo para configurar a CLI:

aws configurar


Forneça a chave de acesso e a chave de acesso secreta à CLI para configurações:


Para verificar se o usuário do IAM efetuou login na AWS CLI, use o seguinte comando:

aws sts get-identidade do chamador


A saída do comando é fornecida da seguinte forma, o que indica que o usuário efetuou login com sucesso no console AWS:


O usuário tem permissão para listar as funções do IAM na conta da AWS. O comando fornecido abaixo é usado para listar as funções do IAM:

funções de lista aws iam --consulta 'Roles[?RoleName == 'mfa-role'].[RoleName, Arn]


No comando acima: Nome do papel: Neste campo, substitua o valor “mfa-role” pelo nome da sua função IAM.

A saída do comando é dada da seguinte forma:


Para assumir a função do IAM com MFA, use o comando assume role com parâmetros adicionais, como número de série e código de token. Forneça o seguinte comando para a CLI:

aws sts assume função --role-arn 'arn:aws:iam::123456789012:role/m-role' --role-nome da sessão Sessão AWSCLI --número de série 'arn:aws:iam::012345678910:mfa/admindevice' --código-token '123456'


No comando acima:

    • –role-arn: Substitua o valor deste campo pelo ARN da sua função do IAM.
    • –nome da sessão da função: Neste campo, o usuário pode fornecer qualquer nome de sessão de sua escolha.
    • -número de série: Substitua o valor deste campo pelo valor do Identificador da interface MFA que foi salvo anteriormente.
    • –código do token: Esse valor deve ser substituído pelo código atual exibido na interface do Symantec VIP.

O código atual mostrado no Symantec VIP é fornecido a seguir. O mesmo código será usado no valor –token-code do comando:


A saída do comando conterá as credenciais temporárias, como token de sessão, chave de acesso, chave de acesso secreta, etc:

Etapa 7: configurar variáveis ​​de ambiente

As chaves de acesso e o token de sessão retornados serão agora usados ​​para estabelecer o login baseado em sessão e assumir a função. A implementação detalhada para configurar o ambiente é discutida em do Método 1.

Pensamentos finais

Para assumir uma função usando CLI, existem três métodos, ou seja, por meio do STS (serviço de token de segurança), parâmetro –profile ou MFA (autenticação multifator). Para que um usuário assuma uma função, uma política de confiança deve ser estabelecida primeiro. Esta política de confiança determina se o usuário é uma entidade confiável ou não. Esta funcionalidade é necessária porque aborda as preocupações de segurança de especialistas e indivíduos de TI. Além disso, o usuário só pode assumir a função se estiver equipado com as permissões necessárias.

Quando um usuário assume uma função na AWS, um login baseado em sessão é criado para fornecer acesso por tempo limitado ao usuário com as permissões desejadas. É gerado um token que expira após um tempo específico e assim, o usuário não poderá mais realizar a tarefa administrativa com recursos da AWS. Este artigo fornece uma implementação prática dos três métodos para assumir uma função na AWS CLI.