Criptografia de banco de dados do Amazon Redshift - Amazon Redshift

Criptografia de banco de dados do Amazon Redshift

No Amazon Redshift, você pode habilitar a criptografia de banco de dados para seus clusters para ajudar a proteger os dados em repouso. Quando você ativar a criptografia de um cluster, os blocos de dados e os metadados do sistema serão criptografados para o cluster o os snapshots.

É possível habilitar a criptografia ao iniciar o cluster ou modificar um cluster não criptografado para usar criptografia do AWS Key Management Service (AWS KMS). Para fazer isso, você pode usar uma chave gerenciada pela AWS ou uma chave gerenciada pelo cliente. Ao modificar o cluster para habilitar a criptografia do AWS KMS, o Amazon Redshift migra automaticamente os dados para um novo cluster criptografado. Os snapshots criados a partir do cluster criptografado também são criptografados. Você também pode migrar um cluster criptografado para um cluster não criptografado, modificando o cluster e alterando a opção Encrypt database (Criptografar banco de dados). Para mais informações, consulte Alterar a criptografia do cluster.

Embora a criptografia seja uma configuração opcional no Amazon Redshift, recomendamos que você a habilite para clusters que contêm dados sigilsos. Além disso, talvez seja necessário usar a criptografia, dependendo das diretrizes ou das regulamentações que regem os dados. Por exemplo, PCI DSS (Payment Card Industry Data Security Standard), SOX (Sarbanes-Oxley Act), HIPAA (Health Insurance Portability and Accountability Act) e outras regulamentações determinam as diretrizes para processar tipos de dados específicos.

O Amazon Redshift usa uma hierarquia de chaves de criptografia para criptografar o banco de dados. Você pode usar o AWS Key Management Service (AWS KMS) ou um Hardware Security Module (HSM – Módulo de segurança de hardware) para gerenciar as chaves de criptografia de nível superior nessa hierarquia. O processo usado pelo Amazon Redshift é diferente de acordo com a maneira que você gerencia chaves. O Amazon Redshift se integra automaticamente ao AWS KMS mas não com um HSM. Ao usar um HSM, você deve usar certificados de cliente e servidor para configurar uma conexão confiável entre o Amazon Redshift e seu HSM.

Criptografia de banco de dados do Amazon Redshift usando AWS KMS

Quando você escolhe o AWS KMS para gerenciamento de chaves com o Amazon Redshift, há uma hierarquia de quatro camadas de chaves de criptografia. Essas chaves, em ordem hierárquica, são a chave raiz , uma chave de criptografia de cluster (CEK), uma chave de criptografia de banco de dados (DEK) e chaves de criptografia dos dados.

Quando você inicia seu cluster, o Amazon Redshift retorna uma lista das AWS KMS keys que sua conta da AWS criou ou tem permissão para usar no AWS KMS. Selecione uma chave KMS a ser usada como a chave raiz na hierarquia da criptografia.

Por padrão, o Amazon Redshift seleciona a chave padrão como a chave raiz. Sua chave padrão é uma chave gerenciada pela AWS que é criada para sua conta da AWS para uso no Amazon Redshift. O AWS KMS cria essa chave na primeira vez que você inicia um cluster criptografado em uma região da AWS e escolhe a chave padrão.

Se não quiser usar a chave padrão, você deve ter (ou criar) uma chave KMS gerenciada pelo cliente separadamente no AWS KMS antes de iniciar seu cluster no Amazon Redshift. As chaves gerenciadas pelo cliente dão mais flexibilidade, inclusive a possibilidade de criar, alternar, desativar e definir controle de acesso, além de auditar as chaves de criptografia usadas para ajudar a proteger os dados. Para obter mais informações sobre como criar chaves KMS, consulte Criar chaves no Guia do desenvolvedor do AWS Key Management Service.

