0Pricing
Cloud & IT Cert Prep · Aula

Cenários de arquitetura segura

Resolva questões de cenário sobre menor privilégio no IAM, criptografia, isolamento da VPC e WAF/Shield para consolidar seus conhecimentos do domínio de segurança.

Cenários de arquitetura segura é uma aula grátis de Cloud & IT Cert Prep no CoddyKit. Esta é a aula 1 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.

Cenário 1: acesso do EC2 ao S3 com privilégio mínimo

Cenário: Uma instância do EC2 executa uma aplicação web que precisa ler objetos de um bucket específico do S3. A equipe de segurança exige que nenhuma credencial de longo prazo seja armazenada na instância e que o acesso siga o princípio do privilégio mínimo. Solução: Crie uma função do IAM com uma política que permita apenas s3:GetObject no ARN do bucket específico. Anexe a função à instância do EC2 como um perfil de instância. A aplicação usa o serviço de metadados da instância (IMDS) para recuperar credenciais temporárias automaticamente — não são necessárias chaves armazenadas.

# IAM policy for least-privilege EC2 -> S3 read
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Action': ['s3:GetObject'],
    'Resource': 'arn:aws:s3:::my-app-bucket/*'
  }]
}

# Attach role to EC2 instance
aws ec2 associate-iam-instance-profile \
  --instance-id i-1234567890abcdef0 \
  --iam-instance-profile Name=EC2S3ReadRole

Cenário 2: criptografando dados em um banco de dados RDS

Cenário: Uma empresa armazena PII de clientes em um banco de dados RDS PostgreSQL. A equipe de conformidade exige criptografia em repouso com a possibilidade de auditar o uso das chaves. Solução: Ative a criptografia do RDS usando o AWS KMS com uma Customer Managed Key (CMK). A CMK permite que a equipe de segurança controle a rotação das chaves, visualize o uso delas no CloudTrail e revogue o acesso quando necessário. Observação: a criptografia deve ser ativada durante a criação da instância do RDS — não é possível criptografar no local uma instância do RDS existente e não criptografada. Para criptografar um banco existente, crie um snapshot, copie-o com a criptografia ativada e restaure-o a partir do snapshot criptografado.

# Create an encrypted RDS instance
aws rds create-db-instance \
  --db-instance-identifier prod-postgres \
  --db-instance-class db.t3.medium \
  --engine postgres \
  --master-username admin \
  --master-user-password SecurePass123! \
  --storage-encrypted \
  --kms-key-id arn:aws:kms:us-east-1:123456789012:key/mrk-abc123 \
  --allocated-storage 100

Cenário 3: bucket do S3 — bloquear o acesso público

Cenário: Um desenvolvedor tornou acidentalmente público um bucket do S3, expondo dados de clientes. A equipe de segurança quer garantir que nenhum bucket do S3 na conta possa ser tornado público, mesmo que um desenvolvedor tente fazê-lo. Solução: Ative o S3 Block Public Access no nível da conta. Isso substitui qualquer política ou ACL no nível do bucket que conceda acesso público, independentemente do que as equipes individuais configurarem. Combine essa configuração com uma regra do AWS Config (s3-bucket-public-read-prohibited) para detectar continuamente e alertar sobre buckets não conformes.

# Block all public access at account level
aws s3control put-public-access-block \
  --account-id 123456789012 \
  --public-access-block-configuration \
    'BlockPublicAcls=true,IgnorePublicAcls=true,BlockPublicPolicy=true,RestrictPublicBuckets=true'

# Deploy Config rule to detect violations
aws configservice put-config-rule \
  --config-rule '{"ConfigRuleName": "s3-bucket-public-read-prohibited", "Source": {"Owner": "AWS", "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED"}}'

Cenário 4: isolamento da VPC para a camada de banco de dados

Cenário: Uma empresa quer garantir que seu banco de dados RDS só possa ser acessado pelos servidores de aplicação, e não pela Internet. Solução: Coloque o RDS em uma sub-rede privada sem uma rota para um gateway da Internet. Crie um grupo de segurança para o RDS que permita tráfego de entrada somente na porta 5432 (PostgreSQL) proveniente do grupo de segurança dos servidores de aplicação — não de qualquer intervalo de endereços IP. Isso garante que, mesmo se um servidor de aplicação for comprometido, o invasor não consiga alcançar o banco de dados de fora da VPC, e que o movimento lateral seja limitado pelas regras dos grupos de segurança.

# Create RDS security group allowing only the app tier SG as source
aws ec2 create-security-group \
  --group-name rds-sg \
  --description 'RDS security group' \
  --vpc-id vpc-abc123

aws ec2 authorize-security-group-ingress \
  --group-id sg-rds \
  --protocol tcp \
  --port 5432 \
  --source-group sg-app  # app tier security group ID only

Cenário 5: alternando credenciais do banco de dados

