IAM User (Usuário IAM) Representa um usuário humano que precisa acessar a AWS.
Pode ter credenciais de login (usuário/senha) para acessar o AWS Management Console e oode ter credenciais de acesso (chave de acesso e secreta) para interagir com a AWS via API, CLI ou SDKs.
Possui permissões atribuídas por meio de IAM Policies.
As credenciais podem expirar ou precisar de rotação manual.
Service Account Não é um conceito nativo no AWS como no GCP ou Azure.
No AWS, uma "conta de serviço" geralmente é representada por um IAM Role (Função IAM).
Uma IAM Role pode ser assumida por instâncias EC2, Lambda Functions, ECS Tasks, entre outros serviços.
Permite acesso temporário usando AWS Security Token Service (STS), evitando credenciais fixas.
Pode ser vinculada a recursos AWS por meio de Instance Profiles (para EC2) ou Execution Roles (para Lambda).
Principais Diferenças
| Característica | IAM User | Service Account (IAM Role) |
|---|---|---|
| Uso principal | Acesso humano | Acesso para aplicações e serviços |
| Autenticação | Usuário/senha, Chaves de acesso | Credenciais temporárias via STS |
| Segurança | Chaves precisam de rotação | Não tem chaves permanentes |
| Melhor prática | Evitar chaves de acesso | Preferido para automação |
Quando Usar Cada Um? Use IAM Users se um ser humano precisa de acesso direto à AWS (por exemplo, administradores, desenvolvedores).
Use IAM Roles para aplicações e serviços automatizados, garantindo mais segurança e menos risco de vazamento de credenciais.