Como o IAM funciona

O IAM fornece a infraestrutura necessária para controlar a autenticação e autorização de sua Conta da AWS. A infraestrutura do IAM é ilustrada no diagrama a seguir:

IntroToIAM_Diagram

Primeiro, um usuário humano ou uma aplicação usa suas credenciais de login para se autenticar na AWS. A autenticação é fornecida combinando as credenciais de login com uma entidade principal (usuário do IAM, usuário federado, perfil do IAM ou aplicação) na qual a Conta da AWS confia.

Em seguida, é feita uma solicitação para conceder acesso aos recursos para a entidade principal. O acesso é concedido em resposta a uma solicitação de autorização. Por exemplo, ao acessar o console pela primeira vez e ir para a página inicial do console, você não está acessando um serviço específico. Quando você seleciona um serviço, a solicitação de autorização é enviada para esse serviço, e ele verifica se a sua identidade está na lista de usuários autorizados, quais políticas estão sendo aplicadas para controlar o nível de acesso concedido e outras políticas que possam estar em vigor. As solicitações de autorização podem ser feitas por entidades principais de sua Conta da AWS ou de outra Conta da AWS na qual você confia.

Uma vez autorizada, a entidade principal pode agir ou realizar operações com recursos em sua Conta da AWS. Por exemplo, a entidade principal pode iniciar uma nova instância do Amazon Elastic Compute Cloud, modificar a associação ao grupo do IAM ou excluir buckets do Amazon Simple Storage Service.

Termos

Estes termos do IAM são bastante usados quando se trabalha com a AWS:

Recurso do IAM

Os recursos do IAM são armazenados no próprio IAM. Você pode adicioná-los, editá-los e removê-los do IAM.

  • user

  • grupo

  • função

  • política

  • objeto provedor de identidade

Entidade IAM

Recursos do IAM que AWS usa para autenticação. As entidades podem ser especificadas como entidade principal em uma política baseada em recursos.

  • user

  • função

Identidade do IAM

Um recurso do IAM que pode ser autorizado em políticas para realizar ações e acessar recursos. Identidades incluem usuários, grupos e funções.

Recurso, identidades e entidades
Entidades principais

Uma pessoa ou aplicação que usa o Usuário raiz da conta da AWS, um usuário do IAM ou um perfil do IAM para fazer login e fazer solicitações à AWS. Os principais incluem usuários federados e funções assumidas.

Usuários humanos

Também conhecidos como identidades humanas,; as pessoas, os administradores, os desenvolvedores, os operadores e os consumidores de suas aplicações.

Workload

Uma coleção de códigos e recursos que fornece valor comercial, como uma aplicação ou um processo de backend. Pode incluir aplicações, ferramentas operacionais e componentes.

Entidade principal

Uma entidade principal é um usuário humano ou workload que pode fazer uma solicitação de uma ação ou operação em um recurso da AWS. Após a autenticação, a entidade principal pode receber credenciais permanentes ou temporárias para fazer solicitações à AWS, dependendo do tipo da entidade principal. Os usuários do IAM e o usuário raiz recebem credenciais permanentes, enquanto os perfis recebem credenciais temporárias. Como prática recomendada, aconselhamos que você exija que usuários humanos e workloads acessem recursos da AWS usando credenciais temporárias.

Solicitação

Quando uma entidade principal tenta usar o AWS Management Console, a API da AWS ou a AWS CLI, ela envia uma solicitação para a AWS. A solicitação inclui as seguintes informações:

  • Ações (ou operações) – As ações ou as operações que o principal deseja executar. Pode ser uma ação no AWS Management Console, uma operação na AWS CLI ou na API da AWS.

  • Recursos: o objeto de recurso da AWS no qual as ações ou operações são executadas.

  • Principal – A pessoa ou o aplicativo que usou uma entidade (usuário ou função) para enviar a solicitação. As informações sobre a principal incluem as políticas associadas à entidade usada pela principal para fazer login.

  • Dados do ambiente – Informações sobre o endereço IP, o agente de usuário, o status do SSL habilitado ou a hora do dia.

  • Dados do recurso – Dados relacionados ao recurso que está sendo solicitado. Isso pode incluir informações como um nome da tabela do DynamoDB ou uma tag em uma instância do Amazon EC2.

O AWS reúne as informações da solicitação em um contexto de solicitação, que é usado para avaliar e autorizar a solicitação.

Autenticação

Uma entidade principal deve ser autenticada (conectado na AWS) usando suas credenciais para enviar uma solicitação para a AWS. Alguns serviços, como o Amazon S3 e o AWS STS, permitem algumas solicitações de usuários anônimos. No entanto, eles são a exceção à regra.