Se quiser usar uma chave AWS KMS de outra conta da AWS, você deve ter permissão para usar a chave e especificar seu nome do recurso da Amazon (ARN) no Amazon Redshift. Para obter mais informações sobre acesso a chaves do AWS KMS, consulte Controlar o acesso a suas chaves no Guia do desenvolvedor do AWS Key Management Service.

Depois de escolher uma chave raiz, o Amazon Redshift solicita que o AWS KMS gere uma chave de dados e a criptografe usando a chave raiz selecionada. Essa chave de dados é usada como o CEK no Amazon Redshift. O AWS KMS exporta o CEK criptografado para o Amazon Redshift, onde é armazenado internamente em disco em uma rede separada do cluster junto com a concessão à chave KMS e o contexto de criptografia para o CEK. Somente o CEK criptografado é exportado para o Amazon Redshift; e a chave KMS permanece no AWS KMS. O Amazon Redshift também passa o CEK criptografado por um canal seguro para o cluster e o carrega na memória. Em seguida, o Amazon Redshift chama o AWS KMS para descriptografar o CEK e carrega o CEK descriptografado na memória. Para obter mais informações sobre concessões, contexto de criptografia e outros conceitos relacionados ao AWS KMS, consulte Conceitos no Guia do desenvolvedor do AWS Key Management Service.

Em seguida, o Amazon Redshift gera aleatoriamente uma chave para usar como DEK e a carrega na memória do cluster. O CEK descriptografado é usado para criptografar o DEK, que é então passado por um canal seguro do cluster para ser armazenado internamente pelo Amazon Redshift em disco em uma rede separada do cluster. Assim como a CEK, as versões criptografadas e descriptografadas da DEK são carregadas na memória no cluster. Em seguida, a versão descriptografada da DEK é usada para criptografar as chaves de criptografia individuais geradas aleatoriamente para cada bloco de dados no banco de dados.

Quando o cluster é reinicializado, o Amazon Redshift começa com as versões criptografadas e armazenadas internamente do CEK e do DEK, recarrega-as na memória e chama o AWS KMS para descriptografar o CEK com a chave KMS novamente para que possa ser carregada na memória. Em seguida, a CEK descriptografada é usada para descriptografar a DEK novamente, e a DEK descriptografada é carregada na memória e usada para criptografar e descriptografar as chaves do bloco de dados conforme necessário.

Para obter mais informações sobre como criar clusters do Amazon Redshift que são criptografados com chaves AWS KMS, consulte Criar um cluster e Gerenciar clusters usando a AWS CLI e a API do Amazon Redshift.

Copiar snapshots criptografados pelo AWS KMS para outra região da AWS

As chaves AWS KMS são específicas para uma região da AWS. Se você habilitar a cópia de snapshots do Amazon Redshift para outra região da AWS e o cluster de origem e seus snapshots forem criptografados usando uma chave raiz do AWS KMS, será necessário configurar uma concessão para o Amazon Redshift para usar uma chave raiz na região da AWS de destino. Essa concessão permite que o Amazon Redshift criptografe snapshots na região da AWS de destino. Para obter mais informações sobre uma cópia do snapshot em várias regiões, consulte Copiar snapshots para outra região da AWS.

nota

Se ativar a cópia de snapshots de um cluster criptografado e usar o AWS KMS para a chave raiz, você não poderá renomear o cluster porque o nome do cluster faz parte do contexto da criptografia. Se você precisar renomear seu cluster, poderá desabilitar a cópia de snapshots na região da AWS de fonte, renomear o cluster e, em seguida, configurar e habilitar a cópia de snapshots novamente.

