O Azure storage deve ser considerado quando uma organização tem diversos requisitos para os dados que deseja armazenar na nuvem.

Na nuvem podemos criar os mais variados tipos e níveis de storage para armazenar dados, de acordo com cada área de negócio ou perfil de usuário.

Dentro do Azure existem dois tipos de serviços de armazenamento:

  • Banco de dados
    • SQL database
    • Synapse
    • Cosmos DB
  • Armazenamento clássico
    • Blob
    • Files
    • Queues
    • Table Storage

É possível criar grupos de recursos para gerenciar os serviços de armazenamento. Com os grupos de recurso, criamos um storage para cada área de negócio.

Esses grupos de recursos são gerenciados pela Storage Account e podem mesclar diversos tipos.

Quando criamos uma storage account  e combinamos diversos serviços nesta conta, passamos a gerenciá-los como um grupo. Assim, qualquer alteração na conta será aplicada a todos os serviços vinculados. Caso a conta seja deletada, todos os dados serão perdidos.

Serviços de bancos de dados como o SQL database e o Cosmos DB não podem ser vinculados a uma storage account.

ESCOLHENDO O MELHOR DATA STORAGE

A escolha do data storage deve ser baseada na forma como os dados são classificados. Podemos classificar os dados em três tipos:

  • Estruturados;
  • Não estruturados;
  • Semi estruturados.

No Azure, existem dois bancos de dados que são utilizados primariamente para armazenar os tipos de dados acima, SQL Database e Cosmos DB.

Devemos considerar o formato dos dados, crescimento, escala e tamanho para definir o melhor serviço de data storage.

DADOS SEMI-ESTRUTURADOS

São dados que não são formatos no modelo relacional tabular ao qual conhecemos. Os dados nesse modelo não se enquadram no formato linha e coluna que os bancos relacionais oferecem.

Geralmente são dados no formato key/value pair e costumam ser armazenados em bancos NoSQL.

Quando os dados estão nesse formato, eles são manipulados através de serializações.

Serialização é um processo de transformação dos dados em um formato que pode ser transferido ou armazenado, como no caso dos arquivos JSON, XML ou YAML.

Atualmente, os formatos mais utilizados são JSON e YAML para armazenamento de dados semi-estruturados.

DADOS NÃO ESTRUTURADOS

São dados que são armazenados sem uma definição como o JSON, por exemplo. Geralmente são arquivos como fotos, vídeos ou até documentos de texto como o Word.

Os dados até possuem uma certa estrutura, mas os que formam o arquivo mesmo, não são estruturados.

CONFIGURAÇÕES DA STORAGE ACCOUNT

Para configurar a política que irá definir a conta de armazenamento, é preciso configurar questões como:

  • Assinatura → que irá servir de base para cobrança do serviço;
  • Localização → em qual região o datacenter que irá armazenar os dados estará;
  • Performance → determina o tipo e o nível de serviço que o storage terá. Isso quer dizer que podemos escolher entre SSD e SATA.
    • Standard → utiliza disco magnético por baixo dos serviços como Blob, Files, Tables e etc.
    • Premium → além de armazenar utilizando SSD, oferece serviços de armazenamento para dados não estruturados permitindo formas de armazenar, seja por bloco, seja por append.
  • Replicação → garante a disponibilidade dos dados caso haja algum incidente de hardware no datacenter.
  • Tier de acesso → aplicado somente ao serviço de blob storage, serve para configurar a velocidade com que os dados são acessados dentro do storage. Dados categorizados como hot, garantem,, acessos mais rápidos, mas com custo maior – ao contrário do que ocorre com o cold.
  • Protocolos de transferência → são os serviços de segurança, podendo ser HTTP ou HTTPS.

NOTA:  A MS garante três cópias dos dados armazenados em seu serviço de storage, porém, caso haja algum desastre natural ou falha que incapacite o datacenter, não há restauração prevista pela Microsoft

Para casos de desastre natural e incapacidade do Datacenter, para se precaver dessa situação, utilize Geo-Replicação de dados enviado para outro Datacenter em outra região ou país.

CRIANDO E CONFIGURANDO UMA STORAGE ACCOUNT

O primeiro passo será criar um grupo de recursos caso não tenha e após a conta de armazenamento. Vale salientar que ela tem que ser única – no MUNDO.

Criação do grupo de recursos da Storage Account no Azure.
Criação do grupo de recursos da Storage Account no Azure.

Após acessar a opção de criação.

Atribuindo nome e assinatura para o grupo de recursos da Storage Account no Azure.
Atribuindo nome e assinatura para o grupo de recursos da Storage Account no Azure.