Cenário: Atualmente, o código da aplicação contém credenciais do banco de dados codificadas diretamente em arquivos de configuração. A auditoria de segurança sinaliza isso como um risco crítico. Solução: Armazene as credenciais no AWS Secrets Manager e configure a rotação automática (o Secrets Manager possui funções integradas de rotação do Lambda para o RDS). Atualize a aplicação para buscar as credenciais no Secrets Manager durante a execução, usando o SDK. A aplicação obtém automaticamente credenciais novas sem qualquer implantação a cada rotação. Ative o modelo de rotação de segredos do RDS para obter uma rotação de credenciais totalmente gerenciada e sem tempo de inatividade.

# Store RDS credentials in Secrets Manager
aws secretsmanager create-secret \
  --name prod/myapp/rds \
  --secret-string '{"username":"admin","password":"OldPass123!","host":"rds-endpoint.amazonaws.com","port":5432}'

# Enable automatic rotation every 30 days
aws secretsmanager rotate-secret \
  --secret-id prod/myapp/rds \
  --rotation-lambda-arn arn:aws:lambda:us-east-1:123:function:SecretsManagerRDSPostgreSQLRotationSingleUser \
  --rotation-rules AutomaticallyAfterDays=30

Cenário 6: detectando atividade incomum de API

Cenário: Uma empresa quer detectar se as credenciais de uma conta AWS foram comprometidas e estão sendo usadas de locais inesperados. Solução: Ative o Amazon GuardDuty em todas as Regiões. O GuardDuty analisa eventos do CloudTrail, registros de fluxo da VPC e registros de DNS usando aprendizado de máquina para detectar anomalias: chamadas de API de regiões geográficas incomuns, padrões de mineração de Bitcoin no EC2, comunicação com nós de saída do Tor ou padrões de exfiltração de credenciais. O GuardDuty gera descobertas que podem acionar regras do EventBridge para notificar automaticamente a equipe de segurança via SNS ou criar um chamado de suporte.

# Enable GuardDuty in a Region
aws guardduty create-detector \
  --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES

# EventBridge rule to react to GuardDuty HIGH severity findings
aws events put-rule \
  --name guardduty-high-severity \
  --event-pattern '{
    "source": ["aws.guardduty"],
    "detail-type": ["GuardDuty Finding"],
    "detail": {"severity": [{"numeric": [">=", 7]}]}
  }'

Cenário 7: WAF para bloquear solicitações maliciosas

Cenário: Uma aplicação web executada atrás de um ALB está recebendo ataques de injeção de SQL. A aplicação não pode ser modificada imediatamente. Solução: Associe o AWS WAF ao ALB. Implante o grupo de regras AWS Managed Rules for Common Threats (Core Rule Set + grupo de regras de banco de dados SQL), que inclui detecção pré-configurada de injeção de SQL. O WAF inspeciona as solicitações HTTP antes que elas cheguem ao ALB e bloqueia as solicitações que correspondem a padrões de ataque — nenhuma alteração no código da aplicação é necessária. Ative também o registro do WAF no Kinesis Firehose para análise de segurança.

# Create WAF Web ACL with SQL injection protection
aws wafv2 create-web-acl \
  --name AppProtection \
  --scope REGIONAL \
  --default-action Allow={} \
  --rules '[{
    "Name": "AWSManagedRulesSQLiRuleSet",
    "Priority": 1,
    "Statement": {
      "ManagedRuleGroupStatement": {
        "VendorName": "AWS",
        "Name": "AWSManagedRulesSQLiRuleSet"
      }
    },
    "OverrideAction": {"None": {}},
    "VisibilityConfig": {"SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "SQLi"}
  }]' \
  --region us-east-1

Cenário 8: assumir uma função entre contas

Cenário: Uma conta central de segurança precisa de acesso somente para leitura a todas as contas de cargas de trabalho em uma organização da AWS para executar auditorias de segurança. Solução: Em cada conta de carga de trabalho, crie uma função do IAM com uma política de confiança que permita à conta de segurança (por ID da conta) assumi-la. Anexe uma política somente leitura (por exemplo, a política gerenciada pela AWS SecurityAudit). A equipe de segurança da conta central usa STS AssumeRole para assumir temporariamente a função em cada conta de carga de trabalho. Isso segue o princípio do privilégio mínimo — nenhum usuário permanente do IAM é criado nas contas de carga de trabalho.

# Trust policy in workload account (allows security account to assume role)
{
  'Version': '2012-10-17',
  'Statement': [{
    'Effect': 'Allow',
    'Principal': {
      'AWS': 'arn:aws:iam::SECURITY_ACCOUNT_ID:root'
    },
    'Action': 'sts:AssumeRole'
  }]
}

# From security account: assume role in workload account
aws sts assume-role \
  --role-arn arn:aws:iam::WORKLOAD_ACCOUNT_ID:role/SecurityAuditRole \
  --role-session-name audit-2024-01

