Cloud

Conceitos avançados do Amazon S3 – Parte 1

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOAQuer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ? 

Além do básico, existem alguns recursos avançados do Amazon S3, que você também deve estar familiarizado. Vou dividir este artigo em duas partes. Esta é a primeira parte.

Prefixos e Delimitadores

Enquanto o Amazon S3 usa uma estrutura plana em um bucket, ele suporta o uso de parâmetros de prefixo e delimitadores ao listar nomes de chaves. Esse recurso permite organizar, navegar e recuperar os objetos dentro de um bucket hierarquicamente.

Normalmente, você usaria uma barra (/) ou uma barra invertida (\) como um delimitador e, em seguida, usaria nomes de chaves com delimitadores incorporados para emular uma hierarquia de arquivos e pastas dentro do espaço de nome da chave de objeto plana de um bucket.

Por exemplo, você pode querer armazenar uma série de logs do servidor pelo nome do servidor (como servidor1), mas organizado por ano e mês, assim:

logs / 2018 / janeiro / servidor1.log
logs / 2018 / fevereiro / servidor1.log
logs / 2018 / marco / servidor1.log

A API REST, SDK wrapper, AWS CLI e Amazon Management Console suportam o uso de delimitadores e prefixos. Esse recurso permite que você organize logicamente novos dados e mantenha facilmente a estrutura hierárquica de arquivos e arquivos dos dados existentes carregados ou copiados de sistemas de arquivos tradicionais.

Usado em conjunto com as políticas de barramento IAM ou Amazon S3, prefixos e delimitadores também permitem que você crie o equivalente a “subdiretórios” departamentais ou diretórios domésticos de usuário em um único bucket, restringindo ou compartilhando o acesso a esses “subdiretórios” (definidos por prefixos) como necessário.

Use delimitadores e prefixos de objeto para organizar hierarquicamente os objetos em seu
bucket Amazon S3, mas lembre-se sempre que o Amazon S3 não é realmente um sistema de arquivos.

Classes de armazenamento

O Amazon S3 oferece uma variedade de classes de armazenamento adequadas para vários casos de uso.

O Amazon S3 Standard oferece alta durabilidade, alta disponibilidade, baixa latência e alto
armazenamento de objetos de desempenho para uso geral. Como oferece baixa latência de primeiro byte, o padrão é adequado para armazenamento a curto prazo ou a longo prazo de dados acessados ??com freqüência.

Para a maioria dos casos de uso geral, o Amazon S3 Standard é o lugar para começar.

O Padrão Amazon S3 – Infrequent Access (Standard-IA) oferece a mesma durabilidade, baixa latência como Amazon S3 Standard, mas é projetado para dados de longa duração e menos acessados.

O Standard-IA tem um custo de armazenamento menor por GB-mês do que Standard, mas o modelo de preço também inclui um tamanho mínimo de objeto (128KB), duração mínima (30 dias) e custos de recuperação por GB, portanto, é mais adequado para dados acessados poucas vezes e armazenados por mais de 30 dias.

O armazenamento de redundância reduzida do S3 (RRS) oferece uma durabilidade ligeiramente menor (4 noves) do que Standard ou Standard-IA a um custo reduzido. É mais apropriado para dados derivados que podem ser facilmente reproduzidos, como miniaturas de imagens.

Finalmente, a classe de armazenamento Amazon Glacier oferece armazenamento em nuvem seguro, durável e de baixo custo para dados que não requerem acesso em tempo real, como arquivos e backups de longo prazo.

Para manter os custos baixos, o Amazon Glacier é otimizado para dados raramente acessados, onde um tempo de recuperação de várias horas é adequado. Para recuperar um objeto do Amazon Glacier, você emite um comando de restauração usando uma das APIs do Amazon S3; três a cinco horas depois, o objeto é copiado para o Amazon S3 RRS.

Observe que a restauração simplesmente cria uma cópia no Amazon S3 RRS; o objeto de dados original permanece no Amazon Glacier até ser explicitamente excluído. Também esteja ciente de que o Amazon Glacier permite que você obtenha até 5% dos dados do Amazon S3 armazenados no Amazon Glacier gratuitamente todos os meses; restaura além do subsídio de restauração diária incorre em uma taxa de restauração.

Além de atuar como uma camada de armazenamento no Amazon S3, o Amazon Glacier também é um serviço de armazenamento autônomo com uma API separada e algumas características únicas. No entanto, quando você usa o Amazon Glacier como uma classe de armazenamento do Amazon S3, você sempre interage com os dados através das APIs do Amazon S3.

Defina uma política de recuperação de dados para limitar as restaurações ao nível gratuito ou a um máximo de GB por limite de hora para evitar ou minimizar as taxas de restauração do Amazon Glacier.

Gerenciamento do ciclo de vida do objeto

O gerenciamento do ciclo de vida do objeto Amazon S3 é aproximadamente equivalente ao nível de armazenamento automatizado nas infraestruturas tradicionais de armazenamento de TI.

Em muitos casos, os dados têm um ciclo de vida natural, começando como dados “hot” (freqüentemente acessados), movendo-se para dados “warm” (menos acessados) à medida que envelhecem e terminando sua vida como “cold” (backup de longo prazo ou arquivo) antes da eventual exclusão.

