Ao colocar dados no Amazon S3, há duas maneiras de criptografar os dados:
- Criptografia do lado do cliente ou
- Criptografia do lado do servidor.
Criptografia do lado do cliente
A Amazon não possui nenhum mecanismo interno de criptografia do lado do cliente. Você terá que rolar isso sozinho: Criptografe os dados no Jenkins usando sua ferramenta favorita e faça o upload. Quando os objetos são baixados do S3, descriptografe os objetos depois que eles forem baixados.
Uma maneira de fazer isso é usar 7z
para compactar e criptografar o arquivo usando a criptografia AES256. Outro está usando o OpenSSL.
Criptografia do lado do servidor
A Amazon tem um mecanismo de criptografia integrado no servidor.
Se você estiver usando o AWS CLI para carregar seus arquivos no S3, poderá usar o argumento de linha de comando --server-side-encryption
para que seus arquivos sejam criptografados no servidor. Quando os objetos são baixados, eles serão descriptografados automaticamente.
No entanto, esteja ciente de que isso não protege o objeto contra o download por meio da API do S3 de qualquer pessoa, exceto você. Se alguém usar credenciais da AWS válidas e fizer o download do arquivo, ele estará aberto para elas.
O que protege é alguém acessando o objeto por meios não-API, como o acesso direto ao centro de dados.
Notas Finais
Se você deseja que os arquivos sejam ilegíveis para qualquer pessoa, exceto você, você quer criptografia do lado do cliente.