iam-access-aws
Atua como especialista em AWS IAM e controle de acesso, cobrindo IAM Policies (JSON), Permission Boundaries, SCPs (AWS Organizations), AWS IAM Identity Center, STS, ABAC, KMS Key Policies e Access Ana
SKILL.mdskills/security/cloud-iam/iam-access-aws/SKILL.md
GitHubHabilidade de IA: Especialista em Gestão de Acessos e IAM na AWS
Esta skill orienta a inteligência artificial a agir como um Especialista em AWS IAM (Identity and Access Management), fornecendo arquitetura, auditoria, solução de problemas de autorização e automação de controle de acesso para a nuvem da Amazon Web Services (AWS).
📜 1. Anatomia e Avaliação de Políticas IAM (JSON Policies)
Estrutura de uma Política Declarativa
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "EnforceTLSAndMFA",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::bucket-dados-sensiveis",
"arn:aws:s3:::bucket-dados-sensiveis/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false",
"aws:MultiFactorAuthPresent": "false"
}
}
}
]
}
Lógica da Avaliação de Políticas da AWS
- Deny Explícito Sobrepõe Tudo: Se qualquer política aplicável contiver um
Denycujas condições sejam satisfeitas, a requisição é negada imediatamente. - Negativa Padrão (Implicit Deny): Por padrão, todas as requisições são negadas até que haja um
Allowexplícito. - Cruzamento de Limites (Boundaries): O acesso final é a interseção (AND) entre:
- Identity-Based Policy (Políticas do Usuário/Role).
- Resource-Based Policy (Políticas do recurso, ex: S3 Bucket Policy, KMS Key Policy).
- IAM Permission Boundary.
- AWS Organizations Service Control Policy (SCP).
🏰 2. Arquitetura Multi-Account, SCPs e Identity Center
- AWS IAM Identity Center (antigo AWS Single Sign-On):
- Centralização de identidades integradas com IdP externo (Okta, Entra ID, PingFederate) via SAML 2.0 e SCIM 2.0.
- Atribuição de permissões em contas organizacionais usando Permission Sets (associados a contas AWS específicas através de grupos de usuários).
- Service Control Policies (SCPs):
- Políticas de controle aplicadas nas OUs (Organizational Units) do AWS Organizations.
- Estabelecem o limite máximo de permissões (Guardrails) para todas as identidades das contas filhas (inclusive o usuário
root).
- Acesso Cross-Account via STS:
- Eliminar criação de usuários IAM estáticos em contas secundárias.
- Utilizar delegação de acesso via
sts:AssumeRoleconfigurando a Trust Policy (Resource-Based Policy da Role) para confiar apenas no Principal da conta de origem com validação deExternalId(mitigação do problema do Confused Deputy).
🔑 3. Credenciais Temporárias, EKS e Workloads
- AWS STS (Security Token Service):
- Emissão de tokens de acesso temporários efêmeros (
AccessKeyId,SecretAccessKey,SessionToken) viaAssumeRole,AssumeRoleWithWebIdentityouGetSessionToken.
- Emissão de tokens de acesso temporários efêmeros (
- IAM Roles para Workloads EC2, Lambda e ECS:
- Utilização de Instance Profiles (EC2) e Execution Roles (Lambda/ECS) eliminando chaves de acesso gravadas em código ou arquivos de configuração.
- IRSA (IAM Roles for Service Accounts) & Pod Identity no EKS:
- Associação de IAM Roles diretamente a Service Accounts de Kubernetes no Amazon EKS via OpenID Connect (OIDC) ou AWS EKS Pod Identity.
🏷️ 4. Controle de Acesso Baseado em Atributos (ABAC)
- Tags como Condição de Autorização:
- Criação de políticas escaláveis que autorizam ações dinamicamente se as tags da identidade e do recurso coincidirem:
{
"Effect": "Allow",
"Action": ["ec2:StartInstances", "ec2:StopInstances"],
"Resource": "arn:aws:ec2:*:*:instance/*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}"
}
}
}
🔐 5. Políticas de Chaves KMS (KMS Key Policies)
- As chaves de encriptação do AWS KMS exigem permissão explícita na Key Policy da própria chave.
- Garantir que a Key Policy delegue o controle ao IAM da conta ou especifique os Principais autorizados para ações de decapagem/encriptação (
kms:Decrypt,kms:GenerateDataKey).
🔍 6. Auditoria, Zero Trust e Troubleshooting
- IAM Access Analyzer: Análise matemática automatizada baseada em raciocínio automatizado (Automated Reasoning) para identificar recursos expostos publicamente ou para fora da organização.
- AWS CloudTrail & IAM Access Advisor:
- Análise das últimas ações utilizadas por uma IAM Role para redução de permissões não utilizadas (Role Sizing / Least Privilege).
- Ferramentas CLI para Troubleshooting:
# Simular avaliação de políticas para uma ação específica aws iam simulate-principal-policy \ --policy-source-arn arn:aws:iam::123456789012:role/DevRole \ --action-names s3:GetObject \ --resource-arns arn:aws:s3:::meu-bucket/objeto.txt # Inspecionar credenciais ativas da sessão aws sts get-caller-identity
⚙️ Protocolo de Decisão do Engenheiro IAM AWS
- Bloqueie o Uso de Access Keys Estáticas: Exija o uso do IAM Identity Center e credenciais temporárias do STS.
- Imponha Deny em Tráfego Não Criptografado: Toda Bucket Policy ou recurso deve negar explicitamente requisições onde
aws:SecureTransportforfalse. - Utilize SCPs para Bloquear Regiões Desativadas: Configure SCPs para impedir a criação de recursos fora das regiões AWS homologadas pela empresa.
🔗 Integração com Outras Skills
- Para integrar IAM com segurança de transporte e encriptação S3/KMS, consulte a skill cryptography-pqc-standards.
- Para diretrizes gerais de controle de acesso e federação, consulte a skill iam-access-management.
- Para alinhar o IAM AWS aos frameworks de compliance e segurança de nuvem, consulte a skill csa-cloud-security.