O blog da AWS
Prevenção, investigação e medidas responsivas no Bucket S3
Kimmy Wu, Arquiteta de Soluções da AWS
O Amazon Simple Storage Service (S3) foi projetado para facilitar seu armazenamento de objetos. Ao criar um bucket, a propriedade é total da conta da AWS que o criou, sendo intransferível. Por isso, segundo o modelo de responsabilidade compartilhada da AWS, em que o cliente é responsável pela “segurança na nuvem”, as ações e operações de configuração que irão garantir a segurança dos dados armazenados dentro do bucket é de responsabilidade da(o) dona(o) da conta AWS.
Como toda solução AWS, sempre visamos a segurança em primeiro lugar, e nada muda com o bucket S3, uma vez que este pode vir a armazenar dados sensíveis da sua empresa. É necessário tomar medidas para proteger seus dados, já que ao ser expostos na internet pode gerar perdas significativas para a sua empresa.
Apesar do bucket ser criado de forma privada por padrão, sempre está suscetível a erros humanos. Dessa forma iremos abordar 3 maneiras de tratar a segurança dos seus dados dentro de um bucket S3:
1) Medidas preventivas
A segurança preventiva visa utilizar medidas de segurança prevendo possíveis erros que possam vir a acontecer.
Um passo inicial e de tamanha importância é a criptografia. O Amazon S3 fornece a criptografia padrão do bucket S3, para que todos os objetos novos sejam criptografados quando forem armazenados nele. A chave pode ser gerenciada pelo Amazon S3 (SSE-SE) ou as chaves mestras do cliente (CMKs) armazenadas no AWS Key Management Service (AWS KMS).
A utilização da criptografia do lado do servidor garante que o objeto é criptografado antes de ser armazenado e descriptografado quando você faz o download. Todo objeto por padrão dentro do bucket S3 é exposto por uma URL com HTTPS garantindo a criptografia do canal.
As configurações podem ser feitas via linha de comando ou pela console AWS acessando a aba de propriedades dentro do seu bucket.
Outra opção seria a criptografia ao lado do cliente, sendo o objeto já criptografado antes de ser enviado para o armazenamento do S3, sendo assim de forma não gerenciada pela AWS.
2) Medidas investigativas
É sempre importante ter o controle de acesso e ações que ocorreram no seu bucket S3. Com isso, log e monitoramento são fundamentais para que futuramente seja capaz de investigar ações inesperadas no seu bucket, como a deleção de objetos importantes, exposição de dados sensíveis, entre outros. As funcionalidades de log e rastreamentos dentro dos buckets S3 também ajudam com as empresas que necessitam de auditoria.
Para isso em apenas alguns cliques é possível ativar os logs do seu bucket S3, ao fazer isso o bucket irá coletar os logs e armazená-los em um outro bucket de destino. O log de acesso ao servidor fornece detalhes sobre a solicitação de acesso, incluindo informações sobre o solicitante, nome do bucket, horário da solicitação, ação da solicitação, status de respostas e o código de erro.
Quando ativado todos os logs serão coletados e armazenados em um outro bucket na mesma região que você definirá como um bucket de destino. É possível também colocar um prefixo antes de todo o log criado, facilitando o caso de pesquisas nos logs.
Apesar de não ser habilitado por padrão, você consegue fazer os ajustes utilizando a console, ou linha de comando AWS.
Quando pensamos no nível do objeto o AWS CloudTrail suporta registro de operações de API no nível do objeto Amazon S3, GetObject
, DeleteObject
e PutObject
, assim armazenando em um bucket de destino o log das ações realizadas no objeto. É possível também colocar um prefixo antes de todo o log criado facilitando o caso de pesquisas e futuras auditorias em cima.
É importante relembrar que é necessário criar as configurações do CloudTrail antes, sendo este na mesma região que o seu bucket. Você consegue iniciar o log a nível de objeto utilizando a console AWS ou linha de comando.
Uma boa prática é ter o bucket de log isolado em uma conta de auditoria, de forma que não seja possível ser feito nenhuma alteração nos dados, garantindo a imutabilidade deste.
3) Medidas responsivas
Apesar de todas as medidas de seguranças que irão ajudar na proteção preventiva e investigativa dos dados da sua empresa, tudo falha a toda hora; por isso é importante possuir guias e medidas automatizadas que irão atuar em cima do problema de forma assertiva e rápida. Para isso o AWS Config utiliza remediações a partir de regras definidas, de acordo com as políticas da sua empresa, para garantir a conformidade de um novo bucket ou um já existente. Após criada a regra será mostrado para você dentro da console quais são os buckets que não estão de acordo. São diversas regras gerenciadas que o AWS Config disponibiliza, mas também é possível criar as suas regras personalizadas.
Além das regras é possível criar ações de remediação automática que irão garantir que os seus buckets estão de acordo com as regras definidas pela segurança. Ao criar a ação para a regra é necessário utilizar o IAM afim de garantir permissão para que o AWS Config consiga realizar as alterações.
Nesse blogpost foram mostradas algumas formas simples de melhorar a segurança de dados da sua empresa. Apesar de estar focado no serviço Amazon S3 as indicações de medidas preventivas, investigativas e responsivas podem ser aplicadas em outros serviços.
Sobre os autores
Kimmy Wu
Kimmy é arquiteta de soluções e responsável por ajudar clientes Enterprise, com foco na área financeira, a criarem workloads que permitem o avanço da sua jornada de transformação digital na nuvem da AWS.