Configuração da instância básica da conta de armazenamento:

Configurando desempenho e redundância da Storage Account no Azure.
Configurando desempenho e redundância da Storage Account no Azure.

Avançando na criação, existem alguns aspectos de segurança do Storage que devem ser compreendidos. Como os descritos abaixo:

  • Exigir transferência segura para operações da API REST → Se marcado, quando utilizar tais protocolos de requisição, somente os HTTPs serão aceitos por serem criptografados.
  • Habilitar o acesso público ao blob → essa configuração de segurança autorizará ou não, acesso anônimo ao seu Blob storage.
  • Habilitar o acesso à chave de conta de armazenamento → caso tenha serviços que possuem acesso a conta de armazenamento com chave compartilhada, essa opção não pode ser desmarcada.
  • Padrão para autorização do Azure Active Directory no portal do Azure → passa a utilizar o AAD como autenticador de acesso para os serviços de armazenamento.

A seguir a configuração utilizada. Devo ressaltar que não marquei o AAD pois não será um serviço utilizado.

Para a rede de acesso ao Storage, é mais simples e optei por deixar por conta da Microsoft. Claro que em um ambiente empresarial, não é aconselhável.

Configurando a rede de acesso ao Storage no Azure.
Configurando a rede de acesso ao Storage no Azure.

A seção de proteção e criptografia dos dados é a mais importante e deve ser feita com atenção. Dependendo do tipo de configuração criada, ela não poderá ser desfeita.

Nesta etapa, configuramos as permissões de acesso e como os dados são criptografados no ambiente.

Atribuindo a criptografia para o Storage no Azure.
Atribuindo a criptografia para o Storage no Azure.

Caso habilite a opção do NameSpace hierárquico, algumas opções não poderão ser utilizadas. Veremos mais à frente neste artigo.

Configurando o DataLake Gen2 no Azure.
Configurando o DataLake Gen2 no Azure.

Aqui, estamos configurando a quantidade de dias disponíveis para recuperação de um container ou determinado arquivo deletado. Repare que algumas opções não podem ser habilitadas por causa do Namespace.

Especificação para recuperação de dados no DataLake no Azure.
Especificação para recuperação de dados no DataLake no Azure.

Continuando a configuração anterior da Proteção de dados:

Restrição devido a criação do NameSpace no DataLake.
Restrição devido a criação do NameSpace no DataLake.

Na aba de criptografia, decidi marcar a última opção por achar que seria mais seguro. Como o Azure oferece uma camada extra de segurança, optei por adicionar à configuração.

Escolhendo o tipo de criptografia e gestão de chaves no Azure Storage.
Escolhendo o tipo de criptografia e gestão de chaves no Azure Storage.

Ao final, basta clicar em “Examinar + criar” e finalizar o processo.

Resumo da criação da Storage Account.
Resumo da criação da Storage Account.

Quando concluído, na tela inicial, a sua Storage Account e o Grupo de recursos aparecerão na tela inicial.

Painel de exibição dos serviços da Azure Storage
Painel de exibição dos serviços da Azure Storage

CONFIGURAÇÕES

A primeira parte da configuração  consiste na criação dos tipos de serviço de Storage que utilizamos na nuvem.

A criação é bem simples. Basta selecionar e criar o recurso.

No primeiro post sobre o assunto, há a explicação do que cada serviço é e faz. Leia aqui.

Na imagem abaixo, uma pequena visualização das opções de criação do serviço de Compartilhamento de Arquivo.

Perceba que é possível ver o desempenho do hardware utilizado pelo serviço que está vinculado ao seu tier e a camada de transação.

Criação do Compartilhamento de arquivos e suas configurações de hardware.

TIPOS DE BLOB

  • Blobs de bloco → são blocos com tamanhos diferentes que podem ser acessados e baixados de modo independente e paralelo
  • Acréscimo → são blobs de bloco que não dão acesso a qualquer outra operação que não seja inclusão de dados no armazenamento.
  • Página → formatado para acessos aleatórios, são muito utilizados para armazenar os arquivos VHD, discos de máquinas virtuais

FLUXO TRABALHO NO BLOB 

O fluxo de trabalho típico para aplicativos que usam o Armazenamento de Blobs do Azure é o seguinte:

  • Recuperar configurações: na inicialização, carregue a configuração da conta de armazenamento, normalmente uma cadeia de conexão de conta de armazenamento.
  • Inicializar o cliente: para inicializar a biblioteca de clientes do Armazenamento do Azure, use a cadeia de conexão. Isso cria os objetos que serão usados pelo aplicativo para trabalhar com a API do Armazenamento de Blobs.
  • Usar: para operar em contêineres e blobs, faça chamadas à API com a biblioteca de clientes.

