Por padrão, os seguintes dados são armazenados criptografados no plano de tempo de execução híbrido:
- Dados do Key Management System (KMS)
- Dados do mapa de chave-valor (KVM)
- Dados de cache
A criptografia de dados não requer nenhuma configuração especial da sua parte. No entanto, você quiser usar suas próprias chaves de criptografia (substituindo as chaves padrão) isso é possível, conforme explicado neste tópico.
Escopo da chave de criptografia
As chaves de criptografia para KMS, KVM e cache têm escopo. Por exemplo, as chaves KMS têm o escopo organização. Isso significa que a chave é usada para criptografar dados do KMS para toda a organização. A tabela a seguir lista o escopo de cada tipo de chave:
Chave de criptografia | Escopo |
---|---|
KMS | Somente organização |
KVM |
Organização ou ambiente
Se uma política do KVM
especificar o escopo |
Cache | Somente ambiente |
Sobre as chaves de criptografia padrão
Por padrão, a Apigee híbrida fornece um conjunto de chaves codificadas em Base64 usadas para criptografar dados de KVM, KMS e cache. O instalador híbrido da Apigee armazena as chaves no plano de execução como secrets do Kubernetes e as usa para criptografar seus dados com a criptografia padrão AES-128. As chaves estão sob seu controle. O plano de gerenciamento híbrido nunca sabe a respeito delas.
Como alterar as chaves de criptografia padrão
Embora não seja obrigatório, é possível alterar qualquer uma das chaves de criptografia padrão, se quiser. Para substituir uma ou mais chaves padrão, siga estas etapas:
- Copie as estrofes a seguir no arquivo de modificações.
Essa configuração permite alterar as chaves de criptografia do KMS e do KVM
para o nível da organização e as chaves de criptografia do KVM e do cache para o nível do ambiente:
defaults: org: kmsEncryptionKey: base64-encoded-key kvmEncryptionKey: base64-encoded-key env: kvmEncryptionKey: base64-encoded-key cacheEncryptionKey: base64-encoded-key
- Gere uma nova chave para cada chave que você quiser substituir. Cada chave precisa ser uma string codificada em Base64 com exatamente 16, 24 ou 32 bytes de comprimento. Consulte também Como criar uma chave codificada.
- Substitua as chaves padrão pelas novas. Neste exemplo, todas as chaves padrão são
substituídas por chaves:
defaults: org: kmsEncryptionKey: "JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=" kvmEncryptionKey: "T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=" env: kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=" cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="
- Aplique o arquivo de substituição ao cluster da seguinte forma:
- Se você alterar as chaves do KVM ou Cache, atualize apenas o ambiente:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name
- Se você alterar as chaves do KMS, atualize a organização e o ambiente:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name
- Se você alterar as chaves do KVM ou Cache, atualize apenas o ambiente:
- Reinicie os pods
apigee-runtime
eapigee-mart
.
Uma observação sobre compatibilidade com versões anteriores
Quando você instala a Apigee híbrida pela primeira vez, as chaves de criptografia padrão são usadas. Se você remover as chaves de criptografia, desativará a criptografia e os valores subsequentes serão armazenados sem criptografia. Se mais tarde você ativar a criptografia fornecendo chaves, todos os dados não criptografados existentes permanecerão não criptografados; No entanto, todos os dados adicionados futuramente serão criptografados. O sistema continuará funcionando normalmente com os dados não criptografados e com os novos dados criptografados.
Além disso, não é possível alterar as chaves de criptografia posteriormente depois que os dados do ambiente de execução são criptografados.
Como criar uma chave codificada
É necessária uma chave codificada em Base64 e formatada corretamente para KVM, KMS e criptografia de cache. A chave usada para qualquer um desses objetivos precisa ser codificada em Base-64 com uma string de 16, 24 ou 32 bytes, conforme explicado abaixo:
O comando de exemplo a seguir gera uma string codificada em Base64, adequada e gerada aleatoriamente:
head -c 32 /dev/random | openssl base64