IAM — Identidade e Acesso
Aula 1 de 8
Conceitos Fundamentais
IAM (Identity and Access Management) é o serviço central de segurança da AWS. Toda interação com a AWS passa pelo IAM.
Principal (User/Role) → Policy → Permissions → AWS Service
Componentes
| Componente | Descrição |
|---|---|
| User | Pessoa física ou conta de serviço |
| Group | Coleção de usuários com permissões compartilhadas |
| Role | Identidade assumível (sem credenciais permanentes) |
| Policy | Documento JSON que define permissões |
| ARN | Amazon Resource Name — identificador único universal |
Políticas IAM
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListBucket",
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::meu-bucket",
"arn:aws:s3:::meu-bucket/*"
]
}
]
}
Tipos de Política
- AWS Managed: criadas e mantidas pela AWS (ex:
AmazonS3ReadOnlyAccess) - Customer Managed: criadas por você, reutilizáveis
- Inline: anexadas diretamente a um user/role (1:1)
IAM Roles — Boas Práticas
# NEVER use root access keys. Always use roles.
aws sts assume-role \
--role-arn "arn:aws:iam::123456789012:role/MinhaRole" \
--role-session-name "Session1"
EC2 com Instance Profile
# CLI associar role a EC2 (sem restart)
aws ec2 associate-iam-instance-profile \
--instance-id i-123456 \
--iam-instance-profile Name=MinhaRoleEC2
# Dentro da EC2 (sem credenciais!)
aws s3 ls # usa automaticamente as credenciais da role
Lab: Criação de Usuário com MFA
# 1. Criar usuário (CLI)
aws iam create-user --user-name dev-alice
# 2. Criar policy
aws iam create-policy \
--policy-name DevPolicy \
--policy-document file://dev-policy.json
# 3. Anexar
aws iam attach-user-policy \
--user-name dev-alice \
--policy-arn arn:aws:iam::123456789012:policy/DevPolicy
# 4. Criar senha (console access)
aws iam create-login-profile \
--user-name dev-alice \
--password SenhaTemp123! \
--password-reset-required
# 5. Forçar MFA (no console)
# IAM > Users > dev-alice > Security Credentials > Assign MFA device
Least Privilege na Prática
# Simular política antes de anexar
aws iam simulate-principal-policy \
--policy-source-arn arn:aws:iam::123456789012:user/dev-alice \
--action-names s3:DeleteBucket
# Visualizar acesso (IAM Access Analyzer)
aws accessanalyzer create-analyzer \
--analyzer-name "meu-analyzer" \
--type ACCOUNT
IAM é a base da segurança AWS. Toda breach começa com IAM mal configurado. Use roles, não access keys. Habilite MFA. Implemente least privilege.