Puedes encriptar de forma segura todos los datos que se transfieren entre tus aplicaciones cliente y Memorystore for Valkey. Esto se conoce como encriptación en tránsito. Con la encriptación en tránsito, todo el tráfico de Valkey se encripta a través del protocolo de seguridad de la capa de transporte (TLS). Esto garantiza que todos los datos que se transfieren entre tus aplicaciones y Memorystore para Valkey sigan siendo confidenciales y no se alteren.
Cuando se habilita la encriptación en tránsito, los clientes de Valkey se comunican exclusivamente a través de una conexión segura. Se bloquearán los clientes de Valkey que no estén configurados para TLS. Si eliges usar la encriptación en tránsito, serás responsable de garantizar que tu cliente de Valkey pueda usar el protocolo TLS.
Las instancias que usan encriptado en tránsito tienen autoridades certificadoras (CA). Usas las CA para autenticar los certificados de las máquinas en tus instancias.
Un modo de CA que puedes usar es una CA administrada por el cliente. Puedes usar CA administradas por el cliente para tus instancias de Memorystore for Valkey. Si necesitas administrar tus propias AC por motivos de cumplimiento, puedes usar este modo de AC. Como parte del uso de este modo, debes configurar tu propio grupo de CA alojado en Certificate Authority Service.
Antes de configurar una instancia para que use CAs administradas por el cliente, debes crear un grupo de CA en la misma región que tu instancia y, al menos, una CA en ese grupo con el servicio de CA. La CA puede ser una CA raíz o una CA subordinada. También puedes crear una CA subordinada en el servicio de CA y, luego, encadenarla a una CA raíz externa.
Cuando creas la instancia, especificas el grupo de CA. Como parte de esta configuración, la cuenta de servicio de Memorystore para Valkey específica del proyecto tiene permisos para usar el grupo de AC. La cuenta de servicio solicita una CA del grupo, y Memorystore para Valkey usa esa CA para firmar el certificado del servidor de la instancia.
Antes de comenzar
Antes de usar el modo de CA administrada por el cliente, asegúrate de cumplir con los siguientes requisitos.
Roles obligatorios
Para obtener los permisos que necesitas para crear un grupo de AC y una AC, pídele a tu administrador que te otorgue el rol de IAM de Administrador de operaciones del servicio de CA (roles/privateca.caManager) en el servicio de CA.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Flujo de trabajo para usar una CA administrada por el cliente
Para usar una CA administrada por el cliente, el flujo de trabajo es el siguiente:
- Crea un grupo de CA. Antes de configurar una instancia para que use una CA administrada por el cliente, debes crear un grupo de CA en el servicio de CA. Este grupo debe estar en la misma región que tu instancia.
- Crea una CA en el grupo de CA. Después de crear el grupo de CA, debes usar el servicio de CA para crear al menos una CA en el grupo.
- Delega permiso a la cuenta de servicio de Memorystore para Valkey para emitir certificados de servidor con las AC del grupo de AC que crees.
- Crea una instancia para usar la CA administrada por el cliente.
Crear grupo de CA
Puedes crear un grupo de CA en CA Service en el mismo proyecto en el que planeas crear tus instancias de Memorystore para Valkey, o bien puedes crear el grupo de CA en otro proyecto. Sin embargo, si creas el grupo de CA en un proyecto diferente, es posible que los Controles del servicio de VPC te impidan crear instancias, según las políticas de tu organización. Para solucionar el problema, asegúrate de que el proyecto que aloja el grupo de AC y la AC, y el proyecto que aloja Memorystore para Valkey pertenezcan al mismo perímetro de servicio. Para obtener más información, consulta Configuración y detalles del perímetro de servicio y Administra perímetros de servicio.
Para crear un grupo de CA, sigue las instrucciones en Crea un grupo de CA. Puedes aceptar los valores predeterminados para el grupo de CA con los siguientes parámetros de configuración obligatorios:
- Crea el grupo de CA en la misma región en la que planeas crear tu instancia. Para obtener una lista de las regiones que admite Memorystore para Valkey, consulta Ubicaciones de Memorystore para Valkey.
- Permite solicitudes de certificados basadas en la configuración.
- Permite nombres de DNS en nombres alternativos de sujeto (SAN). Cuando configures las restricciones de identidad del grupo de entidades certificadoras, no establezcas ninguna restricción en el formato de los nombres de DNS que puedan entrar en conflicto con lo que Memorystore para Valkey podría agregar al SAN.
Crea una CA en el grupo de CA
Crea al menos una CA en el grupo de CA que creaste.
Puedes crear una CA raíz o una CA subordinada.
Para crear una CA raíz, sigue las instrucciones en Crea una CA raíz. Puedes aceptar los valores predeterminados para la CA, pero asegúrate de crearla en el estado Habilitada.
Cuando configures el algoritmo y el tamaño de la clave de CA, podrás seleccionar cualquier tamaño y algoritmo de clave.
Si creas una CA subordinada, primero debes crear y configurar tu CA raíz.
Para crear una CA subordinada en el servicio de CA, sigue las instrucciones en Crea una CA subordinada.
Para crear una CA subordinada a partir de una CA raíz externa, sigue las instrucciones en Crea una CA subordinada a partir de una CA externa.
Proporciona a la cuenta de servicio acceso al grupo de CA
Para asegurarte de que tu cuenta de servicio de Memorystore para Valkey tenga permisos para solicitar y firmar certificados para tus instancias, otorga el rol roles/privateca.certificateRequester a la cuenta de servicio para el grupo de AC que creaste.
Esta cuenta de servicio tiene el siguiente formato:
service-PROJECT_NUMBER@cloud-memorystore.iam.gserviceaccount.com. Reemplaza PROJECT_NUMBER por el número de proyecto de tu proyecto de Google Cloud .
gcloud
Para otorgar acceso a la cuenta de servicio al grupo de entidades de certificación, usa el comando gcloud privateca pools add-iam-policy-binding.
gcloud privateca pools add-iam-policy-binding CA_POOL_ID \ --project=PROJECT_ID \ --location=REGION_ID \ --member serviceAccount:SERVICE_ACCOUNT_NAME \ --role=roles/privateca.certificateRequester
Realiza los siguientes reemplazos:
- CA_POOL_ID: Es el ID del grupo de AC que creaste.
- PROJECT_ID: Es el ID del proyecto Google Cloud en el que deseas crear tus instancias.
- REGION_ID: Es la región en la que se encuentra el grupo de AC.
- SERVICE_ACCOUNT_NAME: Es el nombre de la cuenta de servicio de Memorystore for Valkey. El número de proyecto de esta cuenta de servicio es el mismo que el número de proyecto asociado con PROJECT_ID.
Crea una instancia que use una CA administrada por el cliente
Console
Sigue los pasos que se indican en Crea instancias.
gcloud
Para crear una instancia que use una CA administrada por el cliente, usa el 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=customer-managed-cas-ca \
--server-ca-pool="projects/CA_POOL_PROJECT_ID/locations/REGION_ID/caPools/CA_POOL_ID"
Realiza los siguientes reemplazos:
INSTANCE_ID: Es el ID de la instancia que crearás. El ID de instancia debe tener entre 1 y 63 caracteres, y solo debe usar letras en minúscula, números o guiones. Debe comenzar con una letra minúscula y terminar con una letra minúscula o un número.
REGION_ID: Es la región en la que deseas que se ubique la instancia. Debes crear la instancia en la misma región que el grupo de CA que creaste.
PROJECT_ID: Es el ID del proyecto en el que deseas crear la instancia.
NETWORK_ID: Es el ID de la red que deseas usar para crear la instancia.
REPLICA_COUNT: Es la cantidad de réplicas (por fragmento). Los valores aceptados son de
0a5.NODE_TYPE: Es el tipo de nodo. Los valores aceptados son los siguientes:
shared-core-nanostandard-smallhighmem-mediumhighmem-xlarge
SHARD_COUNT: Es la cantidad de fragmentos en la instancia. La cantidad de fragmentos determina la capacidad total de memoria para almacenar datos de instancias. Para obtener más información sobre las especificaciones de instancias, consulta Especificaciones de instancias y nodos.
ENGINE_VERSION: Es la versión de la instancia. Los valores aceptados para este parámetro son
VALKEY_7_2,VALKEY_8_0yVALKEY_9_0. Si no especificas un valor, el valor predeterminado esVALKEY_9_0.MODE: Determina si la instancia tiene habilitado o inhabilitado el modo de clúster. Si se omite este campo, la instancia se establece de forma predeterminada en el modo de clúster habilitado. Para obtener más información, consulta Cómo habilitar y inhabilitar el modo de clúster.
CA_POOL_PROJECT_ID: Es el ID del grupo de AC que creaste.
REGION_ID: Es la región en la que se encuentra el grupo de AC. La instancia que creas y el grupo de CA deben estar ubicados en la misma región.
CA_POOL_ID: Es el ID del grupo de AC que creaste.
El parámetro server-ca-mode representa el modo de la CA para la instancia. En el caso de una CA administrada por el cliente, customer-managed-cas-ca es el valor del parámetro.
Si no usas este parámetro, el modo de CA predeterminado es por instancia.
Por ejemplo:
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_0 \
--mode=CLUSTER \
--transit-encryption-mode=server-authentication \
--server-ca-mode=customer-managed-cas-ca \
--server-ca-pool="projects/my-CA-pool-project/locations/us-central1/caPools/my-CA-pool"
Rota los certificados de servidor de la instancia
Además de que Memorystore for Valkey realiza una rotación semanal de certificados del servidor, puedes rotar los certificados a pedido.
gcloud
Para rotar los certificados del servidor de todas las máquinas de una instancia, usa el comando gcloud memorystore instances update.
gcloud memorystore instances update INSTANCE_ID \ --location=REGION_ID \ --rotate-server-certificate
Realiza los siguientes reemplazos:
- INSTANCE_ID: Es el ID de la instancia que contiene las máquinas para las que deseas rotar los certificados del servidor.
- REGION_ID: Es la región en la que se encuentra la instancia.
Por ejemplo:
gcloud memorystore instances update my-instance \ --location=us-central1 \ --rotate-server-certificate
Limitaciones
Se aplican las siguientes limitaciones cuando se usan CAs administradas por el cliente con Memorystore para Valkey:
- Después de configurar una CA administrada por el cliente para una instancia, no podrás modificar la configuración. Por ejemplo, no puedes cambiar el ID del grupo de CA de la instancia.
- No borres el grupo de CA administrado por el cliente ni revoques los permisos de la cuenta de servicio asociados con la CA. Si lo haces, los certificados del servidor no se podrán rotar y caducarán. Como resultado, tus aplicaciones cliente no podrán conectarse a la instancia.
Solucionar problemas
En esta sección, se enumeran los mensajes de error que puedes recibir cuando usas las CA administradas por el cliente y se incluyen sugerencias para solucionar problemas relacionados con estos mensajes.
| Mensaje de error | Causa | Solucionar problemas |
|---|---|---|
FAILED_PRECONDITION: GetClusterCertificateAuthority not
supported for customer-managed CAs |
Si usas una CA administrada por el cliente, no puedes usar Memorystore para Valkey para recuperar los certificados de la CA. | Para obtener los certificados de la CA de una CA administrada por el cliente, debes usar el servicio de CA. |
Server certificate rotation can only be triggered for
customer-managed CAs. |
Intentas rotar los certificados del servidor para una instancia, pero el modo de CA de la instancia es por instancia o compartido. | No puedes rotar los certificados de servidor, a menos que el modo que uses para una instancia sea administrado por el cliente. |
Invalid format for server CA pool: {CA pool resource}. Expected
projects/{project}/locations/{location}/caPools/{caPool}. |
El grupo de CA que usas para crear la instancia tiene un formato no válido. | Para el grupo de CA, usa este formato: projects/CA_POOL_PROJECT_ID/locations/REGION_ID/ caPools/CA_POOL_ID |
The instance/cluster's server CA pool must be in the same region
as the instance/cluster. CA Pool region: {CA pool region}, Instance/cluster
region: {cluster region}. |
Intentas crear una instancia ubicada en una región diferente a la del grupo de CA. | Asegúrate de que la instancia que creas y tu grupo de CA estén en la misma región. |
Request is prohibited by organization's policy for CA Pool
{CA pool ID}. |
El proyecto Google Cloud que aloja el grupo de CA y el proyecto que aloja la instancia no están en el mismo perímetro de servicio. | Configura los Controles del servicio de VPC de modo que los proyectos pertenezcan al mismo perímetro de servicio. |
Permission privateca.certificates.create denied on {CA pool ID}.
Make sure that you granted the roles/privateca.certificateRequester role
to the service account {P4SA email}. |
La cuenta de servicio de Memorystore para Valkey no tiene el rol roles/privateca.certificateRequester para el grupo de AC. Como resultado, Memorystore for Valkey no puede generar certificados de servidor. |
Otorga el rol roles/privateca.certificateRequester a la cuenta de servicio. Para obtener más información, consulta Cómo proporcionar a la cuenta de servicio acceso al grupo de AC. |
Resource {CA pool ID} not found. |
Memorystore for Valkey no puede encontrar el grupo de CA que especificaste cuando intentaste crear la instancia. | Verifica el ID del proyecto, la ubicación y el nombre del grupo de CA. |
There are no enabled CAs in the CaPool {CA pool ID}. Please
ensure that there is at least one enabled Certificate Authority to issue a
certificate. |
No hay AC habilitadas en el grupo de AC. Memorystore para Valkey no puede generar certificados de servidor para la instancia. | Asegúrate de crear al menos una CA en el grupo de CA y de que la CA esté en el estado Habilitada. |
Quota exhausted for CA Service. Check quotas
for the project hosting the CA Pool: {CA pool ID}. |
Superaste la cuota del Servicio de CA en el proyecto Google Cloud que aloja el grupo de CA. Memorystore for Valkey no puede realizar operaciones que requieran este servicio. | Verifica la cuota del servicio de CA en tu proyecto. Para obtener más información, consulta Cuotas y límites. |
server_ca_pool must be provided when server_ca_mode is
SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Estás intentando crear una instancia que usa el modo de CA administrada por el cliente. Sin embargo, no proporcionaste información sobre el grupo de CA. | Especifica el ID del proyecto, la ubicación y el nombre del grupo de CA. |
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. |
Estás intentando crear una instancia que usa el modo de CA por instancia o compartido. Estos modos de CA no usan el parámetro server_ca_pool. |
No puedes usar este parámetro a menos que el modo de CA sea administrado por el cliente. |