O processo para configurar a concessão para cópia de snapshots é este.

  1. Na região da AWS de destino, crie uma concessão de cópia de snapshot fazendo o seguinte:

    • Se você ainda não tiver uma chave do AWS KMS a ser usada, crie uma. Para obter mais informações sobre como criar chaves AWS KMS, consulte Criar chaves no Guia do desenvolvedor do AWS Key Management Service.

    • Especifique um nome para a concessão de cópia do snapshot. Este nome deve ser único naquela região da AWS para sua conta da AWS.

    • Especifique o ID da chave do AWS KMS para o qual você está criando a concessão. Se você não especificar um ID da chave, a concessão se aplicará à chave padrão.

  2. Na região da AWS de origem, habilite a cópia de snapshots e especifique o nome da concessão de cópia de snapshot que você criou na região da AWS de destino.

Este processo anterior só é necessário se você habilitar a cópia de snapshots usando a AWS CLI, a API do Amazon Redshift ou SDKs. Se você usar o console, o Amazon Redshift fornece o fluxo de trabalho adequado para configurar a concessão ao habilitar a cópia de snapshot entre regiões. Para obter mais informações sobre como configurar a cópia de snapshot em todas as regiões para clusters criptografados pelo AWS KMS usando o console, consulte Configurar a cópia de snapshot entre regiões para um cluster criptografado pelo AWS KMS.

Antes que o snapshot seja copiado para a região da AWS de destino, o Amazon Redshift descriptografa o snapshot usando a chave raiz na região da AWS de fonte e recriptografa temporariamente usando uma chave RSA gerada aleatoriamente que o Amazon Redshift gerencia internamente. Em seguida, o Amazon Redshift copia o snapshot em um canal seguro para a região da AWS de destino, descriptografa o snapshot usando a chave RSA gerenciada internamente e, em seguida, criptografa novamente o snapshot usando a chave raiz na região da AWSde destino.

Para obter mais informações sobre como configurar concessões de cópia do snapshot para clusters criptografados pelo AWS KMS, consulte Configurar o Amazon Redshift para usar chaves de criptografia AWS KMS usando a API do Amazon Redshift e a AWS CLI.

Criptografia para Amazon Redshift usando módulos de segurança de hardware

Se você não usa o AWS KMS para gerenciamento de chaves, pode usar um módulo de segurança de hardware (HSM) para gerenciamento de chaves com o Amazon Redshift.

Importante

A criptografia de HSM não é compatível com tipos de nós DC2 e RA3.

HSMs são dispositivos que oferecem controle direto sobre a geração e o gerenciamento de chaves. Eles fornecem maior segurança separando o gerenciamento de chaves das camadas de aplicação e banco de dados. O Amazon Redshift oferece suporte ao AWS CloudHSM Classic para gerenciamento de chaves. O processo de criptografia é diferente quando você usa o HSM para gerenciar as chaves de criptografia, em vez do AWS KMS.

Importante

O Amazon Redshift suporta apenas AWS CloudHSM Classic. Não há suporte para o serviço mais recente do AWS CloudHSM.

O AWS CloudHSM Classic está fechado para novos clientes. Para obter mais informações, consulte Preço do CloudHSM Classic.AWS CloudHSM O Classic não está disponível em todas as regiões da AWS. Para obter mais informações sobre as regiões da AWS disponíveis, consulte a Tabela de regiões da AWS.

Quando você configura seu cluster para usar um HSM, o Amazon Redshift envia uma solicitação ao HSM para gerar e armazenar uma chave a ser usada como CEK. No entanto, ao contrário do AWS KMS, o HSM não exporta o CEK para o Amazon Redshift. Em vez disso, o Amazon Redshift gera aleatoriamente o DEK no cluster e o passa para o HSM para ser criptografado pelo CEK. O HSM retorna a DEK criptografada ao Amazon Redshift, onde ela é mais criptografada usando uma chave raiz interna gerada aleatoriamente e armazenada internamente em disco em uma rede à parte do cluster. O Amazon Redshift também carrega a versão descriptografada da DEK na memória no cluster, de maneira que a DEK possa ser usada para criptografar e descriptografar as chaves individuais dos blocos de dados.

