Olá, e obrigado por sua visita. Decidi criar esta série de posts para começar a tratar de um tema que já venho querendo falar sobre há muito tempo: Cloud Security. Como sempre, há bastante material disponível.principalmente em língua inglesa, mas boa parte voltada a algum fabricante em específico.

O objetivo é fazer um apanhado sobre todos os conceitos que precisam ser considerados quando lidando com este assunto. Em cada post, explicarei parte deles, dando exemplos práticos de aplicação. Este primeiro post é dedicado a fazer uma introdução geral. Vamos ao que interessa!

 

Introdução – Computação em Nuvem

Antes de começar a falar sobre Cloud Security, é preciso definir o que é “Cloud Computing”. Se você se encaixa em um ou mais dos bullets abaixo, continue neste tópico. Do contrário, vá para o tópico seguinte. Você…

  1. Administra ambientes VMware vSphere (servidores com ESXi e um ou mais vCenters) e acha que isto é computação em nuvem?
  2. Administra ambientes Microsoft Hyper-V (com hosts Windows Server e o System Center Virtual Machine Manager) e acha que isto é computação em nuvem?
  3. Administra clusters de servidores LInux com DRBD e Hearbeat, e acha que isto é computação em nuvem?
  4. Está imerso no mundo de containers, e tem criado clusters Swarm ou Kubernetes (veja nossa série sobre Docker), e acha que isto é computação em nuvem?
  5. Gerencia uma plataforma de serverless computing para desenvolver suas aplicações sem se preocupar com infraestrutura, e acha que isto por si só é computação em nuvem?
  6. Está envolvido com o ideal DevOps, aplicando IaaC (infraestrutura como Código) através de ferramentas como Ansible, Chef e Puppet, e acha que isto é computação em nuvem?

Sim? Para quantas das opções acima? Mais de uma? 🙂 Não se preocupe. Você não está sozinho. Muita gente se engana com esta mistura de conceitos e soluções. A Tecnologia da Informação evolui de uma maneira tão frenética, que pode ficar complicado para algumas pessoas acompanhar o ritmo.

Pra você que acha que virtualização e computação em nuvem são a mesma coisa, preciso dizer que está enganado.  Obviamente, implantar computação em nuvem sem virtualização seria extremamente complicado, pois demandaria um imenso esforço de provisionamento de recursos físicos. No entanto, apesar de ser uma obrigação de facto (ou seja, real), não é uma obrigado de jure (ou seja, formal). Para entender melhor de virtualização de servidores, veja o primeiro capitulo da série “A B C Docker”. Há uma referência lá.

 

NIST – A definição mais aceita

Qualquer serviço de computação em nuvem possui uma característica inerente de tornar transparente ao cliente quais recursos físicos estão sendo alocados para atender a uma determinada demanda. Esses recursos podem ser CPU, memória, discos, rede, elementos de segurança, dentre outros.

No entanto, a definição globalmente aceita é a publicação especial 800-145 do NIST.

Observe que o link da publicação não pertence ao site do NIST. Quando estava escrevendo este post, tive conhecimento de uma notícia de 22 de Dezembro de 2018, que informava paralisação de alguns sites internos, incluindo o que mantinha o documento. Você pode ver mais detalhes aqui.

Esta publicação afirma que qualquer implementação de computação em nuvem precisa ter os cinco critérios abaixo:

  • Auto-serviço sob demanda. Isto é, o cliente pode por conta própria, sem necessitar de qualquer intervenção humana, provisionar todos os recursos de que necessita;
  • Amplo acesso por rede. Significa que todos os recursos devem ser plenamente acessíveis através da rede. Dependendo da implementação, rede privada ou rede pública;
  • Agrupamento de recursos. O fornecedor do serviço agrupa dinamicamente os recursos físicos e/ou virtuais necessários para atender à demanda, e os desagrupa automaticamente após a finalização. Isto pode incluir o uso de elementos “multi-tenant”, ou seja, que congregam dados e workloads de clientes diferentes;
  • Rápida elasticidade. As capacidades dos recursos do provedor devem poder ser escaladas elasticamente (para mais ou para menos), de forma a atender às alterações de necessidades do cliente. Do ponto de vista do cliente, a percepção é de que o limite de escalabilidade é aparenemente infinito;
  • Pagamento pelo uso. A literatura específica possui o termo.”pay as you grow”, o que, em outras palavras, quer dizer que só se paga pelo que realmente é consumido. A implementação de computação em nuvem deve possuir a habilidade de controlar e otimizar o uso de recursos fornecendo uma habilidade de medição de seu uso. Em Inglês, billing.

 

