Protege tus datos con una autoridad certificadora (AC) administrada por el cliente

Puedes encriptar de forma segura todos los datos que se mueven entre tus aplicaciones cliente y Memorystore para Valkey. Esto se conoce como encriptación en tránsito. Cuando se usa 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 mueven entre tus aplicaciones y Memorystore para Valkey permanezcan confidenciales y sin alteraciones.

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 bloquean los clientes de Valkey que no están configurados para TLS. Si eliges usar la encriptación en tránsito, eres responsable de garantizar que tu cliente de Valkey pueda usar el protocolo TLS.

Las instancias que usan la encriptación en tránsito tienen autoridades certificadoras (AC). Usas las AC para autenticar los certificados de las máquinas en tus instancias.

Un modo de AC que puedes usar es una AC administrada por el cliente. Puedes usar AC administradas por el cliente para tus instancias de Memorystore para 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 AC alojado en Certificate Authority Service.

Antes de configurar una instancia para que use AC administradas por el cliente, debes crear un grupo de AC en la misma región que tu instancia y al menos una AC en ese grupo con el servicio de CA. La AC puede ser una AC raíz o una AC subordinada. También puedes crear una AC subordinada en el servicio de CA y, luego, encadenarla a una AC raíz externa.

Cuando creas la instancia, especificas el grupo de AC. Como parte de esta configuración, la cuenta de servicio de Memorystore for Valkey específica del proyecto tiene permisos para usar el grupo de AC. La cuenta de servicio solicita una AC del grupo y Memorystore para Valkey usa esa AC para firmar el certificado de servidor de la instancia.

Antes de comenzar

Antes de usar el modo de AC 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 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 AC administrada por el cliente

Para usar una AC administrada por el cliente, el flujo de trabajo es el siguiente:

  1. Crea un grupo de CA. Antes de configurar una instancia para que use una AC administrada por el cliente, debes crear un grupo de AC en el servicio de CA. Este grupo debe estar en la misma región que tu instancia.
  2. Crea una AC en el grupo de AC. Después de crear el grupo de AC, debes usar el servicio de CA para crear al menos una AC en el grupo.
  3. Delega permiso a la cuenta de servicio de Memorystore para Valkey para emitir certificados de servidor con AC del grupo de AC que crees.
  4. Crea una instancia para usar la AC administrada por el cliente.

Crea un grupo de CA

Puedes crear un grupo de AC en el servicio de CA en el mismo proyecto en el que planeas crear tus instancias de Memorystore para Valkey o en un proyecto diferente. Sin embargo, si creas el grupo de AC 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 AC, con los siguientes parámetros de configuración obligatorios:

  • Crea el grupo de AC 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 entidad (SAN). Cuando configures las restricciones de identidad del grupo de AC, no establezcas ninguna restricción sobre 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 AC en el grupo de AC que creaste.

Puedes crear una AC raíz o una AC subordinada.

Para crear una AC raíz, sigue las instrucciones en Crea una AC raíz. Puedes aceptar los valores predeterminados para la AC, pero asegúrate de crear la AC en el estado Habilitado.

Cuando configures el algoritmo y el tamaño de la clave de CA, puedes seleccionar cualquier tamaño de clave y algoritmo.

Si creas una AC subordinada, primero debes crear y configurar tu AC raíz.

Otorga acceso a la cuenta de servicio 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 Google Cloud proyecto.

gcloud

Para otorgar acceso a la cuenta de servicio al grupo de AC, usa el gcloud privateca pools add-iam-policy-binding comando.

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 Google Cloud proyecto 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 para Valkey. El número de proyecto de esta cuenta de servicio es el mismo que el número de proyecto asociado con el PROJECT_ID.

Crea una instancia que use una AC administrada por el cliente

Console

Sigue los pasos en Crea instancias.

gcloud

Para crear una instancia que use una AC administrada por el cliente, usa el gcloud memorystore instances create comando.

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 estás creando. El ID de instancia debe tener entre 1 y 63 caracteres, y usar solo letras minúsculas, 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 AC 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 0-5.

  • NODE_TYPE: Es el tipo de nodo. Los valores aceptados son los siguientes:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-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 Especificación 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_0 y VALKEY_9_0. Si no especificas un valor, VALKEY_9_0 es el valor predeterminado.

  • 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 Habilita e inhabilita 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 estás creando y el grupo de AC deben estar 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 AC para la instancia. Para una AC administrada por el cliente, customer-managed-cas-ca es el valor del parámetro. Si no usas este parámetro, el modo de AC 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 de servidor de todas las máquinas de una instancia, usa el gcloud memorystore instances update comando.

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 de 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 AC administradas por el cliente con Memorystore para Valkey:

  • Después de configurar una AC administrada por el cliente para una instancia, no puedes modificar la configuración. Por ejemplo, no puedes cambiar el ID del grupo de AC para la instancia.
  • No borres el grupo de AC administrado por el cliente ni revoques los permisos de la cuenta de servicio asociados con la AC. Si lo haces, no se podrán rotar los certificados de servidor y vencerá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 AC administradas por el cliente y se incluyen sugerencias para solucionar estos mensajes.

Mensaje de error Causa Solución de problemas
FAILED_PRECONDITION: GetClusterCertificateAuthority not supported for customer-managed CAs Si usas una AC administrada por el cliente, no puedes usar Memorystore para Valkey para recuperar los certificados de AC. Para obtener los certificados de AC de una AC 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 de servidor de una instancia, pero el modo de AC 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 AC que usas para crear la instancia tiene un formato no válido Para el grupo de AC, 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 que se encuentra en una región diferente del grupo de AC. Asegúrate de que la instancia que estás creando y tu grupo de AC estén en la misma región.
Request is prohibited by organization's policy for CA Pool {CA pool ID}. El Google Cloud proyecto que aloja el grupo de AC y el proyecto que aloja la instancia no están en el mismo perímetro de servicio. Configura los Controles del servicio de VPC para 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 roles/privateca.certificateRequester rol 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 Otorga acceso a la cuenta de servicio al grupo de CA.
Resource {CA pool ID} not found. Memorystore para Valkey no puede encontrar el grupo de AC que especificaste cuando intentaste crear la instancia. Verifica el ID del proyecto, la ubicación y el nombre del grupo de AC.
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 for Valkey no puede generar certificados de servidor para la instancia. Asegúrate de crear al menos una AC en el grupo de AC y de que la AC esté en el estado Habilitado.
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 Google Cloud proyecto que aloja el grupo de AC. Memorystore para 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. Intentas crear una instancia que usa el modo de AC administrada por el cliente. Sin embargo, no proporcionaste información sobre el grupo de AC. Especifica el ID del proyecto, la ubicación y el nombre del grupo de AC.
server_ca_pool must not be provided when server_ca_mode is not SERVER_CA_MODE_CUSTOMER_MANAGED_CAS_CA. Intentas crear una instancia que usa el modo de AC por instancia o compartido. Estos modos de AC no usan el server_ca_pool parámetro. No puedes usar este parámetro a menos que el modo de AC sea administrado por el cliente.