Por exemplo, muitos documentos empresariais são freqüentemente acessados ??quando são criados e, em seguida, acessam com menos freqüência ao longo do tempo. Em muitos casos, no entanto, as regras de conformidade exigem que os documentos comerciais sejam arquivados e mantidos acessíveis por anos.

Da mesma forma, estudos mostram que os backups de arquivos, sistemas operacionais e banco de dados são acessados ??com maior freqüência nos primeiros dias após a criação deles, geralmente para restaurar após um erro inadvertido.

Após uma semana ou duas, esses backups continuam a ser um recurso crítico, mas eles são muito menos prováveis ??de serem acessados ??por uma restauração. Em muitos casos, as regras de conformidade exigem que um certo número de backups seja mantido para geralmente 5 à 10 anos.

Usando as regras de configuração do ciclo de vida do Amazon S3, você pode reduzir significativamente seus custos de armazenamento ao transferir dados automaticamente de uma classe de armazenamento para outra ou mesmo excluir dados automaticamente após um período de tempo.

Por exemplo, as regras de ciclo de vida para dados de backup podem ser:

  1. Armazene os dados de backup inicialmente no Amazon S3 Standard.
  2. Após 30 dias, a transição para o Amazon Standard-IA.
  3. Após 90 dias, transição para o Glacier
  4. Após 3 anos, apague.

As configurações do ciclo de vida são anexadas ao bucket e podem ser aplicadas a todos os objetos no bucket ou apenas aos objetos especificados por um prefixo.

Criptografia

É altamente recomendável que todos os dados sensíveis armazenados no Amazon S3 sejam criptografados, tanto em transito (flight) como em repouso.

Para criptografar seus dados do Amazon S3 em flight, você pode usar os nós de extremidade da API S3 Secure Sockets Layer (SSL). Isso garante que todos os dados enviados para e Amazon S3 sejam criptografados enquanto estiverem em trânsito usando o protocolo HTTPS.

Para criptografar seus dados do Amazon S3 em rest (repouso), você pode usar variações da criptografia do lado do servidor (SSE).

O Amazon S3 criptografa seus dados no nível do objeto, pois ele o grava em discos em seus centros de dados e o descriptografa para você quando você acessá-lo.

Todos os SSE executados pelo Amazon S3 e o AWS Key Management Service (Amazon KMS) usam o Padrão de Criptografia Avançada (AES) de 256 bits.

Você também pode criptografar seus dados do Amazon S3 em repouso usando criptografia do lado do cliente, criptografando seus dados no cliente antes de enviá-lo para o Amazon S3.

SSE-S3 (AWS-Managed Keys)

Esta é uma solução de criptografia de “caixa de seleção” – check-box-style – totalmente integrada, onde a AWS lida com o gerenciamento de chaves e a proteção de chaves para o Amazon S3. Todo objeto é criptografado com uma chave exclusiva.

A própria chave de objeto propriamente dita é então criptografada por uma chave mestre separada.

Uma nova chave mestre é emitida pelo menos mensalmente, com a AWS girando as chaves. Dados criptografados, chaves de criptografia e chaves mestre são armazenados separadamente em hosts seguros, além de melhorar a proteção.

SSE-KMS (AWS KMS Keys)

Esta é uma solução totalmente integrada, onde a Amazon gerencia seu gerenciamento de chaves e
proteção para o Amazon S3, mas onde você administra as chaves.

O SSE-KMS oferece vários benefícios adicionais em comparação com a SSE-S3. Usando o SSE-KMS, existem permissões separadas para usar a chave mestre, que fornecem proteção contra acesso não autorizado aos objetos armazenados no Amazon S3 e uma camada adicional de controle.

O AWS KMS também fornece auditoria, para que você possa ver quem usou sua chave para acessar o objeto e quando eles tentaram acessar esse objeto. O AWS KMS também permite que você veja as tentativas falhadas de acessar dados de usuários que não tiveram permissão para descriptografar os dados.

SSE-C (chaves fornecidas pelo cliente)

Isso é usado quando você deseja manter suas próprias chaves de criptografia, mas não deseja gerenciar ou implementar sua própria biblioteca de criptografia do lado do cliente. Com a SSE-C, a AWS fará a criptografia / descriptografia de seus objetos enquanto você mantém o controle total das chaves usadas para criptografar / descriptografar os objetos no Amazon S3.

Criptografia do lado do cliente

A criptografia do lado do cliente refere-se a criptografar dados no lado do cliente do seu aplicativo antes de enviá-lo para o Amazon S3. Você tem as seguintes opções para usar chaves de criptografia de dados:

  • Use uma chave mestre de cliente gerenciada pela AWS KMS.
  • Use uma chave mestre do lado do cliente.

Ao usar a criptografia do lado do cliente, você mantém o controle de ponta a ponta do processo de criptografia, incluindo o gerenciamento das chaves de criptografia.

Para uma simplicidade e facilidade de uso máximas, use criptografia do lado do servidor com chaves AWS Managed Keys (SSE-S3 ou SSE-KMS).

 

 

Sobre o autor: Guilherme Teles é um cara qualquer que não dorme direito e acaba escrevendo. Sou Certificado CISSP, CHFI, CEH, LPIC-3, AWS CDA, AWS SAA, AWS SOAQuer assinar a newsletter do site e receber esse e outros artigos? Clique aqui! Aproveite e navegue pelo smeu blog. Quem sabe você não está exatamente precisando de uma ajuda ?