Proteção de dados no Amazon Data Firehose
O Amazon Data Firehose criptografa todos os dados em trânsito usando o protocolo TLS. Além disso, quando os dados são armazenados em armazenamento provisório durante o processamento, o Amazon Data Firehose os criptografa usando o AWS Key Management Service e verifica sua integridade usando a soma de verificação.
Se você tiver dados confidenciais, poderá habilitar a criptografia de dados no lado do servidor ao usar o Amazon Data Firehose. Como fazer isso depende da fonte dos seus dados.
nota
Se você precisar de módulos criptográficos validados pelo FIPS 140-2 ao acessar AWS por meio de uma interface de linha de comando ou uma API, use um endpoint FIPS. Para ter mais informações sobre endpoints do FIPS disponíveis, consulte Federal Information Processing Standard (FIPS) 140-2
Criptografia no lado do servidor com o Kinesis Data Streams
Quando você envia dados dos produtores de dados para o fluxo de dados, o Kinesis Data Streams criptografa os dados usando uma chave do AWS Key Management Service (AWS KMS) antes de armazená-los em repouso. Quando seu fluxo do Firehose lê os dados do fluxo de dados, o Kinesis Data Streams primeiro descriptografa os dados e depois os envia ao Amazon Data Firehose. O Amazon Data Firehose armazena os dados na memória com base nas sugestões de armazenamento em buffer que você especifica. Em seguida, entrega-o aos destinos sem armazenar os dados não criptografados em repouso.
Para obter informações sobre como habilitar a criptografia no lado do servidor para o Kinesis Data Streams, consulte Using Server-Side Encryption no Amazon Kinesis Data Streams Developer Guide.
Criptografia do lado do servidor com Direct PUT ou outras fontes de dados
Se você enviar dados para o fluxo do Firehose usando PutRecord ou PutRecordBatch, ou se enviar os dados usando a AWS IoT, o Amazon CloudWatch Logs ou o CloudWatch Events, poderá ativar a criptografia no lado do servidor usando a operação StartDeliveryStreamEncryption.
Para interromper a criptografia do lado do servidor, use a operação StopDeliveryStreamEncryption.
Também é possível habilitar a SSE ao criar o fluxo do Firehose. Para fazer isso, especifique DeliveryStreamEncryptionConfigurationInput ao chamar CreateDeliveryStream.
Quando a CMK é do tipo CUSTOMER_MANAGED_CMK, se o serviço Amazon Data Firehose não conseguir descriptografar os registros devido a uma KMSNotFoundException, KMSInvalidStateException, KMSDisabledException ou KMSAccessDeniedException, o serviço aguardará até 24 horas (o período de retenção) para você resolver o problema. Se o problema persistir depois do período de retenção, o serviço ignorará os registros que passaram pelo período de retenção e não puderam ser descriptografados, e descartará os dados. O Amazon Data Firehose fornece estas quatro métricas do CloudWatch que podem ser usadas para rastrear as quatro exceções do AWS KMS:
-
KMSKeyAccessDenied -
KMSKeyDisabled -
KMSKeyInvalidState -
KMSKeyNotFound
Para obter mais informações sobre essas quatro métricas, consulte Monitoramento do Amazon Data Firehose com métricas do CloudWatch.
Importante
Para criptografar o fluxo do Firehose, use CMKs simétricas. O Amazon Data Firehose não oferece suporte a CMKs assimétricas. Para obter informações sobre CMKs simétricas e assimétricas, consulte Sobre CMKs simétricas e assimétricas no guia do desenvolvedor do AWS Key Management Service.
nota
Quando você usa uma chave gerenciada pelo cliente (CUSTOMER_MANAGED_CMK) para ativar a criptografia do lado do servidor (SSE) no seu fluxo do Firehose, o serviço do Firehose define um contexto de criptografia sempre que usa sua chave. Como esse contexto de criptografia representa uma ocorrência em que uma chave pertencente à sua conta da AWS foi usada, ela é registrada em log como parte dos logs de eventos do AWS CloudTrail da sua conta da AWS. Esse contexto de criptografia é gerado pelo sistema pelo serviço do Firehose. Sua aplicação não deve fazer nenhuma suposição sobre o formato ou o conteúdo do contexto de criptografia definido pelo serviço do Firehose.