CONFIGURAÇÕES DE SEGURANÇA

Além dos usuários, as aplicações também precisam acessar o Storage para escrever ou ler arquivos armazenados. Para ter segurança nesse acesso, configure suas chaves de segurança.

A própria MS fornece duas chaves para gestão e autorização de acesso. Ambas podem ser trocadas a cada período de tempo.

Chaves de segurança para aplicações externas ao Storage no Azure.
Chaves de segurança para aplicações externas ao Storage no Azure.

O interessante do recurso é a possibilidade de criar um lembrete para manter a política de troca de chaves e a facilidade para tal. Basta clicar em “Chave de Giro” e a chave é alterada; tornando a atual inválida.

CHAVES DE CONTA DE ARMAZENAMENTO – CHAVES COMPARTILHADAS

No Azure, as chaves compartilhadas são chamadas de Chaves de contas de Armazenamento.

Cada conta de armazenamento possui duas chaves atribuídas pelo próprio Azure. Chave primária e secundária.

A boa prática é que as utilize apenas em aplicativos que possam ser controlados internamente. As chaves dão acesso a todos os recursos.

Boas Práticas:

  • Renovar as chaves periodicamente;
  • Caso de suspeita de vazamento de chave ou acesso de hackers, renove a chave;
  • Desabilite chaves de usuários inativos.

FUNCIONAMENTO DAS CHAVES DE ACESSO COMPARTILHADO

Utilizar o recurso SAS (assinatura de acesso compartilhado) é uma recomendação para acessar objetos e gerenciar permissões com intervalo de tempo.

O positivo de um sistema SAS é a permissão sob demanda e isolada, podendo garantir um aplicativo, acesso restrito ao blob para ler somente um determinado grupo de arquivos ou realizar alguma tarefa.

IMPORTANTE: Nunca compartilhe com aplicativos de terceiros externos.

TIPOS DE ASSINATURA SAS

O serviço de segurança SAS possui dois tipos de assinaturas:

  • Nível de serviço → utilizado para recursos específicos da conta de armazenamento;
  • Nível de conta → garante todo o acesso que o SAS no nível de serviço garante, porém, possui alguns recursos especiais.

NOTA: Sistemas de arquivos são criados apenas com SAS nível conta.

Se for utilizar um servidor proxy front-end, ele pode sair caro e apresentar uma grande dificuldade de dimensionar, principalmente em ambientes de alto volume e transações. O positivo é que esse servidor é capaz de validar regras de negócios.

Já o serviço SAS é mais barato e fácil de utilizar pois atua conforme a necessidade e o próprio SAS determina o tempo e a política de acesso aos recursos.

Com a SAS, há uma diminuição dos consumos de rede e dados trafegados.

ACESSO COMPARTILHADO AO STORAGE: COMO CONFIGURAR.

Se no seu ambiente houver uma aplicação terceira que deseja acessar seus recursos de storage, mas não é permitido garantir uma chave de acesso, é possível utilizar um serviço de assinatura de acesso compartilhado.

O SAS (Shared access services) é uma possibilidade dentro do Azure de distribuir para as aplicações, permissão de escrita e leitura no seu storage. 

Ao finalizar a configuração, a Microsoft nos entrega um link que contém as permissões necessárias para a aplicação.

Na primeira parte da configuração, autorizamos os serviços, recursos e que tipo de permissão tal aplicação terá.

Atribuindo permissões para as Chaves compartilhadas no Azure.
Atribuindo permissões para as Chaves compartilhadas no Azure.

Para a segunda parte da criação, podemos passar o período de validade do link, os tipos de protocolos permitidos e o roteamento de acesso.

Determinando a validade das Chaves compartilhadas no Azure.
Determinando a validade das Chaves compartilhadas no Azure.

Ao final da configuração, basta mandar gerar a cadeia de acesso e distribuir. É importante destacar que cada serviço recebe seu próprio link de conexão.

Links das Chaves geradas com as permissões atribuídas.
Links das Chaves geradas com as permissões atribuídas.

NOTA: O Azure Defender requer um upgrade na sua assinatura além de um teste por 30 dias. Achei melhor não entrar no assunto para não gerar cobrança extra, além de não fazer parte do exame.

CRIPTOGRAFIA EM REPOUSO

Todos os dados armazenados nos contêineres da Azure são criptografados pela SSe com uma criptografia AES de 256bits.