Cenário 9: restringindo ações com SCPs

Cenário: Uma empresa usa o AWS Organizations e quer impedir que qualquer conta em uma OU que não seja de produção inicie instâncias GPU caras. Solução: Crie uma Service Control Policy (SCP) que negue ec2:RunInstances para famílias de instâncias GPU (p3, p4, g4, g5) e anexe-a à OU que não seja de produção. As SCPs se aplicam até mesmo a usuários raiz e usuários do IAM com nível de administrador nas contas-membro — elas funcionam como barreiras de proteção que nenhuma identidade na conta pode substituir. Isso evita gastos altos acidentais ou maliciosos em contas de desenvolvimento e teste.

# SCP to deny GPU instance types in non-prod OU
{
  'Version': '2012-10-17',
  'Statement': [{
    'Sid': 'DenyGPUInstances',
    'Effect': 'Deny',
    'Action': 'ec2:RunInstances',
    'Resource': 'arn:aws:ec2:*:*:instance/*',
    'Condition': {
      'StringLike': {
        'ec2:InstanceType': ['p3.*', 'p4d.*', 'g4.*', 'g5.*']
      }
    }
  }]
}

Cenário 10: trilha de auditoria para conformidade

Cenário: Uma empresa de serviços financeiros precisa demonstrar aos auditores que todas as chamadas de API da AWS são registradas, protegidas contra adulteração e mantidas por 7 anos. Solução: Crie uma trilha do AWS CloudTrail em várias Regiões que entregue os registros a um bucket dedicado do S3 em uma conta de registro. Ative a validação da integridade dos arquivos de registro (arquivos de resumo criptográfico que detectam adulterações nos registros). Defina uma política de Object Lock do S3 no modo de conformidade, com um período de retenção de 7 anos no bucket de registro. Isso garante que os registros não possam ser excluídos ou modificados — nem mesmo pelo usuário raiz — durante o período de retenção exigido.

# Create multi-region trail with integrity validation
aws cloudtrail create-trail \
  --name compliance-trail \
  --s3-bucket-name central-audit-logs-123 \
  --is-multi-region-trail \
  --enable-log-file-validation \
  --include-global-service-events

aws cloudtrail start-logging --name compliance-trail

Cenário 11: endpoint da VPC para acesso privado ao S3

Cenário: Instâncias do EC2 em uma VPC privada precisam acessar o S3 sem que o tráfego atravesse a Internet pública. Atualmente, um NAT Gateway é usado, e os custos são altos devido às taxas de processamento de dados do NAT Gateway. Solução: Crie um endpoint de gateway da VPC para o S3. Adicione uma entrada de rota à tabela de rotas da sub-rede privada, apontando a lista de prefixos do S3 para o endpoint. O tráfego para o S3 permanecerá inteiramente dentro da rede de backbone da AWS — sem NAT Gateway e sem necessidade de gateway da Internet. Os endpoints de gateway do S3 são gratuitos (ao contrário dos endpoints de interface, que têm custo por hora e por AZ). Isso também melhora a segurança ao remover o acesso ao S3 do caminho da Internet pública.

# Create S3 Gateway VPC Endpoint
aws ec2 create-vpc-endpoint \
  --vpc-id vpc-abc123 \
  --service-name com.amazonaws.us-east-1.s3 \
  --route-table-ids rtb-private-1a rtb-private-1b

# Result: route table automatically gets a route:
# Destination: pl-63a5400a (S3 prefix list)
# Target: vpce-xyz456 (the Gateway Endpoint)
# EC2 instances now reach S3 privately at no endpoint cost

Verificação rápida

Teste sua compreensão dos conceitos de AWS Solutions Architect (SAA-C03) desta lição.

Resumo da lição

Nesta lição, você trabalhou com cenários que abordaram: funções do IAM e perfis de instância para acesso ao EC2 sem credenciais, Secrets Manager para rotação automática de credenciais do banco de dados, AWS WAF para bloquear ataques de injeção sem alterações no código e CloudTrail com S3 Object Lock para registros de conformidade protegidos contra adulteração. A seguir, abordaremos cenários de arquiteturas resilientes e altamente disponíveis.

Perguntas Frequentes

A aula “Cenários de arquitetura segura” é grátis?

Sim — o texto completo de “Cenários de arquitetura segura” é 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 “Cenários de arquitetura segura”?

Resolva questões de cenário sobre menor privilégio no IAM, criptografia, isolamento da VPC e WAF/Shield para consolidar seus conhecimentos do domínio de segurança. 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 1 de 4.

Quanto tempo leva a aula “Cenários de arquitetura segura”?

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

  1. Cenários de arquitetura segura
  2. Cenários de arquiteturas resilientes e altamente disponíveis
  3. Cenários de alto desempenho e otimização de custos
  4. Mini exame completo com domínios mistos
← Voltar para Cloud & IT Cert Prep