Para autenticar-se no console como um usuário usuário raiz, você deve fazer login com seu endereço de e-mail e senha. Como usuário federado, você é autenticado por seu provedor de identidade e recebe acesso aos recursos da AWS ao assumir perfis do IAM. Como usuário do IAM, fornece o ID da conta ou o alias e usa seu nome de usuário e senha. Para autenticar workloads da API ou da AWS CLI, você pode usar credenciais temporárias ao receber um perfil ou usar credenciais de longo prazo fornecendo sua chave de acesso e chave secreta. Também pode ser necessário fornecer informações adicionais de segurança. Como prática recomendada, a AWS aconselha o uso da autenticação multifator (MFA) e de credenciais temporárias para aumentar a segurança de sua conta. Para saber mais sobre as entidades do IAM que a AWS pode autenticar, consulte Usuários do IAM e Perfis do IAM.

Autorização

Você também deve ser autorizado (permitido) para concluir a solicitação. Durante a autorização, a AWS usa valores do contexto da solicitação para verificar a existência de políticas que se aplicam à solicitação. Em seguida, ela usa as políticas para determinar se deve permitir ou negar uma solicitação. A maioria das políticas é armazenada no AWS, como documentos JSON e especifica as permissões para as entidades principais. Há vários tipos de políticas que podem afetar a autorização de uma solicitação. Para fornecer aos usuários permissões para acessar os recursos da AWS em sua conta, você precisa somente de políticas baseadas em identidade. As políticas baseadas em recurso são populares para conceder acesso entre contas. Os outros tipos de política são recursos avançados e devem ser usados com cuidado.

O AWS verifica cada política que se aplica ao contexto da sua solicitação. Se uma única política de permissões incluir uma ação negada, o AWS negará toda a solicitação e interromperá a avaliação. Esse processo é chamado de negação explícita. Como as solicitações são negadas por padrão, o AWS só autorizará a solicitação se cada parte da solicitação tiver permissão das políticas de permissão aplicáveis. A lógica de avaliação para um solicitação em uma única conta segue estas regras gerais:

  • Por padrão, todas as solicitações são negadas. (Em geral, as solicitações feitas usando as credenciais Usuário raiz da conta da AWS para recursos na conta são sempre permitidas.)

  • Uma permissão explícita em uma política de permissões (baseada em recurso ou identidades) substitui esse padrão.

  • A existência de um SCP do Organizations, um limite de permissões do IAM ou uma política de sessão substitui a permissão. Se um ou mais desses tipos de política existir, todos eles devem permitir a solicitação. Caso contrário, ela será implicitamente negada.

  • Uma negação explícita em qualquer política substitui todas as permissões.

Para saber mais sobre como todos os tipos de políticas são avaliadas, consulte Lógica da avaliação de política. Se você precisar fazer uma solicitação em uma conta diferente, uma política na outra conta deverá permitir que você acesse o recurso, e a entidade do IAM que você usa para fazer a solicitação deve ter uma política baseada em identidade que permita a solicitação.

Ações ou operações

Depois que sua solicitação tiver sido autenticada e autorizada, a AWS aprovará as ações ou operações em sua solicitação. As operações são definidas por um serviço e incluem coisas que você pode fazer em um recurso, como visualizar, criar, editar e excluir esse recurso. Por exemplo, o IAM oferece suporte a aproximadamente 40 ações para um recurso de usuário incluindo as seguintes ações:

  • CreateUser

  • DeleteUser

  • GetUser

  • UpdateUser

Para permitir que uma entidade principal execute uma operação, você deve incluir as ações necessárias em uma política aplicável à entidade principal ou ao recurso afetado. Para ver uma lista de ações, tipos de recursos e chaves de condição compatíveis com cada serviço, consulte Ações, recursos e chaves de condição de serviços da AWS.

Recursos

Depois que a AWS aprova as operações em sua solicitação, elas podem ser executadas nos recursos relacionados em sua conta. Um recurso é uma objeto que existe dentro de um serviço. Os exemplos incluem uma instância do Amazon EC2, um usuário do IAM e um bucket do Amazon S3. O serviço define um conjunto de ações que podem ser executadas em cada recurso. Se você criar uma solicitação para realizar uma ação não relacionada em um recurso, essa solicitação será negada. Por exemplo, se você solicitar a exclusão de uma função do IAM mas fornecer um recurso de grupo do IAM, a solicitação falhará. Para ver tabelas de serviços da AWS que identificam quais recursos são afetados por uma ação, consulte Ações, recursos e chaves de condição de serviços da AWS.