Assim que os dados são armazenados, eles são criptografados pelo serviço e ao executar qualquer ação, são descriptografados sem penalidade.

Vms criptografam seus discos com o Azure Disk Encryption. Para máquinas Windows, utiliza-se o BitLocker e Dm-crypt para Linux.

As chaves são gerenciadas pelo Key Vault.

CRIPTOGRAFIA EM TRÂNSITO

A recomendação é utilizar conexão HTTPS para transporte seguro e criptografado.

SEGURANÇA NO DATA LAKE

O sistema de segurança do DataLake herda todos os recursos que o blob storage possui.

O DataLake possui um recurso chamado ACL que cria uma lista de acesso e permissões para os usuários.

O método de autenticação se faz por meio de tokens Oauth 2.0 do AD.

Os serviços de análises como Azure Databricks, HD Insights e etc são integrados aos sistemas de segurança do data lake.

Por padrão, todo acesso a rede Azure é aceito.

CONTROLE POR FUNÇÃO

Autoriza solicitações por recurso, como se fossem acessos sob demanda.

AUDITORIA

O próprio Azure possui um serviço de análise de armazenamento interno que faz a auditoria de segurança.

PROTEÇÃO AVANÇADA NA CONTA DE ARMAZENAMENTO

O Azure conta com uma camada adicional de segurança chamada Microsoft Defender.

É uma camada de fácil uso que auxilia o usuário  a garantir a segurança do ambiente em cloud.

O sistema conta com alerta para notificar os administradores de qualquer evento suspeito.

Como Habilitar:

  • Inicie o portal do Azure.
  • Navegue para sua conta de armazenamento. Em Segurança + Rede, selecione Segurança.
  • Selecione Habilitar o Microsoft Defender para Armazenamento.

GERENCIADOR DE ARMAZENAMENTO

O Azure Storage possui um gerenciador de armazenamento utilizado em qualquer desktop que permite manipular e gerenciar uma ou diversas contas de armazenamento na nuvem.

Além do armazenamento, ele possui um emulador que simula uma instância do SQL Server 2012 Express, além de alguns serviços como: Azure Table, File Storage, fila e blob.

Para baixá-lo, você precisa acessar esse link AQUI:

Conectar a sua conta do Azure nele:

Conectando a conta do Azure no gerenciador de Storage para Desktop.
Conectando a conta do Azure no gerenciador de Storage para Desktop.

E quando autenticar, todos os recursos serão exibidos

Escolha do diretório para gerenciamento.
Escolha do diretório para gerenciamento.

Com a conta devidamente sincronizada, podemos gerenciar todo o conteúdo e criar recursos sem precisar acessar o portal do Azure.

Conta sincronizada no gerenciador.

EXTRA: ARMAZENAMENTO EM MÁQUINAS VIRTUAIS

Máquinas virtuais do Azure utilizam discos virtuais para armazenar dados.

Existem três tipos de discos disponíveis no Azure:

  • Gerenciados;
  • Não gerenciados;
  • Locais.

É possível gerenciar os discos manualmente ou deixar que o próprio Azure gerencie os discos e a infra.

Os discos das máquinas virtuais possuem três funções:

  • Discos de S.O → são discos que armazenam imagens de sistemas operacionais que podem ser atribuídos para uma máquina quando ela é instanciada.
  • Discos de dados → são discos utilizados para armazenar dados dentro da máquina virtual e possuem uma capacidade de 32GB. A quantidade de discos que podem ser adicionados na máquina, vai depender da VM configurada.
  • Discos temporários → cada máquina virtual possui um disco temporário que é indicado para arquivos efêmeros que não serão persistidos. Não são disponíveis para contas de armazenamento.

CONCLUSÃO

Neste artigo eu abordei passo a passo a criação dos serviços e recursos necessários para utilizar o Azure Storage.

Expliquei o que é cada serviço, como se complementam, formas de escolha e o algumas boas práticas.

Abordamos os tipos de dados mai comuns que vão para a nuvem e quais são exclusivos para bancos relacionais e não relacionais.

Como a segurança de dados é um fator crítico para as organizações, também mostrei como criar e gerir chaves de segurança para o seus dados armazenados e ambiente no geral; além das permissões para suas aplicações.

E no final, mostrei que é possível utilizar o gerenciador de storage no seu Desktop.

Obrigado e volte sempre!!

OLÁ!

Se chegou até aqui e gostou do pequeno tutorial, deixe seu like compartilhe. Ajude o blog a alcançar mais pessoas!

Caso queira receber em primeira mão esse tipo de conteúdo, se inscreva abaixo:

SIGA NAS REDES SOCIAIS: