Funções do IAM para Amazon EC2
As aplicações devem assinar suas solicitações de API com as credenciais da AWS. Portanto, se você for um desenvolvedor de aplicações, precisará de uma estratégia para gerenciar credenciais para suas aplicações que executam em instâncias do EC2. Por exemplo, é possível distribuir de maneira segura suas credenciais da AWS para as instâncias, permitindo que as aplicações nessas instâncias usem suas credenciais para assinar solicitações, enquanto protege suas credenciais de outros usuários. Contudo, é um desafio distribuir credenciais para cada instância de maneira segura, especialmente aquelas que a AWS cria em seu nome, como instâncias spot ou instâncias em grupos do Auto Scaling. Você também deve poder atualizar as credenciais em cada instância quando alterna suas credenciais da AWS.
Projetamos funções do IAM para que suas aplicações possam fazer solicitações de API de suas instâncias de maneira segura, sem exigir que você gerencie as credenciais de segurança que as aplicações usam. Em vez de criar e distribuir suas credenciais da AWS, é possível delegar permissão para fazer solicitações de API usando funções do IAM da seguinte forma:
-
Crie uma função do IAM.
-
Defina quais contas ou serviços da AWS podem assumir a função.
-
Defina quais ações e recursos de API a aplicação pode usar depois de assumir a função.
-
Especifique a função quando você executar a instância ou anexe a função a uma instância existente.
-
Faça com que a aplicação recupere um conjunto de credenciais temporárias e use-as.
Por exemplo, é possível usar funções do IAM para conceder permissões a aplicações em execução em suas instâncias que precisam usar um bucket no Amazon S3. É possível especificar permissões para funções do IAM criando uma política em formato JSON. Essas são semelhantes às políticas que você cria para os usuários do . Se você alterar uma função, a alteração será propagada para todas as instâncias.
nota
As credenciais do perfil do IAM do Amazon EC2 não estão sujeitas às durações máximas de sessão configuradas no perfil. Para obter mais informações, consulte Como usar funções do IAM no Guia do usuário do IAM.
Ao criar funções do IAM, associe políticas do IAM de privilégio mínimo que restringem o acesso às chamadas de API específicas exigidas pelo aplicativo. Para comunicação Windows para Windows, use grupos e funções bem definidos e bem documentados do Windows para conceder acesso no nível de aplicação entre instâncias do Windows. Grupos e funções permitem que os clientes definam permissões de aplicação de privilégio mínimo e no nível de pasta do NTFS para limitar o acesso a requisitos específicos da aplicação.
Você só pode anexar uma função do IAM a uma instância, mas pode anexar a mesma função a muitas instâncias. Para obter mais informações sobre como criar e usar funções do IAM, consulte Funções no Guia do usuário do IAM.
É possível aplicar permissões em nível de recurso às políticas do IAM para controlar a capacidade de anexar, substituir ou desanexar funções do IAM de uma instância. Para obter mais informações, consulte Permissões no nível do recurso com suporte para ações de API do Amazon EC2 e o seguinte exemplo: Exemplo: trabalhar com funções do IAM.
Tópicos
Perfis de instância
O Amazon EC2 usa um perfil de instância como um contêiner para uma função do IAM. Se você criar uma função do IAM usando o console do IAM o console criará automaticamente um perfil de instância e dará a ele o mesmo nome da função correspondente. Se você usar o console do Amazon EC2 para executar uma instância com uma função do IAM ou anexar uma função do IAM a uma instância, deve escolher a função com base em uma lista de nomes de perfis de instância.
Se você usar a AWS CLI, a API ou um AWS SDK para criar uma função, você cria a função e o perfil da instância como ações separadas, com nomes potencialmente diferentes. Se você usar a AWS CLI, a API ou o AWS SDK para iniciar uma instância com uma função do IAM ou para anexar uma função do IAM a uma instância, especifique o nome do perfil da instância.
Um perfil de instância pode conter somente uma função do IAM. Este limite não pode ser aumentado.
Para obter mais informações, consulte Perfis de instâncias no Guia do usuário do IAM.
Permissões para seu caso de uso
Quando você cria uma função do IAM pela primeira vez para suas aplicações, às vezes é possível conceder permissões além do que é necessário. Antes de iniciar sua aplicação em seu ambiente de produção, é possível gerar uma política do IAM baseada na atividade de acesso para uma função do IAM. O IAM Access Analyzer revisa seus logs do AWS CloudTrail e gera um modelo de política que contém as permissões que foram usadas pela função no intervalo de datas especificado. É possível usar o modelo para criar uma política gerenciada com permissões refinadas e anexá-la à função do IAM. Dessa forma, você concede apenas as permissões necessárias à interação com os recursos da AWS, de acordo com a especificidade do caso de uso. Isso ajuda você a aderir às melhores práticas de conceder privilégio mínimo. Para obter mais informações, consulte Geração de política do IAM Access Analyzer no Guia do usuário do IAM.
Perfis de identidade da instância para instâncias do Amazon EC2
Cada instância do Amazon EC2 inicializada tem um perfil de identidade da instância que representa sua identidade. Um perfil de identidade de instância é um tipo de perfil do IAM. Serviços da AWS e recursos integrados para usar o perfil de identidade da instância podem usá-lo para identificar a instância com o serviço.
As credenciais do perfil de identidade da instância podem ser acessadas no Serviço de metadados da instância (IMDS) em /identity-credentials/ec2/security-credentials/ec2-instance
. As credenciais consistem em um par temporário de chave de acesso da AWS e um token de sessão. Eles são usados para assinar solicitações AWS Sigv4 para os serviços da AWS que usam o perfil de identidade da instância. As credenciais estão presentes nos metadados da instância, independentemente de um serviço ou recurso que faça uso dos perfils de identidade da instância estar habilitado na instância.
Os perfis de identidade da instância são criados automaticamente quando uma instância é iniciada, não possuem nenhum documento de política de confiança de perfil e não estão sujeitos a nenhuma política de identidade ou de recursos.
Serviços com suporte
Os serviços da AWS a seguir usam o perfil de identidade da instância:
-
Amazon EC2: o EC2 Instance Connect usa o perfil de identidade da instância para atualizar as chaves de host de uma instância do Linux.
-
Amazon GuardDuty: o monitoramento do tempo de execução usa o perfil de identidade da instância para permitir que o agente de runtime envie telemetria de segurança para o endpoint da VPC do GuardDuty.
-
AWS Security Token Service (AWS STS): as credenciais do perfil de identidade da instância podem ser usadas com a ação AWS STS
GetCallerIdentity
. -
AWS Systems Manager: ao usar a Configuração padrão de gerenciamento de host, o AWS Systems Manager usa a identidade fornecida pelo perfil de identidade da instância para registrar instâncias do EC2. Depois de identificar sua instância, o Systems Manager pode passar seu perfil do IAM
AWSSystemsManagerDefaultEC2InstanceManagementRole
para sua instância.
Os perfis de identidade da instância não podem ser usados com outros serviços ou recursos da AWS, pois eles não têm uma integração com os perfis de identidade da instância.
ARN de perfil de identidade da instância
O ARN de perfil de identidade da instância assume o seguinte formato:
arn:
aws-partition
:iam::account-number
:assumed-role/aws:ec2-instance/instance-id
Por exemplo:
arn:
aws
:iam::0123456789012
:assumed-role/aws:ec2-instance/i-0123456789example
Para obter mais informações sobre ARNs, consulte Nome do recurso da Amazon (ARN) no Guia do usuário do IAM.