O Looker usa a criptografia AES-256 Galois/Counter Mode (GCM) para criptografar dados internamente. Todos os itens de dados são criptografados com uma chave exclusiva e contêm um envelope de criptografia assinado e com controle de versão para garantir a verificação. Este modo requer o uso de uma chave mestra externa do cliente (CMK, na sigla em inglês). O CMK é usado para derivar, criptografar e descriptografar a chave de criptografia de chaves (KEK), que, por sua vez, é usada para derivar, criptografar e descriptografar chaves de dados.
As instalações hospedadas pelo cliente que usam a criptografia legada precisam migrar os bancos de dados internos para a criptografia GCM AES-256. Novas instalações hospedadas pelo cliente precisam configurar suas instalações para a criptografia GCM AES-256. Consulte a página de documentação Como usar a criptografia GCM AES-256 (em inglês) para instruções sobre como migrar ou configurar a instalação hospedada pelo cliente para a criptografia GCM AES-256.
Se você quiser alterar sua CMK ou se quiser mudar de uma configuração local baseada em chave para uma configuração do AWS KMS (ou vice-versa), crie uma nova CMK e redigite sua criptografia AES-256 no GCM.
A rechaveamento é feita off-line, o que significa que a instância do Looker precisa ser encerrada. Para instâncias do Looker em cluster, todos os nós do cluster precisam ser desligados.
A rechaveamento invalida todo o cache do Looker no disco, incluindo o cache do resultado da consulta. Como resultado, depois de concluir um rekeying e iniciar a instância, os bancos de dados do cliente podem ter uma carga maior do que o normal.
Para recodificar a criptografia GCM AES-256, execute os seguintes procedimentos:
- Interromper o Looker e criar um backup completo
- Definir as variáveis de ambiente
_SOURCE
e_DESTINATION
- Execute o comando
rekey
- Definir novas variáveis de ambiente
- Iniciar o Looker
Parar o Looker e criar um backup completo
Execute os comandos a seguir:
cd looker
./looker stop
tar -zcvf /tmp/looker-pre-encrypt.tar.gz /home/lookerops/looker --exclude=.cache --exclude=log --exclude=.tmp --exclude=.snapshots --exclude=looker.jar --exclude=authorized_keys --exclude=dr-log --exclude=core
Se você estiver executando um banco de dados MySQL externo para armazenar dados do aplicativo Looker, faça backup do banco de dados separadamente. Se o banco de dados for uma instância do MySQL, tire um instantâneo. O banco de dados é relativamente pequeno, então deve levar apenas alguns minutos.
Se o Looker estiver em cluster, pare todos os nós antes de continuar:
cd looker
./looker stop
Se algum nó ainda estiver em execução quando você emitir o comando rekey
, ele falhará com a mensagem: "Há outros nós ativos conectados a esse banco de dados do back-end do Looker. Se o Looker foi encerrado no último minuto, tente novamente em breve. Caso contrário, verifique se todos os nós do cluster estão desligados."
Definir as variáveis de ambiente _SOURCE
e _DESTINATION
Quando sua instância do Looker foi inicialmente migrada ou configurada para criptografia AES-256 do GCM, uma ou mais variáveis de ambiente foram criadas para indicar onde o Looker pode encontrar sua CMK. Essas variáveis diferem se você estiver usando o AWS KMS.
A operação de rechaveamento usa variáveis de ambiente adicionais, com base no uso atual do AWS KMS e no uso do AWS KMS após a operação de rechaveamento. As variáveis de ambiente com o sufixo _SOURCE
indicam onde o Looker pode encontrar sua CMK, e as variáveis com o sufixo _DESTINATION
indicam onde a ferramenta pode ser encontrada após a operação de rechaveamento.
Como definir variáveis _SOURCE
Execute um dos procedimentos a seguir, dependendo da configuração atual do AWS KMS.
Se você estiver usando o AWS KMS
Se você configurou inicialmente a criptografia usando o AWS KMS, criou uma ou ambas as variáveis de ambiente a seguir:
LKR_AWS_CMK
: armazena oCMK_alias
da AWS.LKR_AWS_CMK_EC
: uma variável opcional que define o contexto de criptografia usado com armazenamentos de chaves do AWS KMS.
Recrie as variáveis de ambiente acima:
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
Em seguida, crie as variáveis _SOURCE
. Defina as seguintes variáveis novas com o sufixo _SOURCE
:
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
Se você não estiver usando o AWS KMS
Se você configurou inicialmente a criptografia usando um KMS diferente da AWS, criou uma das seguintes variáveis de ambiente, dependendo se armazena o CMK em uma variável de ambiente ou em um arquivo na instância:
LKR_MASTER_KEY_ENV
: se você armazenar o CMK em uma variável de ambiente, ele será armazenado.LKR_MASTER_KEY_FILE
: se você armazenar a CMK em um arquivo, o caminho e o nome do arquivo que a contém serão armazenados.
Recrie a variável de ambiente usada na configuração:
export LKR_MASTER_KEY_FILE=<path_to_key_file>
Ou:
export LKR_MASTER_KEY_ENV=<CMK_value>
Em seguida, crie a variável _SOURCE
.
Se você armazenar sua CMK em um arquivo, crie a seguinte variável:
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
Se você armazenar o CMK em uma variável de ambiente, crie a seguinte variável:
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
Como definir variáveis _DESTINATION
Execute um dos procedimentos a seguir, dependendo se você usará o AWS KMS após a operação de rechaveamento.
Sua nova configuração usará o AWS KMS
Se a nova configuração usará o AWS KMS, crie as seguintes variáveis de ambiente para indicar o novo local do CMK:
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
Sua nova configuração não usará o AWS KMS
Se a nova configuração não usar o AWS KMS, você terá a opção de usar as variáveis LKR_MASTER_KEY_FILE_DESTINATION
ou LKR_MASTER_KEY_ENV_DESTINATION
para especificar o destino do CMK.
Se você quiser armazenar sua CMK em um arquivo, emita o seguinte comando:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
Ou, se quiser armazenar o CMK usando uma variável de ambiente, emita o seguinte comando:
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
Execute o comando rekey
.
Use o comando a seguir:
./looker rekey
Definir novas variáveis de ambiente
Defina uma ou mais das variáveis de ambiente a seguir conforme apropriado para a nova configuração.
Se a nova configuração usar o AWS KMS:
export LKR_AWS_CMK=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC=<new_encryption_context>
Se a nova configuração não usar o AWS KMS e você armazenar o CMK em uma variável de ambiente:
export LKR_MASTER_KEY_ENV=<CMK_value>
Se a nova configuração não usar o AWS KMS e você armazenar o CMK em um arquivo:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Se você migrar de uma chave armazenada localmente para o AWS KMS ou vice-versa, terá variáveis de ambiente desnecessárias da configuração anterior. Exclua as variáveis de ambiente antigas.
Se você migrou de uma chave armazenada localmente para o AWS KMS:
unset LKR_MASTER_KEY_FILE
Se você migrou do AWS KMS para uma chave armazenada localmente:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Iniciar o Looker
Use o comando a seguir:
./looker start