É possível criptografar todos os dados que se movem entre os aplicativos cliente e a Memorystore para Valkey com segurança. Essa é a criptografia em trânsito. Ao usar a criptografia em trânsito, todo o tráfego do Valkey é criptografado pelo protocolo Transport Layer Security (TLS). Isso garante que todos os dados que se movem entre seus aplicativos e o Memorystore para Valkey permaneçam confidenciais e sem adulteração.
Quando a criptografia em trânsito está ativada, os clientes do Valkey se comunicam exclusivamente em uma conexão segura. Os clientes do Valkey que não estiverem configurados para TLS serão bloqueados. Se você optar por usar a criptografia em trânsito, será responsável por garantir que o cliente do Valkey possa usar o protocolo TLS.
As instâncias que usam criptografia em trânsito têm autoridades de certificação (CAs). Você usa as ACs para autenticar os certificados das máquinas nas suas instâncias.
Um modo de CA que você pode usar é uma CA por instância. O Memorystore para Valkey provisiona cada instância com uma infraestrutura de CA própria e exclusiva. Para acessar uma instância com segurança, configure o aplicativo cliente para confiar nessa hierarquia de CA. Isso envolve o download e a instalação de certificados de AC em cada cliente que acessa a instância.
Criar uma instância que use uma AC por instância
Console
Siga as etapas em Criar instâncias.
gcloud
Para criar uma instância que use uma CA por instância, use o comando gcloud memorystore instances create.
gcloud memorystore instances create INSTANCE_ID \
--location=REGION_ID \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/PROJECT_ID/global/networks/NETWORK_ID", "projectId": "PROJECT_ID"}}]}]' \
--replica-count=REPLICA_COUNT \
--node-type=NODE_TYPE \
--shard-count=SHARD_COUNT \
--engine-version=ENGINE_VERSION \
--mode=MODE \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca
Faça as seguintes substituições:
INSTANCE_ID: o ID da instância que você está criando. O ID da instância precisa ter de 1 a 63 caracteres e usar apenas letras minúsculas, números ou hifens. Ele precisa começar com uma letra minúscula e terminar com uma letra minúscula ou um número.
REGION_ID: a região em que você quer que a instância esteja localizada.
PROJECT_ID: o ID do projeto em que você quer criar a instância.
NETWORK_ID: o ID da rede que você quer usar para criar a instância.
REPLICA_COUNT: o número de réplicas (por fragmento). Os valores aceitos são
0-5.NODE_TYPE: o tipo de nó da instância.
SHARD_COUNT: o número de fragmentos na instância. A contagem de fragmentos determina a capacidade total de memória para armazenar dados da instância. Para mais informações sobre as especificações da instância, consulte Especificação da instância e do nó.
ENGINE_VERSION: a versão da instância. Os valores aceitos para esse parâmetro são
VALKEY_7_2,VALKEY_8_0,VALKEY_9_0eVALKEY_9_1(prévia). Se você não especificar um valor,VALKEY_9_0será o valor padrão.MODE: determina se a instância está com o modo de cluster ativado ou desativado. Se esse campo for omitido, a instância vai usar o modo de cluster ativado por padrão. Para mais informações, consulte Ativar e desativar o modo de cluster.
O parâmetro server-ca-mode representa o modo da CA para a instância. Para uma CA por instância, google-managed-per-instance-ca é o valor do parâmetro. Se você não usar esse parâmetro, o modo padrão de CA será
por instância.
Exemplo:
gcloud memorystore instances create my-instance \
--location=us-central1 \
--endpoints='[{"connections": [{"pscAutoConnection": {"network": "projects/my-project/global/networks/my-network", "projectId": "my-project"}}]}] \
--replica-count=1 \
--node-type=highmem-medium \
--shard-count=3 \
--engine-version=VALKEY_9_1 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=google-managed-per-instance-ca
Baixar as CAs
Se você ativar a criptografia em trânsito para uma instância, os certificados das CAs vão aparecer quando usar o comando
get-certificate-authority.
gcloud memorystore instances get-certificate-authority INSTANCE_ID
Substitua INSTANCE_ID pelo ID da instância.
O corpo da resposta inclui certificados para todas as ACs aplicáveis.
Instalar certificados de CA no cliente
É necessário instalar os certificados de CA no cliente que se conecta à instância. Dependendo do tipo de cliente, a instalação do certificado de CA pode variar.
Para instalar um certificado de CA em uma VM do Compute Engine Linux, faça o seguinte:
Use SSH para se conectar a um cliente Linux do Compute Engine.
No cliente, use o comando a seguir para criar um arquivo
server_ca.pem:sudo vim /tmp/server_ca.pem
Faça o download das ACs e cole-as no arquivo
server_ca.pem.É necessário formatar o texto das CAs corretamente. O arquivo
server_ca.pempode aparecer da seguinte forma:-----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkNzYx NTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2YxOWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE3MjEzNDE1WhcNMzAwOTE1 MjEzNTE1WjCBhTEtMCsGA1UELhMkNzYxNTc4OGMtMTI2Yi00Nzk0LWI2MWMtY2Yx OWE2Y2Y1ZjNiMTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCyDKmDHZm6tzMhNtKOnp8H 8+zTv1qA6OkBToVqCjKTTMGO18ovNtAAMjbGvclLuJNLbA2WTTWVttHen6Cn82h0 3gG9HMk9AwK1cVT7gW072h++TRsYddIRlwnSweRWL8jUX+PNt7CjFqH+sma/Hb1m CktHdBOa897JiYHrMVNTcpS8SFwwz05yHUTEVGlHdkvlaJXfHLe6keCMABLyjaMh 1Jl4gZI2WqLMV680pJusK6FI6q/NmqENFc9ywMEg395lHTK9w9e014WIXg0q7sU3 84ChVVS2yYOMEUWeov4Qx6XeVfA4ss5t7OCqsMQkvslkE90mJZcVvhBj3QvTH9Rz AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AJkn+MDE4V10DZn4uEc0s0Mg4FEMC1fDewmDYwSNnxRlzfEi+wAX2AaqrJ4m4Qa7 xIyuSYxArEOY6QeyJyw7/06dom8aAv4aO2p8hE04Ih6QwaTMFIlT2Jf6TidVd3eT wfjwFJVoJ+dgxsaCv2uMFZWee5aRHmKzj9LhqPwpWnTs9Q/qmOheUNoe2/1i8yvn 662M7RZMR7fZH6ETsdz5w1nPXXiRqJ7K0EGKoPNjMlYK3/U1X3sazI4tpMNgTdxG rnNh9Sd9REMBmDCPj9dUI9k4hQX4yQZp96fnLT6cet22OPajEKnpzyqJs1s4iX/g lEtWs4V/YBhKA56CW6ASZS8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDnTCCAoWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBhTEtMCsGA1UELhMkYjg4 ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdhMzM4NmIwZmU4MTEwLwYDVQQDEyhHb29n bGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVkaXMgU2VydmVyIENBMRQwEgYDVQQKEwtH b29nbGUsIEluYzELMAkGA1UEBhMCVVMwHhcNMjAwOTE4MjEzMTI3WhcNMzAwOTE2 MjEzMjI3WjCBhTEtMCsGA1UELhMkYjg4ZTUzYTMtODdmNC00N2VhLWJjN2MtYTdh MzM4NmIwZmU4MTEwLwYDVQQDEyhHb29nbGUgQ2xvdWQgTWVtb3J5c3RvcmUgUmVk aXMgU2VydmVyIENBMRQwEgYDVQQKEwtHb29nbGUsIEluYzELMAkGA1UEBhMCVVMw ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDEO4Zs/So5DA6wtftkAElD 8BVREob4gby2mGBYAtd3JJQKFC+zIqCf2DhrWihrCeXhsdsZqJUF16E3MsCCWS2T UWt6T37zObU2fzKmb7X+TSw1tunIUcIXwWzoMhqdGrIvfI9guMbF+KssQIjDMs9M G/hY6cY1NB5THOxXqcxzYrwSKB1EE160EDz4RgKAYQhw7AyVOBBAbWqA5pTEDuUy qpsz+NFpKYTwaeTpzil0xIl0JJS3DOd4G7ZnMG2wFT2j3wt+P0SkAPuOWgmX82iO gGmKoaCh3KcICie/rZRTfsRPjMm+yswRQRDeLB5eoMmH+gbUInVZU0qOJ/7gOYEb AgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8CAQAwDQYJKoZIhvcNAQELBQADggEB AF4xlEbwLUK5VjoKlJBtKXLYrYcW+AbQLhZQFP8exE8bOW7p39h+5J0nl3ItPxu6 97BCt1P5TFisba8pBxaExiDsYmjKQrhtizMkzl5h9hGksOgoLlAqaaxfA97+Q9Tq 5gaYChESur/159Z3jiM47obKoZmHfgSgr//7tjII7yZxUGhOjIVffv/fEa4aixqM 0yH1V1s8hWHZeui2VFrHmTxY20IH9ktyedjSUgnFXzsEH6sbR18p0wBZqyrrtURs DaUIeoOHfHgEJM8k/wphSJI0V6pMC6nax2JhexLTRiUsiGTLRDe3VtsdWqS2DLa9 9DmrfdF0eFrfWw3VRNLwwXg= -----END CERTIFICATE-----
Para formatar o texto no arquivo corretamente, use as seguintes diretrizes:
Copie toda a CA, incluindo as linhas
-----BEGIN CERTIFICATE-----e
-----END CERTIFICATE-----.Verifique se o texto das CAs está totalmente justificado à esquerda. Verifique se não há espaços na frente de nenhuma linha das CAs.
Adicione cada CA em uma nova linha. Verifique se não há linhas em branco entre as CAs.
Configurar o cliente para criptografia em trânsito
O cliente usado para se conectar à instância precisa ser compatível com TLS ou usar um arquivo secundário de terceiros para ativar o TLS.
Se o cliente for compatível com TLS, configure-o para apontar para o endereço IP da instância, a porta 6379 e o arquivo que contém a AC. Confira exemplos de como se conectar a uma instância do Memorystore para Valkey com criptografia em trânsito ativada no modo de cluster ativado ou modo de cluster desativado.
Gerenciar a rotação de CA
Recomendamos que você instale todos os certificados de CA transferíveis por download nos clientes que acessam a instância.
A instalação periódica dos certificados de CA mais recentes garante que você tenha os certificados necessários quando o Memorystore for Valkey fizer a rotação das CAs. Durante essa rotação, as CAs atuais e as novas ficam ativas.
Exemplo de código para se conectar a uma instância que usa criptografia em trânsito
Para ver um exemplo de código sobre como configurar uma biblioteca de cliente para se conectar a uma instância que usa criptografia em trânsito, consulte Exemplo de código para autenticação do IAM e criptografia em trânsito.