Identidade na nuvem: funções IAM e contas de serviço
Configure funções IAM e contas de serviço com o menor privilégio em plataformas de nuvem e evite erros comuns, como permissões curinga e chaves de longa duração.
Identidade na nuvem: funções IAM e contas de serviço é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cloud & IT Cert Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
Fundamentos da Identidade na Nuvem
Em ambientes de nuvem, a identidade é o novo perímetro. Cada ação — iniciar uma VM, ler um banco de dados ou chamar uma API — é autorizada com base na identidade que faz a chamada. Os sistemas de IAM (Gerenciamento de Identidade e Acesso) da nuvem definem quem pode fazer o quê em quais recursos. Diferentemente dos ambientes locais, nos quais a localização na rede fornecia confiança implícita, o IAM da nuvem trata cada solicitação como algo que exige autorização explícita, independentemente de sua origem.
Usuários, Grupos e Funções no AWS IAM
O AWS IAM tem três tipos principais de identidade. Usuários do IAM representam pessoas ou aplicativos individuais com credenciais de longo prazo (chave de acesso + chave secreta). Grupos do IAM reúnem usuários e atribuem permissões compartilhadas. Funções do IAM são identidades com credenciais temporárias que podem ser assumidas por usuários, serviços da AWS (EC2, Lambda) ou outras contas. As funções são preferíveis às chaves de acesso de longo prazo porque suas credenciais expiram automaticamente, reduzindo o risco de exposição das credenciais.
# IAM role trust policy — allows EC2 to assume this role
{
'Version': '2012-10-17',
'Statement': [{
'Effect': 'Allow',
'Principal': { 'Service': 'ec2.amazonaws.com' },
'Action': 'sts:AssumeRole'
}]
}
# EC2 instance with this role attached can call AWS APIs
# using temporary credentials from the instance metadata serviceMenor Privilégio nas Políticas do IAM
As políticas do IAM definem quais ações uma identidade pode executar em quais recursos. O princípio do menor privilégio exige que as políticas concedam apenas as ações específicas necessárias para a tarefa. Violações comuns: usar curingas * para ações (concede todas as ações de um serviço), usar * para recursos (concede acesso a todos os recursos) e vincular políticas gerenciadas amplas demais, como AdministratorAccess, a contas de serviço. Todo curinga deve ser justificado e revisado regularmente.
# Overly permissive policy (AVOID)
{
'Effect': 'Allow',
'Action': 's3:*', # all S3 actions
'Resource': '*' # all buckets
}
# Least-privilege policy (PREFERRED)
{
'Effect': 'Allow',
'Action': ['s3:GetObject', 's3:ListBucket'],
'Resource': [
'arn:aws:s3:::my-specific-bucket',
'arn:aws:s3:::my-specific-bucket/*'
]
}Contas de serviço no GCP
Na Plataforma Google Cloud (GCP), as cargas de trabalho não humanas se autenticam usando contas de serviço — entidades de identidade gerenciadas com arquivos de chave JSON ou Workload Identity Federation. Cada conta de serviço deve seguir o princípio do menor privilégio: associe-a somente aos serviços do GCP que ela precisa chamar. As chaves de contas de serviço (arquivos JSON baixados do console) são credenciais de longa duração que devem ser tratadas como senhas — alternadas regularmente e nunca incluídas no código-fonte nem carregadas em repositórios públicos.
# Check service account permissions (gcloud)
gcloud projects get-iam-policy my-project \
--flatten='bindings[].members' \
--format='table(bindings.role, bindings.members)' \
--filter='bindings.members:serviceAccount'
# Prefer Workload Identity over service account keys
# (no downloadable key files — uses workload federation tokens)Identidades gerenciadas do Azure
As identidades gerenciadas do Azure (anteriormente MSI) são o equivalente, no Azure, às funções do AWS IAM para serviços — elas permitem que recursos do Azure (VMs, App Services, Functions) se autentiquem nas APIs do Azure sem armazenar credenciais. Há dois tipos: as identidades gerenciadas atribuídas pelo sistema estão vinculadas a um recurso específico e são excluídas quando o recurso é excluído. As identidades gerenciadas atribuídas pelo usuário são objetos independentes que podem ser compartilhados entre vários recursos. As identidades gerenciadas eliminam a necessidade de armazenar chaves ou segredos.
# Azure CLI — assign managed identity to a VM
az vm identity assign \
--name myVM \
--resource-group myRG \
--identities /subscriptions/.../userAssignedIdentities/myIdentity
# The VM can now call Azure Key Vault without any stored credentials:
# Token is fetched automatically from the Instance Metadata ServiceCredenciais de longa duração: o risco
As credenciais de longa duração — chaves de acesso estáticas, tokens de API e arquivos de chave de contas de serviço que nunca expiram — estão entre os elementos de maior risco em ambientes de nuvem. Se forem vazadas (por meio do GitHub, de um bucket S3, de registros ou de um laptop de desenvolvedor comprometido), essas credenciais concederão acesso imediato até serem revogadas manualmente. As organizações devem: auditar todas as credenciais de longa duração, alterná-las de acordo com uma programação, preferir acesso baseado em funções ou federado que produza tokens de curta duração e emitir um alerta imediatamente quando as credenciais aparecerem em repositórios públicos.
# Find IAM access keys older than 90 days (AWS)
aws iam generate-credential-report
aws iam get-credential-report --query 'Content' --output text | \
base64 -d | grep -v 'N/A' | \
awk -F',' '$10 > 90 {print $1, $10}'
# Keys older than 90 days should be rotated or deletedEncadeamento de funções do IAM e escalada de privilégios
A escalada de privilégios do IAM ocorre quando uma identidade usa uma combinação de permissões para conceder permissões adicionais a si mesma. Os caminhos clássicos de escalada incluem: associar uma política mais permissiva ao próprio usuário, criar um novo usuário do IAM com permissões elevadas, passar uma função (iam:PassRole) para um serviço e atualizar a função de execução de uma função Lambda. O IAM Access Analyzer da AWS pode detectar esses padrões, e os limites de permissões do IAM podem restringir rigorosamente as permissões máximas que qualquer identidade pode receber.
# Dangerous permission combination (enables privilege escalation):
# iam:CreatePolicyVersion + iam:SetDefaultPolicyVersion
# Attacker can create a new policy version with AdministratorAccess
# Or: iam:PassRole + lambda:CreateFunction + lambda:InvokeFunction
# Attacker creates Lambda with a privileged role, invokes it
# Defense: permission boundaries limit maximum grantable permissionsAssunção de funções entre contas
As organizações de nuvem costumam usar várias contas (desenvolvimento, preparação, produção e segurança) como limites para conter o impacto de incidentes. A assunção de funções entre contas permite que identidades em uma conta assumam funções em outra, possibilitando que ferramentas centralizadas operem entre contas. Os controles de segurança incluem: exigir um External ID na política de confiança para impedir ataques do representante confuso, restringir quais contas podem assumir uma função por meio do ARN do Principal e registrar todas as assunções entre contas no CloudTrail para fins de auditoria.
# Trust policy with External ID (confused deputy protection)
{
'Effect': 'Allow',
'Principal': { 'AWS': 'arn:aws:iam::PARTNER-ACCOUNT-ID:root' },
'Action': 'sts:AssumeRole',
'Condition': {
'StringEquals': {
'sts:ExternalId': 'unique-shared-secret-12345'
}
}
}Segurança do IMDS e do serviço de metadados
As instâncias do AWS EC2 podem recuperar suas credenciais da função do IAM no Instance Metadata Service (IMDS) em http://169.254.169.254. A classe de vulnerabilidade SSRF é especialmente perigosa nesse caso: se um aplicativo estiver vulnerável a SSRF, um invasor poderá exfiltrar as credenciais da função do IAM da instância fazendo o servidor buscar dados no URL do IMDS. O IMDSv2 (que exige um token de sessão) reduz o risco de roubo de credenciais baseado em SSRF e deve ser aplicado a todas as instâncias do EC2.
# Enforce IMDSv2 on a new EC2 instance (requires token for IMDS)
aws ec2 run-instances \
--metadata-options 'HttpTokens=required,HttpEndpoint=enabled' \
...
# IMDSv1 (insecure) just needs a GET request:
# curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# IMDSv2 requires a PUT to get a session token firstIAM Access Analyzer e revisão de políticas
O IAM Access Analyzer (AWS) identifica automaticamente recursos compartilhados com principais externos e políticas do IAM que concedem mais permissões do que o pretendido. Ele analisa políticas de buckets, políticas de confiança de funções e políticas de chaves KMS para sinalizar acessos externos que não foram explicitamente pretendidos. Revisões regulares das políticas do IAM — manualmente ou com ferramentas como Cloudsplaining, PMapper ou Permissions Boundary Analyzer — são essenciais para identificar caminhos de escalada de privilégios antes que os invasores os encontrem.
Federação de identidades de cargas de trabalho
A Workload Identity Federation permite que cargas de trabalho externas (GitHub Actions, sistemas locais e outros provedores de nuvem) se autentiquem no IAM da nuvem usando tokens OIDC de curta duração em vez de chaves de contas de serviço de longa duração. Um fluxo de trabalho do GitHub Actions pode assumir uma função do AWS IAM usando seu token OIDC durante a execução do trabalho; depois, o token expira. Essa abordagem elimina toda a classe de vazamentos de credenciais de longa duração dos fluxos de CI/CD.
Verificação rápida
Teste sua compreensão dos conceitos do CompTIA Security+ (SY0-701) apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que: as funções do IAM fornecem credenciais temporárias e são preferíveis às chaves de acesso de longa duração para cargas de trabalho na nuvem; as políticas de menor privilégio devem evitar curingas e conceder somente ações específicas em recursos específicos; e o IMDSv2, os limites de permissões e a federação de identidades de cargas de trabalho eliminam caminhos comuns de exposição de credenciais. A seguir, exploraremos o Cloud Security Posture Management (CSPM).
Perguntas Frequentes
A aula “Identidade na nuvem: funções IAM e contas de serviço” é grátis?
Sim — o texto completo de “Identidade na nuvem: funções IAM e contas de serviço” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cloud & IT Cert Prep, atualize para CoddyKit PRO. O curso de Cloud & IT Cert Prep inclui 4 aulas no total.
O que vou aprender em “Identidade na nuvem: funções IAM e contas de serviço”?
Configure funções IAM e contas de serviço com o menor privilégio em plataformas de nuvem e evite erros comuns, como permissões curinga e chaves de longa duração. Você pratica Cloud & IT Cert Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Cloud & IT Cert Prep?
Nenhuma experiência prévia é necessária. Cloud & IT Cert Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Identidade na nuvem: funções IAM e contas de serviço”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Cloud & IT Cert Prep?
Sim. Cada aula de Cloud & IT Cert Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Modelo de responsabilidade compartilhada: IaaS, PaaS e SaaS
- Segurança do armazenamento em nuvem e riscos de exposição de dados
- Identidade na nuvem: funções IAM e contas de serviço
- Gerenciamento da postura de segurança na nuvem (CSPM)