Modelos de Serviço

Você já deve ter visto a figura abaixo em alguma de suas leituras sobre o tema, mas não custa nada reforçar. Os modelos tradicionais de serviços para computação em nuvem são IaaS (Infraestrutura como Serviço), PaaS (Plataforma como Serviço) e SaaS (Software como Serviço).

Esta imagem mostra uma comparação entre os vários tipos de serviços e, dependendo do modelo, o que é gerenciado pelo cliente, e o que é responsabilidade do provedor de serviços.

Modelos de Serviço de Computação em Nuvem – Crédito: Binary Informatics

Do lado esquerdo, está a representação das camadas de uma aplicação que é executada dentro do ambiente do cliente (on-premises). Observe que, à medida que se caminha para a direita da imagem, menos recursos ficam sob responsabilidade do cliente, e vão sendo gerenciados pelo provedor de serviços. O grau máximo de gerenciamento completo pelo provedor é alcançado no SaaS.

  • IaaS:  o provedor gerencia infraestrutura física, rede, armazenamento, servidores, virtualização e sistema operacional. A partir do middleware, e até a aplicação em si, é tarefa do cliente;
  • PaaS:  o provedor gerencia todas as camadas de IaaS e mais middleware e runtime. Cliente fica responsável pelo runtime e dados;
  • SaaS: neste modelo, o cliente solicita a contratação de um serviço e recebe uma interface gráfica com a representação do mesmo. Tudo é gerenciado pelo provedor.

À medida que novos serviços vão sendo lançados, novos modelos também vão sendo disponibilizados, como DBaaS (Banco de Dados como Serviço), NaaS (Rede como Serviço), CaaS (Comunicações como Serviço) e SECaaS (Segurança como Serviço), entre outros.

Você pode ter ainda três tipos de implementação de computação em nuvem:

  • Pública:  quando os recursos são fornecidos por outras empresas, especializadas nessa tarefa;
  • Privada:  quando toda a infraestrutura é construída e gerenciada pelo próprio cliente, ou por meio de uma empresa contratada especificamente para este fim. Excelentes exemplos de nuvens privadas são o OpenStack, Apache CloudStack e OpenNebula;
  • Híbrida:  quando os recursos são divididos entre uma nuvem pública e uma nuvem privada, e ambos são conectadas.

 

Responsabilidade Compartilhada

Algo que pode parecer óbvio, mas que precisa ficar claro, é que a responsabilidade pela segurança dos recursos está diretamente relacionada a que tipo de modelo de computação em nuvem está sendo contratado. Quanto mais recursos são entregues para gerência do provedor, mais responsabilidade ele herda.

Portanto, ao falar sobre Cloud Security, é preciso atentar que o provedor pode ser responsável pela segurança de apenas parte dos recursos, sendo o cliente responsável pela outra parte. Esta abordagem é conhecida como responsabilidade compartilhada.

Assim, é necessário cuidar da segurança em todas as camadas, desde o planejamento da aplicação, até seu funcionamento na nuvem.

A partir do próximo post, vamos tratar de cada uma destas camadas e dar dicas de como se pode reforçar a segurança delas. Vejo você lá. 😉

Compartilhe:

Maurício Harley

Olá! Meu nome é Maurício Harley. Tenho mais de 20 anos de experiência em Tecnologia da Informação. Durante minha carreira, trabalhei em setores diversos, como suporte a usuário final, manutenção de hardware, instalação e suporte a redes de computadores, programação, projetos avançados em Data Center, Cloud Computing, Cyber Security e Redes, incluindo Service Providers.

0 comentário

Deixe um comentário

Avatar placeholder

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Translate

You cannot copy content of this page.