Alterar a criptografia do cluster - Amazon Redshift

Alterar a criptografia do cluster

É possível modificar um cluster não criptografado para usar a criptografia do AWS Key Management Service (AWS KMS) usando 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. Você também pode migrar um cluster não criptografado para um cluster criptografado, modificando o cluster.

Durante a operação de migração, o cluster fica disponível em modo de somente leitura e o status do cluster é exibido como resizing (redimensionando).

Se o seu cluster estiver configurado para habilitar a cópia de snapshot entre regiões da AWS, você deve desabilitá-lo antes de alterar a criptografia. Para obter mais informações, consulte Copiar snapshots para outra região da AWS e Configurar a cópia de snapshot entre regiões para um cluster criptografado pelo AWS KMS. Você não pode habilitar a criptografia do módulo de segurança de hardware (HSM) modificando o cluster. Em vez disso, crie um cluster criptografado por HSM e migre seus dados para esse cluster. Para ter mais informações, consulte Migrar para um cluster criptografado por HSM.

Para modificar a criptografia do banco de dados em um cluster
  1. Faça login no AWS Management Console e abra o console do Amazon Redshift em https://console.aws.amazon.com/redshiftv2/.

  2. No menu de navegação, escolha Clusters, depois selecione o cluster para o qual você deseja modificar a criptografia.

  3. Escolha Properties (Propriedades).

  4. Na seção Configurações do banco de dados, escolha Editar e, depois, escolha Editar criptografia.

  5. Escolha uma das opções de criptografia e escolha Salvar alterações.

Para alterar a criptografia de cluster usando a CLI

Para modificar o cluster não criptografado para usar o AWS KMS, execute o comando modify-cluster da CLI e especifique –-encrypted, como mostrado a seguir. Por padrão, a chave do KMS padrão é usada. Para especificar uma chave gerenciada pelo cliente, inclua a opção --kms-key-id.

aws redshift modify-cluster --cluster-identifier <value> --encrypted --kms-key-id <value>

Para remover a criptografia do cluster, execute o seguinte comando da CLI.

aws redshift modify-cluster --cluster-identifier <value> --no-encrypted

Migrar para um cluster criptografado por HSM

Para migrar um cluster não criptografado para um cluster criptografado usando um módulo de segurança de hardware (HSM), crie um cluster criptografado e mova os dados para esse cluster. Não é possível migrar para um cluster criptografado por HSM modificando o cluster.

Para migrar de um cluster não criptografado para um cluster criptografado por HSM, descarregue os dados do seu cluster de origem existente. Em seguida, recarregue os dados em um novo cluster de destino com a configuração de criptografia escolhida. Para obter mais informações sobre como executar um cluster criptografado, consulte Criptografia de banco de dados do Amazon Redshift.

Durante o processo de migração, seu cluster de origem ficará disponível somente para consultas de leitura até a última etapa. A última etapa é renomear os clusters de origem e de destino, o que modifica os endpoints para que todo o tráfego seja roteado para o novo cluster de destino. Quando você renomear o cluster de destino, ele ficará disponível somente após a reinicialização. Suspenda todas as cargas de dados e outras operações de gravação no cluster de origem enquanto os dados estiverem sendo transferidos.

Preparo para a migração
  1. Identifique todos os sistemas dependentes que interagem com o Amazon Redshift, por exemplo, ferramentas de business intelligence (BI) e sistemas de extrair, transformar e carregar (ETL).

  2. Identifique as consultas de validação para testar a migração.

    Por exemplo, você pode usar a seguinte consulta para localizar o número de tabelas definidas pelo usuário.

    select count(*) from pg_table_def where schemaname != 'pg_catalog';

    A consulta a seguir retorna uma lista de todas as tabelas definidas pelo usuário e o número de linhas em cada tabela.

    select "table", tbl_rows from svv_table_info;
  3. Escolha o momento adequado para a sua migração. Para saber o horário em que o uso do cluster é mais baixo, monitore as métricas do cluster, como a utilização da CPU e o número de conexões do banco de dados. Para ter mais informações, consulte Visualizar dados de performance do cluster.

  4. Remova tabelas não utilizadas.

    Para criar uma lista das tabelas e o número de vezes que cada tabela foi consultada, execute a seguinte consulta.

    select database, schema, table_id, "table", round(size::float/(1024*1024)::float,2) as size, sortkey1, nvl(s.num_qs,0) num_qs from svv_table_info t left join (select tbl, perm_table_name, count(distinct query) num_qs from stl_scan s where s.userid > 1 and s.perm_table_name not in ('Internal worktable','S3') group by tbl, perm_table_name) s on s.tbl = t.table_id where t."schema" not in ('pg_internal');
  5. Execute um novo cluster criptografado.

    Use o mesmo número de porta para o cluster de destino e o cluster de origem. Para obter mais informações sobre como executar um cluster criptografado, consulte Criptografia de banco de dados do Amazon Redshift.

  6. Configure o processo de descarregamento e o carregamento.

    Você pode usar o Utilitário de descarregamento/cópia do Amazon Redshift para lhe ajudar na migração de dados entre clusters. O utilitário exporta dados do cluster de origem para um local no Amazon S3. Os dados são criptografados com o AWS KMS. Em seguida, o utilitário importa automaticamente os dados para o destino. Opcionalmente, você pode usar o utilitário para limpar o Amazon S3 após a conclusão da migração.

  7. Execute um teste para verificar seu processo e estime por quanto tempo as operações de gravação precisam ser suspensas.

    Durante as operações de descarregamento e carregamento, mantenha a consistência dos dados suspendendo os carregamentos deles e outras operações de gravação. Usando uma das suas maiores tabelas, execute o processo de descarregamento e carregamento para ajudar você a estimar o tempo.

  8. Crie objetos de banco de dados, como esquemas, visualizações e tabelas. Para ajudá-lo a gerar as instruções de linguagem de definição de dados (DDL) necessárias, você pode usar os scripts em AdminViews no repositório GitHub da AWS.

Para migrar o cluster
  1. Encerre todos os processos ETL no cluster de origem.

    Para confirmar que não há operações de gravação em andamento, use o Console de gerenciamento do Amazon Redshift para monitorar IOPS de gravação. Para ter mais informações, consulte Visualizar dados de performance do cluster.

  2. Execute as consultas de validação identificadas anteriormente para coletar informações sobre o cluster de origem não criptografado antes da migração.

  3. (Opcional) Crie uma fila de gerenciamento de workload (WLM) para usar o máximo de recursos disponíveis nos clusters de origem e de destino. Por exemplo, crie uma fila chamada data_migrate e configure a fila com memória de 95% e simultaneidade de 4%. Para obter mais informações, consulte Roteamento de consultas para filas baseadas em grupos de usuários e grupos de consultas no Guia do desenvolvedor de banco de dados do Amazon Redshift.

  4. Usando a fila data_migrate, execute UnloadCopyUtility.

    Monitore o processo de UNLOAD e COPY usando o console do Amazon Redshift.

  5. Execute as consultas de validação novamente e verifique se os resultados correspondem aos resultados do cluster de origem.

  6. Renomeie seus clusters de origem e destino para trocar os endpoints. Para evitar interrupções, execute esta operação fora do horário comercial.

  7. Verifique se é possível se conectar ao cluster de destino usando todos os seus clientes SQL, como o ETL e as ferramentas de relatórios.

  8. Desligue o cluster de origem não criptografado.