Criptografia de dados

Por padrão, os seguintes dados são armazenados criptografados no plano de tempo de execução híbrido:

  • Dados de cache
  • Contrate dados importantes
  • Dados do Key Management System (KMS)
  • Dados do mapa de chave-valor (KVM)

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 da Apigee híbrida 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
Contrato Somente organização
KMS Somente organização
KVM Organização ou ambiente

Se uma política do KVM especificar o escopo apiproxy ou policy (revisão de proxy de API), a chave no nível da organização será usada para criptografar os dados. Para uma visão geral de como as KVMs são usadas no Apigee Edge, consulte Como trabalhar com mapas de chave-valor.

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.

As chaves padrão são aplicadas a todos os novos componentes da Apigee híbrida quando são criados.

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:

  1. 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
        contractEncryptionKey: base64-encoded-key
    
      env:
        kvmEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. 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.
  3. 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="
        contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ=="
      env:
        kvmEncryptionKey: "Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE="
        cacheEncryptionKey: "b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI="

Substituir as chaves padrão

É possível substituir as chaves da organização ou de ambientes específicos nomeados no arquivo de substituição. Ao criar os componentes, as chaves especificadas para a organização ou ambientes individuais substituem os padrões.

  1. 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:
    org:YOUR_ORG_NAME
    
    kmsEncryptionKey: base64-encoded-key
    kvmEncryptionKey: base64-encoded-key
    contractEncryptionKey: base64-encoded-key
    
    envs
      - name: ENV_NAME
        kvmEncryptionKey: base64-encoded-key
        kmsEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
    
      - name: 2ND_ENV_NAME
        kvmEncryptionKey: base64-encoded-key
        kmsEncryptionKey: base64-encoded-key
        cacheEncryptionKey: base64-encoded-key
  2. 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.
  3. Especifique as chaves que você quer substituir. Neste exemplo, todas as chaves padrão são substituídas por chaves:
    org:hybrid-org
    
    kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
    kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ=="
    contractEncryptionKey: "RDEyMzQ1Njc4OTAxMjM0NQ=="
    
    envs:
      - name: prod
        kvmEncryptionKey: "QzEyM2c3Njc4OTAxMjM0NQ=="
        kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
        cacheEncryptionKey: "QjEyAvC1Njc4OTAxMjM0NQ=="
    
    envs:
      - name: test
        kvmEncryptionKey: "A1b2C3d4E5f6G7h8I9j10K=="
        kmsEncryptionKey: "QTEyMz1b2jc4OTAxMjM0NQ=="
        cacheEncryptionKey: "B1c2D3e4F5f6H7i8J9k10L=="
    

Aplicar as principais mudanças

Aplique o arquivo de modificações ao cluster da mesma forma que faria com os seguintes comandos do Helm:
  • Se você alterar a chave de contrato ou a chave KVM da organização, atualize a organização:
    helm upgrade ORG_NAME apigee-org/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    
  • Se você alterar a chave de cache ou a chave KVM de um ambiente, atualize o ambiente:
    helm upgrade ENV_NAME apigee-env/ \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE.yaml
    
  • Se você alterar as chaves do KMS, atualize a organização e o ambiente:
    helm upgrade ORG_NAME apigee-org/ \
      --namespace apigee \
      --atomic \
      -f OVERRIDES_FILE.yaml
    
    helm upgrade ENV_NAME apigee-env/ \
      --namespace apigee \
      --set env=ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE.yaml
    

Uma observação sobre compatibilidade com versões anteriores

Se remover as chaves de criptografia do arquivo de modificações na primeira vez que você instalar o Apigee híbrido, você desativará a criptografia e os valores serão armazenados sem criptografia. Se, posteriormente, você ativar a criptografia fornecendo chaves,vos dados de saída permanecerão não criptografados. No entanto, todos os dados futuros adicionados 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, com 32 caracteres e gerada aleatoriamente:

head -c 32 /dev/random | openssl base64