IAM Identity and access manager

O gerenciamento de identidades e acesso é um recurso da AWS usado para atribuir permissões para usuários e recursos na AWS.

Categoria de Tecnologia

Postado em 22 janeiro 2024

Atualizado em 22 janeiro 2024

Palavras-chave: aws,amazon,iam,identidade,acesso,gerenciamento,nuvem,cloud

Visualizações: 631



Atualmente, a AWS (Amazon Web Services) é a plataforma de nuvem mais utilizada mundialmente. Esse plataforma fornece uma grande quantidade de recursos que podem ser utilizados sob demanda ou como instâncias reservadas.

Pelo fato da AWS poder ser acessada por múltiplos usuários de uma empresa ou grupo de desenvolvedores, ela precisa ser administrada estrategicamente para que não cause problemas como acesso indevido de outros usuários em relação a recursos específicos. O IAM (Identity and Access Management) é o recurso responsável pelo gerenciamento de usuários. É essencial para projetos que tem múltiplos programadores trabalhando na nuvem em uma mesma conta.

O que é IAM na AWS?

IAM é um acrônimo para Gerenciamento de Identidade e Acesso. Esse recurso permite adicionar, editar ou remover permissões de usuários em relação a outros recursos da AWS. Por exemplo, podemos permitir que o usuário A possa apenas visualizar uma lista de usuários, mas ele não poderá adicionar ou editar usuários dessa lista. Para o usuário A ter permissão para adicionar ou editar usuários, ele precisa que tais permissões sejam atribuídas a ele. O usuário que poderá atribuir permissões para esse usuário A é o usuário raiz (root user) ou um usuário com permissões elevadas (como um usuário administrador).

exemplo de gerenciamento de identidade e acesso iam aws

Com excessão do usuário raiz, todos os usuários são IAM users. Os IAM Users são usuários que podem ser adicionados posteriormente e são vinculados ao usuário raiz que possui a conta da AWS.

O que é um IAM User?

Assim como o usuário raiz, o IAM user também precisa de credenciais como nome de usuário e senha. Entretanto, esse usuário precisa do ID da conta do usuário raiz para poder acessar o recurso IAM. Os IAM users possuem relação com com a conta do usuário raiz, por isso devem ser criados pelo próprio usuário raiz (a menos que o usuário raiz crie um usuário IAM com permissão para criar outros usuários IAM). O limite de usuários IAM que podem ser criados para uma conta na AWS é de até 5000.

Não é possível criar usuários IAM vinculados a outros usuários IAM (sub-usuários IAM). Todos os usuários serão criados a partir da conta do usuário raiz. Por exemplo, mesmo se um usuário IAM com permissão para criar outros usuários criar um, esse novo usuário será do domínio do usuário raiz.

O que são os groups, roles e politics no IAM?

No IAM, o gerenciamento de permissões é realizado usando três elementos:

  • Grupos de usuários (Groups)
  • Funções (Role)
  • Políticas (Politics)

Políticas

Nas políticas são definidos as permissões. As permissões de ler, escrever, editar e apagar permissões de um determinado recurso ou recursos são realizados nas políticas. Para as políticas terem efeito sobre um usuário ou recurso, elas devem ser selecionadas e atribuídas pelo usuário raiz ou usuário com permissões de administrador. A atribuição de políticas pode ser realizada em grupos de usuários ou em funções.

Funções

As funções são atribuídas diretamente em um recurso ou usuário. Uma função pode ser usada quando precisamos que um recurso ou usuário tenha permissão temporária sobre outro recurso. Um exemplo de função é permitir que o EC2 acesse outro recurso como o S3.

Grupos de usuários

Invés de atribuir políticas diretamente ao usuário, inseri o usuário dentro de um grupo com as políticas já definidas. Exemplos de grupos podem ser desenvolvedores, administradores ou testadores. Agiliza o trabalho de atribuição de permissões, pois necessita apenas uma ação: adicionar usuário em um determinado grupo.

Não é possível adicionar um usuário a múltiplos grupos. Porém, podemos adicionar políticas diretamente a um usuário, contornando esse problema.

Posso acessar o IAM por um software?

Sim, é possível acessar o IAM através de um SDK do AWS disponível para diversas linguagens de programação. A AWS também permite acesso pelo terminal.

Conclusão

O IAM é um serviço disponibilizado pela AWS para gerenciamento de usuários em uma única conta. O gerenciamento é feito através de grupos de usuários, funções e políticas. As permissões podem ser atribuídas em usuários e recursos. Assim como usuários precisam de permissões para acessar determinados recursos, recursos também precisam de permissão para acessar outros recursos.

Projetos práticos

Criando o esqueleto de um jogo de tiro 2D visto de cima usando P5.js

Usando lógicas matemáticas como trigonometria para criar e calcular o esqueleto de um jogo de tiro 2D em javascript

Criando um jogo de guerra nas estrelas em javascript usando a biblioteca p5.js

Jogo simples de guerra espacial desenvolvido em javascript. Esse jogo usa cálculos de física para simular efeitos de atrito e inércia.

Desenvolvendo um jogo de quebra blocos em javascript

Programando um jogo clássico de arcade usando javascript e p5.js. O usuário deve quebrar os blocos utilizando uma bola ao mesmo tempo que evita que a bola saia pela parte inferior da tela

Integrando o PHP com Elasticsearch no desenvolvimento de um sistema de busca

Projeto de criação de um sistema de busca usando o framework Symfony e Elasticsearch. A integração com Kibana também é feito de modo remoto com um raspberrypi.

Criando um sistema de integração contínua (CI/CD)

Fazendo a integração contínua de Jenkins, Sonatype Nexus, Sonatype, JUnit e Gradle para automatizar processos repetitivos. Prática bastante usada em tecnologias de DevOps.

Veja também

Os robôs estão aprendendo por conta própria?

Já não é mais novidade saber que os robôs não precisam mais da orientação de um humano para aprender. Além disso, os robôs já superam os humanos em muitas áreas...

Pessoas sem um endereço não podem utilizar os correios. Dispositivos sem um endereço não podem acessar a internet.

Quando nos conectamos à internet, nós recebemos um endereço IP. O endereço IP é o nosso endereço virtual que vai servir como localização para a transferência de dados na internet

PaaS (Plataforma como serviço)

Fornece a plataforma necessária para a implantação de softwares remotamente, economizando tempo e diminuindo custos de infraestrutura.

Fintech

Fintech é o uso da tecnologia para criar soluções inovadoras no mercado financeiro, facilitando a vida das pessoas em movimentar dinheiro virtualmente.

Computação em nuvem

Computação em nuvem oferece serviços através da internet que possibilitam hospedagem de sites, armazenamento de arquivos, compartilhamento de dados, etc.

HR Tech

HR Tech é um software que auxilia na gestão de pessoas, tornando-se possível o gerenciamento centralizado na área de recursos humanos.