AWS IAM – O princípio de tudo

OAWS Identity and Access Management Service, conhecido como AWS IAM, nada mais é que o primeiro serviço temos contato ao criar um conta na Amazon Web Services, isso porque, ao criarmos uma conta, criamos também o usuário ROOT, sendo esse o usuário que terá permissões para realizar toda e qualquer ação dentro da conta criada, ele é o dono da conta.

Sendo assim vejo necessário iniciarmos nossa série de artigos sobre AWS com esse, o AWS IAM, que está presente em todo “canto” desde a autenticação a permissões de interações com outros serviços AWS e gerenciamento de identidades, sendo essas suas três atividades.

AWS IAM

Falando em autenticação, temos algumas formar de faze-la, lembrando que toda interação que você faz com a AWS é autenticada.

Quais são os tipos de autenticação e credenciais?

– Console (Navegador) fazendo uso de Nome e Senha.
– API/CLI, usa-se chaves programáticas (AccessKey, SecretKey) podendo ter até 2 chaves ativas.

Obs.: Existe outras formar de autenticação para aplicativos, que abordaremos num futuro próximo, mas caso seja ansioso como eu, trataremos de do serviço chamado Cognito.

O AWS IAM, permite criar 3 tipos de objeto de identidade, sendo eles:

AWS IAM

Usuário, podendo ser um humano ou aplicação, no aspecto de “identidade” do AWS Identity and Access Management (IAM) ajuda você com a pergunta “Quem é esse usuário?”, geralmente chamado de autenticação . Os usuários do IAM não são contas separadas; eles são usuários em sua conta. Cada um pode ter sua própria senha de acesso ao Console de Gerenciamento da AWS. Você também pode criar uma chave de acesso individual para  que cada usuário possa fazer solicitações programáticas para trabalhar com recursos em sua conta.

Grupo do IAM é um conjunto de usuários do IAM, esse permite que você especifique permissões para tipos semelhantes de usuários.

Exemplo: Grupo de Desenvolvimento, nesse contém desenvolvedores que necessitam de permissões similares, permissões essas que diferem do grupo de Finanças.

Funções (Role), voltado para serviços AWS e Acesso Externo.

As funções permitem que você delegue acesso aos usuários, aplicações ou serviços que normalmente não tem acessos aos recursos da AWS da sua Organização.

As Roles, podem ser usadas nos seguintes cenários:

– Um usuário ou função do IAM na mesma conta da AWS ou em conta diferente que precisa de acesso fornecido pela função.

– Aplicações que rodem em EC2 e necessitam consumir outro serviço AWS.

– Um serviço AWS que precisa chamar outro serviço (ex.: Uma função Lambda que consome objetos do AWS S3).

– Um usuário externo autenticado por um serviço de provedor de identidade (IDP) compatível com SAML 2.0, OpenID connect ou um agente de identidade personalizado. (Iremos falar sobre IdP e federação já, mas em caso de ansiedade, busque por AWS IAM Identity Center, o antigo AWS SSO).

Boas Praticas:

Políticas de Senha, é um conjunto de regras que estabelece o tipo de senha que o usuário pode definir. Sim, é aquela parte mais exigente que te impede de colocar o nome do cachorro ou a data de aniversario da sogra. (Use isso)

Autenticação Multifactor (MFA) é uma camada adicional de segurança para acesso aos serviços da AWS, com esse método de autenticação, que consiste em um nome de usuário, uma senha e o código de uso único do dispositivo com MFA. Com isso mais de um fator de autenticação e verificado antes que o acesso seja concedido, adicionado mais uma camada de segurança.

Usuário Raiz (User ROOT), aplique o MFA a ele, crie outros usuários para gerenciamento da conta, contendo permissões para tal e o guarde em uma cofre, gaveta, embaixo do colchão e o esqueça. O usuário raiz é de extremo poder e a perda ou vazamento desse pode lhe acarretar grandes problemas.

Vamos falar sobre a Autorização?

Então sabemos que tendo um usuário, esse pode acessar a conta AWS. Mas o que mais pode acontecer?
Logou e terá acesso a tudo? Não é bem assim que funciona.

Veja, o Usuário → Autenticação → Envia solicitação de acesso → Autorização (Consulta Politica baseado em identidade) e permite ou nega o acesso aos recursos.

AWS IAM

Pois bem, como dito a autorização se da por meio de politicas do IAM (policy-ies), mas antes de falar direto sobre essas politicas, que nada mais são que documentos onde se diz o que pode e não pode fazer, precisamos falar sobre as três partes da lógica que define o que esta na política e como ela realmente funciona. Essas peças compõem o contexto de solicitação autenticado pelo IAM e autorizado de acordo. Temos assim a Entidade principal, Ação e Recurso, pense como sujeito, verbo e objeto de uma frase, nessa ordem.

Entidade Principal (Principal):

São usuário, função, usuário externo ou aplicação que envia a solicitação e as politicas associadas a entidade principal.

Ação (Action):

O que a entidade principal estará tentando fazer.

Recurso (resource):

Objeto de recurso da AWS na qual as ações ou operações serão executadas.

A seguinte política baseada em identidade permite que o principal implícito liste um único bucket do Amazon S3 chamado example_bucket:

Veja que aqui temos um Principal, implícito pois essa é uma política baseada em identidade, essa esta fixada a um usuário (Identidade).

Em um próximo post, iremos falar apenas sobre Politicas, seus tipos, boas praticas, Lógica de Avaliação de Política e sobre o IAM Access Analyzer.

 

Fontes:

What is IAM?

AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. With…

docs.aws.amazon.com

 

Overview of AWS identity management: Users

For greater security and organization, you can give access to your AWS account to specific users-identities that you…

docs.aws.amazon.com

Deep Dive with Security: AWS Identity and Access Management (IAM) — SkillBuilders