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 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.
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:
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:
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:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-28 UTC."],[[["\u003cp\u003eApigee hybrid encrypts Key Management System (KMS), Key-Value Map (KVM), and cache data by default, using AES-128 encryption, without requiring special configuration.\u003c/p\u003e\n"],["\u003cp\u003eKMS data encryption keys operate at the organization level, while KVM encryption keys can be scoped to either the organization or a specific environment, and cache keys are scoped only to the environment level.\u003c/p\u003e\n"],["\u003cp\u003eApigee hybrid provides default Base64-encoded keys stored as Kubernetes Secrets, which are used to encrypt data, but these keys are under your control and never exposed to the hybrid management plane.\u003c/p\u003e\n"],["\u003cp\u003eWhile the default encryption keys are sufficient for most cases, you can replace them during initial Apigee hybrid installation by generating new Base64-encoded keys that are 16, 24, or 32 bytes long.\u003c/p\u003e\n"],["\u003cp\u003eChanging encryption keys after the runtime is created will prevent the decryption of previously encrypted data, and only newly added data after the key change will be encrypted.\u003c/p\u003e\n"]]],[],null,["# Data encryption\n\n| You are currently viewing version 1.9 of the Apigee hybrid documentation. **This version is end of life.** You should upgrade to a newer version. For more information, see [Supported versions](/apigee/docs/hybrid/supported-platforms#supported-versions).\n\n\nBy default, the following data is stored *encrypted* in the hybrid\nruntime plane:\n\n- Key management system (KMS) data\n- Key-value map (KVM) data\n- Cache data\n\n\nData encryption does not require any special configuration on your part. However, if\nfor some reason you want to use your own encryption keys (replacing the default ones) you can\ndo so, as explained in this topic.\n\nEncryption key scope\n--------------------\n\n\nEncryption keys for KMS, KVM, and cache have scope. For example, KMS keys have *organization*\nscope. This means that the key is used to encrypt KMS data for the entire organization.\nThe following table lists the scope for\neach type of key:\n\nAbout the default encryption keys\n---------------------------------\n\n\nBy default, Apigee hybrid provides a set of Base64-encoded keys that are used to\nencrypt KVM, KMS, and cache data. The Apigee hybrid installer stores the keys in the\nruntime plane as\n[Kubernetes\nSecrets](https://kubernetes.io/docs/concepts/configuration/secret/), and uses them to encrypt your data with AES-128 standard encryption.\nThe keys are under your control;\nthe hybrid management plane is never aware of them at any time.\n| The default keys will work for most use cases. If you want to change the default encryption keys, do so when you initially install Apigee hybrid into a new cluster. If you change the encryption keys after the runtime is created in your cluster, previously encrypted data can no longer work (it cannot be decrypted); only new data added after the change will be encrypted and function as expected.\n\nChanging the default encryption keys\n------------------------------------\n\n\nAlthough not required, you can change any of the default encryption keys if you wish.\nTo replace one or more default keys, follow these steps:\n| If you change the encryption keys after the runtime is created in your cluster, previously encrypted data can no longer work (it cannot be decrypted); only new data added after the change will be encrypted and function as expected.\n\n1. Copy the following stanzas into your overrides file. This configuration lets you change the KMS and KVM encryption keys for the organization level and the KVM and cache encryption keys for the environment level: \n\n ```actionscript-3\n defaults:\n org:\n kmsEncryptionKey: base64-encoded-key\n kvmEncryptionKey: base64-encoded-key\n env:\n kvmEncryptionKey: base64-encoded-key\n cacheEncryptionKey: base64-encoded-key\n ```\n2. Generate a new key for each key you wish to replace. Each key must be a Base64-encoded string that is exactly **16, 24, or 32 bytes long** . See also [How to create an encoded\n key](#how-to-create-an-encoded-key).\n3. Replace the default keys with new ones. In this example, all of the default keys are replaced with keys: \n\n ```actionscript-3\n defaults:\n org:\n kmsEncryptionKey: \"JVpTb1FwI0otUHo2RUdRN3pnVyQqVGlMSEFAJXYmb1c=\"\n kvmEncryptionKey: \"T3VkRGM1U3cpOFgtNk9fMnNZU2NaSVA3I1BtZWxkaUU=\"\n env:\n kvmEncryptionKey: \"Q3h6M3R6OWdBeipxTURfKjQwQVdtTng2dU5mODFHcyE=\"\n cacheEncryptionKey: \"b2NTVXdKKjBzN0NORF9XSm9tWFlYKGJ6NUhpNystJVI=\"\n ```\n4. Apply the overrides file to your cluster as follows:\n - If you change KVM or Cache keys, update only the environment: \n\n ```\n $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name\n ```\n - If you change KMS keys, update both the org and environment: \n\n ```\n $APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml --env env_name --org org_name\n ```\n5. Restart the `apigee-runtime` and `apigee-mart` pods.\n\nA note about backward compatibility\n-----------------------------------\n\n\nWhen you first install Apigee hybrid, default encryption keys are used. If you were to\nremove the encryption keys, you would\neffectively disable encryption and subsequent values would be stored unencrypted.\nIf at a later\ntime you enable encryption by providing keys,\nany existing unencrypted data remains unencrypted; however, any future data that is added will\nbe encrypted. The system\nwill continue working normally with the unencrypted data and the new encrypted\ndata.\n\n\nAlso, note that\nyou cannot later change the encryption keys\nonce the runtime data is encrypted.\n\nHow to create an encoded key\n----------------------------\n\n\nA properly formatted Base-64-encoded key is required for KVM, KMS, and cache encryption.\nThe key used for any of these purposes must be Base-64 encoded from a string that is 16, 24, or\n32 bytes long, as explained below:\n| **Note:** If you are on Apigee hybrid version 1.9.0, then the generated key must include only printable characters. For example: \n|\n| ```\n| tr -dc 'A-Za-z0-9' \u003c /dev/urandom | head -c 32 | openssl base64\n| RjdJNmFGR2lFR0U5TmhvOWxFcTNYOGJsbm0wb3AzNXk=\n| ```\n| With version 1.9.1 and later, both printable and non-printable characters are allowed.\n| The key string length requirement exists because the [Advanced\n| Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) (AES) cipher works on a block size of 128 bits, but can take three different key lengths: 128, 192, and 256 bits (16, 24, or 32 bytes).\n\n\nThe following example command generates a suitable, randomly generated, 32 character,\nBase64-encoded string: \n\n```\nhead -c 32 /dev/random | openssl base64\n```"]]