O Looker usa a encriptação AES-256 Galois/Counter Mode (GCM) para encriptar dados internamente. Cada item de dados é encriptado através de uma chave de dados única e contém um envelope de encriptação assinado e com controlo de versões para garantir a validação. Este modo requer a utilização de uma chave principal do cliente (CMK) externa. A CMK é usada para derivar, encriptar e desencriptar a chave de encriptação de chaves (KEK), que, por sua vez, é usada para derivar, encriptar e desencriptar chaves de dados.
As instalações alojadas pelo cliente que usam a encriptação antiga têm de migrar as respetivas bases de dados internas para a encriptação AES-256 GCM. As novas instalações alojadas pelo cliente têm de configurar as respetivas instalações para a encriptação AES-256 GCM. Consulte a página de documentação Usar a encriptação AES-256 GCM para obter instruções sobre como migrar ou configurar a instalação alojada pelo cliente para a encriptação AES-256 GCM.
Se quiser alterar a CMK ou passar de uma configuração baseada em chaves locais para uma configuração do AWS KMS (ou o inverso), pode fazê-lo criando uma nova CMK e alterando a chave da sua encriptação AES-256 GCM.
A alteração das chaves é feita offline, o que significa que a instância do Looker tem de ser encerrada. Para instâncias do Looker agrupadas, todos os nós do cluster têm de ser encerrados.
A nova introdução de chaves invalida toda a cache no disco do Looker, incluindo a cache de resultados de consultas. Como resultado, depois de concluir uma nova introdução de chaves e iniciar a instância, as bases de dados de clientes podem sofrer uma carga superior à habitual.
Para alterar a chave da encriptação AES-256 GCM, execute os seguintes procedimentos:
- Pare o Looker e crie uma cópia de segurança completa
- Defina as variáveis de ambiente
_SOURCE
e_DESTINATION
- Execute o comando
rekey
- Defina novas variáveis de ambiente
- Iniciar Looker
Pare o Looker e crie uma cópia de segurança completa
Emita os seguintes comandos:
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 estiver a executar uma base de dados MySQL externa para armazenar dados da aplicação Looker, faça uma cópia de segurança da base de dados separadamente. Se a base de dados for uma instância do MySQL, tire um instantâneo. A base de dados é relativamente pequena, pelo que o processo deve demorar apenas alguns minutos.
Se o Looker estiver agrupado, certifique-se de que para todos os nós antes de continuar:
cd looker
./looker stop
Se algum nó ainda estiver em execução quando emitir posteriormente o comando rekey
, o comando falha com a mensagem "Existem outros nós ativos ligados a esta base de dados do Looker de back-end. Se o Looker foi encerrado no último minuto, tente novamente em breve. Caso contrário, verifique se todos os nós no cluster estão encerrados."
Defina as variáveis de ambiente _SOURCE
e _DESTINATION
Quando a sua instância do Looker foi inicialmente migrada ou configurada para a encriptação AES-256 GCM, foram criadas uma ou mais variáveis de ambiente que indicam onde o Looker pode encontrar a sua CMK. Estas variáveis diferem consoante esteja a usar o AWS KMS.
A operação de alteração da chave usa variáveis de ambiente adicionais, com base no facto de estar a usar atualmente o AWS KMS e se vai usar o AWS KMS após a operação de alteração da chave. As variáveis de ambiente com o sufixo _SOURCE
indicam onde o Looker pode encontrar atualmente a sua CMK, e as variáveis de ambiente com o sufixo _DESTINATION
indicam onde o Looker pode encontrar a sua CMK após a operação de alteração da chave.
Definir variáveis _SOURCE
Efetue um dos seguintes procedimentos, consoante a sua configuração atual use o AWS KMS.
Se estiver a usar atualmente o AWS KMS
Se configurou inicialmente a encriptação através do AWS KMS, criou uma ou ambas as seguintes variáveis de ambiente:
LKR_AWS_CMK
: Armazena o AWSCMK_alias
.LKR_AWS_CMK_EC
: uma variável opcional que define o contexto de encriptação usado com os arquivos de chaves do AWS KMS.
Recrie as variáveis de ambiente:
export LKR_AWS_CMK=alias/<CMK_alias>
export LKR_AWS_CMK_EC=<encryption_context>
Em seguida, crie as variáveis _SOURCE
. Defina as seguintes novas variáveis com o sufixo _SOURCE
:
export LKR_AWS_CMK_SOURCE=alias/<CMK_alias>
export LKR_AWS_CMK_EC_SOURCE=<encryption_context>
Se não estiver a usar atualmente o AWS KMS
Se configurou inicialmente a encriptação com um KMS que não seja o AWS, criou uma das seguintes variáveis de ambiente, consoante armazene a CMK numa variável de ambiente ou num ficheiro na sua instância:
LKR_MASTER_KEY_ENV
: se armazenar a CMK numa variável de ambiente, esta armazena a CMK.LKR_MASTER_KEY_FILE
: se armazenar a CMK num ficheiro, este armazena o caminho e o nome do ficheiro que contém a CMK.
Recrie a variável de ambiente usada para a sua 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 armazenar a CMK num ficheiro, crie a seguinte variável:
export LKR_MASTER_KEY_FILE_SOURCE=<path_to_key_file>
Se armazenar a CMK numa variável de ambiente, crie a seguinte variável:
export LKR_MASTER_KEY_ENV_SOURCE=<CMK_value>
Definir variáveis _DESTINATION
Realize um dos seguintes procedimentos, consoante se vai usar o AWS KMS após a operação de alteração da chave.
A nova configuração vai usar o AWS KMS
Se a nova configuração usar o AWS KMS, crie as seguintes variáveis de ambiente para indicar a nova localização da CMK:
export LKR_AWS_CMK_DESTINATION=alias/<new_CMK_alias>
export LKR_AWS_CMK_EC_DESTINATION=<new_encryption_context>
A nova configuração não usa o AWS KMS
Se a nova configuração não usar o AWS KMS, tem a opção de usar as variáveis LKR_MASTER_KEY_FILE_DESTINATION
ou LKR_MASTER_KEY_ENV_DESTINATION
para especificar o destino da CMK.
Se quiser armazenar a CMK num ficheiro, execute o seguinte comando:
export LKR_MASTER_KEY_FILE_DESTINATION=<path_to_new_key_file>
Em alternativa, se quiser armazenar a CMK através de uma variável de ambiente, execute o seguinte comando:
export LKR_MASTER_KEY_ENV_DESTINATION=<CMK_value>
Execute o comando rekey
Emita o seguinte comando:
./looker rekey
Se a sua instância do Looker começar com a
-d <db.yaml>
ou as--internal-db-creds=<db.yaml>
opções de arranque, que fornecem um caminho para um ficheiro YAML com as suas credenciais da base de dados, tem de incluir a mesma opção com o comandorekey
.Por exemplo,
java -jar looker.jar rekey -d /path/file/db.yaml
.
Defina novas variáveis de ambiente
Defina uma ou mais das seguintes variáveis de ambiente, conforme adequado para a sua nova configuração.
Se a sua 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 sua nova configuração não usar o AWS KMS e armazenar a CMK numa variável de ambiente:
export LKR_MASTER_KEY_ENV=<CMK_value>
Se a sua nova configuração não usar o AWS KMS e armazenar a CMK num ficheiro:
export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
Se mudou de uma chave armazenada localmente para o AWS KMS ou do AWS KMS para uma chave armazenada localmente, tem variáveis de ambiente da sua configuração anterior que são desnecessárias. Elimine as variáveis de ambiente antigas.
Se mudou de uma chave armazenada localmente para o AWS KMS:
unset LKR_MASTER_KEY_FILE
Se mudou do AWS KMS para uma chave armazenada localmente:
unset LKR_AWS_CMK
unset LKR_AWS_CMK_EC
Inicie o Looker
Emita o seguinte comando:
./looker start