Anotações sobre o AWS S3 - Encryption para ajudar na preparação das certificações AWS.
Até o momento as anotações são para as certificações abaixo:
Anotações gerais
- AES-256
- Os metadados não são encryptados, para isso coloque-os em uma tabela do Dynamodb e criptografe com KMS
- "s3:x-amz-server-side-encryption": "AES256"
- Para encryptar um bucket - AWS SSE-S3 + AWS KMS CMK
- aws:SecureTransport
- Para criptografar os dados do Amazon S3 em trânsito, você pode usar os endpoint (endpoints) da API do Amazon S3 Secure Sockets Layer (SSL).
- Isso garante que todos os dados enviados para e do Amazon S3 sejam criptografados enquanto estiver em trânsito usando o protocolo HTTPS.
- Para criptografar os dados do Amazon S3 em repouso, você pode usar várias variações de SSE (Server-Side Encryption).
- O Amazon S3 criptografa seus dados no nível do objeto enquanto os grava em discos em seus datacenters e os descriptografa para você quando você os acessa.
- Todo o SSE executado pelo Amazon S3 e pelo AWS Key Management Service (Amazon KMS) usa o Advanced Encryption Standard (AES) de 256 bits.
- Você também pode criptografar os dados do Amazon S3 em repouso usando o lado do cliente, criptografando seus dados no cliente antes de enviá-los para o Amazon S3.
Server Side Encryption (Criptografia no lado do servidor)
Server Side Encryption é a criptografia de dados em seu destino pela aplicação ou serviço que os recebe.
- Criptografa os dados no nível do objeto no momento em que os grava em discos nos datacenters e descriptografa-os quando você os acessa.
- Peça que o Amazon S3 criptografe o objeto antes de salvá-lo em discos em seus datacenters e descriptografe-o ao fazer download dos objetos.
Você tem três opções, dependendo de como escolhe gerenciar as chaves de criptografia.
SSE-S3 (Chaves gerenciadas pela AWS)
Documentação oficial
Quando usar Server Side Encryption com as chaves gerenciadas pelo Amazon S3 (SSE-S3), cada objeto será criptografado com uma chave exclusiva. Como uma proteção adicional, ela criptografa a própria chave utilizando uma chave-raiz que alterna regularmente.
- Não fornecem uma trilha de auditoria que mostre quando sua CMK foi usada e por quem
- Essa é uma solução de criptografia "estilo caixa de seleção" totalmente integrada, na qual a AWS lida com o gerenciamento e a proteção de chaves do Amazon S3. Cada objeto é criptografado com uma chave exclusiva.
- A própria chave do objeto é então criptografada por uma chave mestra separada.
- Uma nova chave mestra é emitida pelo menos mensalmente, com a AWS rotacionando as chaves.
- Dados criptografados, chaves de criptografia e chaves mestras são todos armazenados separadamente em hosts seguros, aumentando ainda mais a proteção.
SSE-KMS (KMS Key)
Documentação oficial
A Server Side Encryption com AWS KMS keys (SSE-KMS) é semelhante a SSE-S3, mas com alguns benefícios adicionais e cobranças para usar esse serviço. Há outras permissões para uso de uma chave do KMS que fornece maior proteção contra acesso não autorizado de seus objetos no Amazon S3.
- Esta é uma solução totalmente integrada em que a Amazon lida com o gerenciamento e a proteção de chaves do Amazon S3, mas onde você gerencia as chaves.
- O SSE-KMS oferece vários benefícios adicionais em comparação com o SSE-S3.
- Usando o SSE-KMS, existem permissões separadas para o uso da chave mestra, que fornecem proteção contra acesso não autorizado aos seus 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 qual objeto e quando eles tentaram acessar esse objeto. *
- O AWS KMS também permite exibir quaisquer tentativas falhas de acessar dados de usuários que não tinham permissão para descriptografar os dados.
SSE-C (customer-managed keys)
Documentação oficial
A Server Side Encryption envolve a proteção de dados em repouso. A Server Side Encryption criptografa somente os dados de objeto, não os metadados de objeto. Ao usar criptografia do lado do servidor com chaves fornecidas pelo cliente (SSE-C), você pode armazenar suas próprias chaves de criptografia
- Criptografa somente os dados de objeto, não os metadados de objeto
- Não fornecem uma trilha de auditoria que mostre quando sua CMK foi usada e por quem
- É usado para criptografar os dados no storage externo antes de enviar.
- É 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 o SSE-C, a AWS faz a criptografia/descriptografia de seus objetos enquanto você mantém controle total das chaves usadas para criptografar/descriptografar os objetos no Amazon S3.
- É possível ter diferentes Keys de criptografia para diferentes versões do mesmo objeto.
Client Side Encryption (Criptografia do lado do cliente)
A Client Side Encryption é o ato de criptografar dados localmente para garantir sua segurança à medida que eles são transmitidos ao serviço do Amazon S3.
- Recebe os dados criptografados. Ele não atua na criptografia ou descriptografia desses dados
- Client Side Encryption e faça upload dos dados criptografados no Amazon S3. Nesse caso, você gerencia o processo de criptografia, as chaves de criptografia e as ferramentas relacionadas.
- Ao usar a Client Side Encryption, você mantém o controle ponta a ponta do processo de criptografia, incluindo o gerenciamento das chaves de criptografia.
- Para máxima simplicidade e facilidade de uso, use a criptografia do servidor com chaves gerenciadas pela AWS (SSE-S3 ou SSE-KMS).
- Client Side Encryption refere-se à criptografia de dados no lado do cliente do seu aplicativo antes de enviá-los ao Amazon S3.
Para habilitar a Client Side Encryption, você tem as seguintes opções:
- Use AWS KMS-managed customer master key.
- Use client-side master key.
AWS S3 c/ AWS KMS
Deve ter permissão ao fazer upload ou download de um objeto no S3 criptografado com uma chave AWS KMS
- kms:Decrypt
- kms:Encrypt
- kms:ReEncrypt*
- kms:GenerateDataKey*
- kms:DescribeKey
Top comments (0)