Se o cluster for reinicializado, o Amazon Redshift descriptografa a DEK criptografada duplamente armazenada internamente usando a chave raiz interna para retornar a DEK armazenada internamente ao estado criptografado por CEK. O DEK criptografado por CEK é então passado ao HSM para ser descriptografado e devolvido ao Amazon Redshift, onde pode ser carregado na memória novamente para uso com as chaves de bloco de dados individuais.

Configurar uma conexão confiável entre o Amazon Redshift e um HSM

Quando você opta por usar um HSM para gerenciamento de sua chave de cluster, você precisa configurar um link de rede confiável entre o Amazon Redshift e seu HSM. Isso exige a configuração dos certificados de cliente e servidor. A conexão confiável é usada para passar as chaves de criptografia entre o HSM e o Amazon Redshift durante as operações de criptografia e descriptografia.

O Amazon Redshift cria um certificado de cliente público a partir de um par de chaves públicas e privadas gerado aleatoriamente. Elas são criptografadas e armazenadas internamente. Você faz download e registra o certificado cliente público no HSM, além de atribui-lo à partição do HSM aplicável.

Você fornece ao Amazon Redshift o endereço IP HSM, o nome da partição HSM, a senha da partição HSM e um certificado de servidor HSM público, que é criptografado usando uma chave raiz interna. O Amazon Redshift conclui o processo de configuração e verifica se ele pode se conectar ao HSM. Se não puder, o cluster será colocado no estado INCOMPATIBLE_HSM, e não será criado. Nesse caso, você deve excluir o cluster incompleto e tentar novamente.

Importante

Quando você modifica seu cluster para usar uma partição HSM diferente, o Amazon Redshift verifica se ele pode se conectar à nova partição, mas não verifica se existe uma chave de criptografia válida. Para usar a nova partição, você deve replicar as chaves para a nova partição. Se o cluster for reiniciado e o Amazon Redshift não puder encontrar uma chave válida, a reinicialização falhará. Para obter mais informações, consulte Replicação de chaves entre os HSMs.

Após a configuração inicial, se o Amazon Redshift não conseguir se conectar ao HSM, um evento será registrado. Para obter mais informações sobre esses eventos, consulte Notificações de evento do Amazon Redshift.

Alternância de chave de criptografia no Amazon Redshift

No Amazon Redshift, você pode alternar as chaves de criptografia para clusters criptografados. Quando você inicia o processo de alternância de chaves, o Amazon Redshift alterna a CEK do cluster especificado e de qualquer snapshot automatizado ou manual do cluster. O Amazon Redshift também alterna a DEK do cluster especificado, mas não pode alternar a DEK dos snapshots enquanto eles permanecem armazenados internamente no Amazon Simple Storage Service (Amazon S3) e criptografados usando-se a DEK existente.

Enquanto a alternância está em andamento, o cluster é colocado em um estado ROTATING_KEYS até a conclusão, momento em que o cluster retorna ao estado AVAILABLE. O Amazon Redshift lida com a descriptografia e a recriptografia durante o processo de alternância da chave.

nota

Você não pode alternar chaves para snapshots sem um cluster de origem. Para excluir um cluster, leve em consideração se os snapshots dependem do rodízio da chave.

Como o cluster está temporariamente indisponível durante o processo de rodízio da chave, você deverá alternar as chaves somente com a frequência que os dados exigirem ou quando suspeitar de que as chaves foram comprometidas. Como melhores práticas, você deve examinar o tipo de dados que armazena e planejar com que frequência alternar as chaves que criptografam esses dados. A frequência para alternar chaves varia de acordo com as políticas corporativas da segurança de dados e todos os padrões do setor referentes aos dados confidenciais e à compatibilidade regulatória. Verifique se o plano equilibra necessidades de segurança com considerações sobre disponibilidade para o cluster.

Para obter mais informações sobre como alternar chaves, consulte Alternância de chaves de criptografia usando o console do Amazon Redshift e Alternância de chaves de criptografia usando a API do Amazon Redshift e a AWS CLI.