Neste artigo vamos ver como é fácil gerar chaves de criptografias dos dados e atrelar a alguns recursos da AWS de forma que seus dados sejam criptografados.
O AWS KMS, além de criar uma chave de criptografia também faz toda a gestão de acesso, gestão de segurança da chave e a gestão de uso da mesma, pois após criar esta chave, a AWS facilita a utilização da chave em diversos recursos da mesma categoria, facilitando a centralização dos dados e tornando a nossa vida fácil, sem precisar configurar nada a mais.
O AWS KMS facilita a auditoria do uso desta chave, pelo AWS Cloud Trail, você tem todas as utilizações realizadas da chave e por qual recurso, bastando apenas consultar neste recurso pelo ID da sua chave.
O AWS KMS tem uma quantidade de utilização gratuitas que são 20.000 solicitações de criptografia/descriptografia mês e cobra 1 dolar por mês pela criação da chave, não cobrando o tempo de armazenamento. Ao passar da quantidade gratuita é cobrado 0,03 USD por solicitação
Os recursos que o AWS KMS permite criptografar são diversos, mas vamos focar em apenas um aqui no artigo, vamos demonstrar o uso do KMS junto ao S3.
S3 com KMS (Criptografia Server-Side)
Para que você possa encriptar todos os arquivos enviados e descriptografar os que forem baixados, você precisa primeiro ter uma chave no AWS KMS.
Procure no console por S3, se não encontrar no console, você pode digitar o nome do recurso para encontrar facilmente:
Na segunda tela você precisa encontrar o S3 o qual você quer que os arquivos sejam criptografados.
Agora dentro do S3 Bucket, entre nas propriedades, neste ponto você tem diversas opções para trabalhar com o seu S3 Bucket como: versionamento dos arquivos, logging, definir o S3 como host de um website estático, tags, criptografia entre outros.
Agora falando da parte de criptografia, nós devemos acessar a propriedade de Padrão de Criptografia.
Nesta opção, a tela nos possibilita gerar a chave diretamente pelo S3 que será criada e armazenada no KMS e já deixá-la atribuída ao S3 bucket.
Antes disso, ao clicar na opção acima a tela que irá abrir trará a opções de criptografias, sendo elas AES-256 e o AWS-KMS.
Neste artigo viemos falar apenas do AWS-KMS, mas vale ressalstar que o padrão de criptografia AES-256 é um algortimo de criptografia padrão utilizado pelo governo norte-americano, inclusive escolhido para os arquivos ultrassecretos e temos a opção de usá-lo no s3, quando esta opção é selecionada, todos os arquivos enviados são criptografados com uma chave mestra e esta chave também é criptografada e é totalmente gerenciado pela AWS.
O algoritmo de criptografia do AWS KMS, também é o padrão AES-256, porém você tem maior controle nas politicas a partir do CMK (Client Master Key), além da própria criptografia.
Esta chave fica exclusiva para sua conta e região, permitindo usá-la para outros recursos compatíveis.
Então clique em Default Encryption e selecione o AWS-KMS e o CMK aws/s3.
Após clicar em Salvar, as propriedades do S3 Bucket, ficarão da seguinte forma.
A partir de agora todo novo objeto enviado para o S3 será criptografado nos servidores internos da AWS.
É necessário informar o tipo de criptografia e informações no Header do request, para que a Api da AWS aceite o envio do arquivo e faça o processo de criptografia interno
No ponto em que você desejar remover esta regra de criptografia padrão, basta entrar na mesma opção e colocar como None.
Caso prefira, você pode assistir esse vídeo que eu mostro na tela como acessar o KMS e configurar no S3:
Outra vantagem do KMS padrão da AWS é a utilização dessas chaves em outros recursos, segue o link dos demais recurso.
Abraços.