A segurança em nuvem é um conjunto de práticas, tecnologias e políticas que protegem dados, aplicações e infraestrutura em ambientes de computação em nuvem. Com a crescente adoção de serviços como AWS, Azure e Google Cloud, entender os conceitos fundamentais de segurança se torna essencial para evitar violações de dados e garantir conformidade.

Nesta aula, exploraremos quatro pilares críticos: IAM (Identity and Access Management), segurança em armazenamento (Storage), monitoramento e auditoria (Logging) e o modelo de responsabilidade compartilhada (Shared Responsibility Model). Cada tópico será acompanhado de exemplos práticos e boas práticas.

IAM (Identity and Access Management)

IAM é o serviço que permite gerenciar usuários, grupos, papéis e permissões de acesso a recursos na nuvem. O princípio central é o menor privilégio: conceder apenas as permissões necessárias para cada entidade realizar suas tarefas. Sem um IAM robusto, qualquer credencial comprometida pode levar a uma violação massiva.

Na prática, o IAM envolve a criação de políticas (policies) que definem quais ações são permitidas ou negadas em quais recursos. Por exemplo, uma política pode permitir que um usuário leia objetos de um bucket S3, mas não os delete. Além disso, é possível usar autenticação multifator (MFA) e federar identidades com provedores externos (como Active Directory).

Exemplo de política IAM na AWS (JSON):
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::meu-bucket/*"
    }
  ]
}

Boas práticas: evite usar o usuário root para tarefas diárias; prefira criar usuários com privilégios mínimos; utilize roles para serviços (ex: EC2 assumir role para acessar S3); e audite regularmente as permissões concedidas.

Storage

Armazenamento em nuvem inclui serviços como Amazon S3, Azure Blob Storage e Google Cloud Storage. A segurança nesse contexto envolve criptografia (em repouso e em trânsito), controle de acesso e políticas de retenção. Dados sensíveis devem ser criptografados com chaves gerenciadas pelo cliente ou pelo provedor.

Além disso, é importante configurar políticas de bucket (bucket policies) e listas de controle de acesso (ACLs) para evitar exposição acidental. Por exemplo, um bucket S3 configurado como público pode vazar dados sigilosos. A criptografia do lado do servidor (SSE-S3, SSE-KMS) e do lado do cliente (CSE) oferecem diferentes níveis de proteção.

Exemplo de política para bucket S3 privado:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::meu-bucket",
        "arn:aws:s3:::meu-bucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      }
    }
  ]
}

Boas práticas: ativar o bloqueio de acesso público (Block Public Access); habilitar versionamento para proteção contra exclusão acidental; usar lifecycle policies para mover dados para camadas mais frias ou expirar objetos; e monitorar com ferramentas como AWS Config.

Logging

Logging é o registro de eventos e atividades que ocorrem nos recursos da nuvem. Serviços como AWS CloudTrail, Azure Monitor e Google Cloud Logging capturam chamadas de API, alterações de configuração e acessos. Esses logs são essenciais para auditoria, detecção de anomalias e análise forense.

Os logs devem ser armazenados de forma segura, com criptografia e controles de acesso restritos. É recomendável centralizar logs em uma conta dedicada e usar ferramentas de SIEM (Security Information and Event Management) para correlação e alertas. A retenção de logs deve seguir requisitos regulatórios (ex: 1 ano, 7 anos).

Exemplo de consulta de logs no CloudTrail (via AWS CLI):
aws cloudtrail lookup-events --lookup-attributes AttributeKey=EventName,AttributeValue=CreateBucket

Boas práticas: ativar o CloudTrail em todas as regiões; habilitar a validação de integridade dos arquivos de log; enviar logs para um bucket S3 com políticas de acesso restritas; e configurar alarmes para eventos críticos (ex: criação de usuário IAM).

Shared Responsibility Model

O modelo de responsabilidade compartilhada define que o provedor de nuvem é responsável pela segurança da nuvem (infraestrutura física, rede, hipervisor), enquanto o cliente é responsável pela segurança na nuvem (dados, configurações, identidades). Esse modelo varia conforme o tipo de serviço: IaaS, PaaS ou SaaS.

Por exemplo, em um serviço IaaS (EC2), o cliente gerencia o sistema operacional, firewalls e aplicações. Já em PaaS (RDS), o provedor gerencia o SO e banco de dados, mas o cliente controla os dados e as configurações de acesso. Entender essa divisão evita lacunas de segurança, onde ambas as partes acreditam que a outra está protegendo algo.

Tabela ilustrativa de responsabilidades:
| Recurso               | Provedor | Cliente |
|-----------------------|----------|---------|
| Infraestrutura física | Sim      | Não     |
| Rede                  | Sim      | Parcial |
| Sistema Operacional   | Parcial  | Parcial |
| Dados                 | Não      | Sim     |
| Configurações IAM     | Não      | Sim     |

Boas práticas: documente claramente as responsabilidades no contrato; realize auditorias regulares; e nunca assuma que o provedor está cuidando de tudo. Ferramentas como AWS Artifact fornecem relatórios de conformidade.

Referências

Exercícios

  1. Explique o princípio do menor privilégio no contexto de IAM e dê um exemplo de política que o implemente.

    ✓ Resposta: O princípio do menor privilégio determina que cada usuário ou serviço deve ter apenas as permissões estritamente necessárias para realizar suas tarefas. Exemplo: uma política que permite somente leitura de um bucket S3 específico, negando ações de escrita ou exclusão.
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::meu-bucket/*"
        }
      ]
    }
  2. Cite duas medidas de segurança para proteger dados em armazenamento na nuvem.

    ✓ Resposta: 1) Criptografia em repouso (ex: SSE-S3 no AWS S3) e em trânsito (HTTPS). 2) Controle de acesso restrito com políticas de bucket e bloqueio de acesso público.
  3. Qual a importância do logging para a segurança na nuvem? Mencione um serviço de logging de um provedor.

    ✓ Resposta: O logging permite auditoria, detecção de atividades suspeitas e análise forense. Exemplo: AWS CloudTrail registra todas as chamadas de API.
  4. Descreva o modelo de responsabilidade compartilhada e dê um exemplo de responsabilidade do cliente em IaaS.

    ✓ Resposta: O modelo divide responsabilidades entre provedor (segurança da nuvem) e cliente (segurança na nuvem). Em IaaS (ex: EC2), o cliente é responsável por configurar firewalls, patches do SO e proteger os dados.
  5. Você é um administrador de nuvem e precisa garantir que apenas usuários autenticados com MFA possam acessar um bucket S3. Escreva uma política IAM que atenda a esse requisito.

    ✓ Resposta:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": "s3:GetObject",
          "Resource": "arn:aws:s3:::meu-bucket/*",
          "Condition": {
            "Bool": {
              "aws:MultiFactorAuthPresent": "true"
            }
          }
        }
      ]
    }