En esta página se proporcionan instrucciones sobre las tareas habituales de la función de autenticación de IAM de Memorystore para Valkey. Para obtener más información sobre esta función, consulta el artículo Acerca de la autenticación de gestión de identidades y accesos.
Crear una instancia con la autenticación de gestión de identidades y accesos
Para crear una instancia de Memorystore for Valkey que use la autenticación de IAM, ejecuta el comando create
:
gcloud memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth
Haz los cambios siguientes:
INSTANCE_ID es el ID de la instancia de Memorystore for Valkey que vas a crear. El ID de instancia debe tener entre 1 y 63 caracteres, y solo puede incluir letras minúsculas, números o guiones. Debe empezar por una letra minúscula y terminar por una letra minúscula o un número.
REGION_ID es la región en la que quieres colocar la instancia.
NETWORK es la red que se ha usado para crear la instancia. Debe usar el formato
projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID
. El ID de red que se usa aquí debe coincidir con el que usa la política de conexión de servicio. De lo contrario, la operacióncreate
no se realizará. Para obtener más información, consulta Redes.NODE_TYPE es el tipo de nodo que has elegido. Los valores aceptados son:
shared-core-nano
standard-small
highmem-medium
highmem-xlarge
SHARD_COUNT determina el número de particiones de tu instancia. El número de particiones determina la capacidad total de memoria para almacenar datos de instancias. Para obtener más información sobre la especificación de instancias, consulta Especificación de instancias y nodos.
Conceder permisos para la autenticación de gestión de identidades y accesos
Para conceder acceso de gestión de identidades y accesos, asigna a la entidad principal el rol roles/memorystore.dbConnectionUser
siguiendo las instrucciones para conceder roles de gestión de identidades y accesos.
De forma predeterminada, si se asigna el rol roles/memorystore.dbConnectionUser
a una entidad de seguridad, esta podrá acceder a todas las instancias de tu proyecto.
Crear un rol de administrador de gestión de identidades y accesos limitado para una instancia
Puede que quieras crear un rol que pueda modificar los permisos de IAM de conexión de instancias sin conceder acceso completo de administrador de IAM. Para ello, crea un administrador de IAM limitado para el rol roles/memorystore.dbConnectionUser
. Para obtener más información, consulta el artículo Crear administradores de IAM con acceso limitado.
Conectarse a una instancia que usa la autenticación de gestión de identidades y accesos
Si aún no tienes una máquina virtual de Compute Engine que use la misma red autorizada que tu instancia de Valkey, crea una y conéctate a ella siguiendo la guía de inicio rápido con una máquina virtual de Linux.
Habilita el ámbito de la API Cloud Platform en tu proyecto. Para obtener más información sobre cómo habilitar este permiso de acceso, consulta Adjuntar la cuenta de servicio y actualizar el permiso de acceso. Para obtener más información sobre las prácticas recomendadas de este ámbito, consulta Prácticas recomendadas de los ámbitos.
Habilita la API Memorystore for Valkey en tu proyecto.
Instala
valkey-cli
en la máquina virtual de Compute Engine siguiendo las instrucciones de Instalar Valkey.Ejecuta el siguiente comando para obtener un token de acceso para tu usuario de IAM:
gcloud auth print-access-token
Conéctate al endpoint de descubrimiento de tu instancia:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Haz los cambios siguientes:
NETWORK_ADDRESS es la dirección de red de la instancia. Para ver la dirección de red, consulta Ver información de instancias.
PORT es el número de puerto de las instancias. Para ver el número de puerto, consulta Ver información de la instancia.
ACCESS_TOKEN es el token de acceso de gestión de identidades y accesos que se ha obtenido en pasos anteriores.
Ejecuta el comando
CLUSTER SHARDS
para ver la topología de tu nodo. Anota una de las direcciones IP y los números de puerto del nodo.Conéctate al nodo que hayas elegido ejecutando el siguiente comando:
valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
Haz los cambios siguientes:
- NODE_IP_ADDRESS es la dirección IP del nodo que has encontrado en el paso anterior.
- NODE_PORT es el número de puerto del nodo que has encontrado en el paso anterior.
Ejecuta los comandos
SET
yGET
de Valkey para verificar que has establecido una conexión autenticada con el nodo de tu instancia.Cuando hayas terminado de probar la conexión a la instancia de Valkey, te recomendamos que elimines la VM de Compute Engine que has usado para conectarte a la instancia de Valkey. De esta forma, evitarás que se apliquen cargos a tu cuenta de Facturación de Cloud.
Ejecuta el siguiente comando para usar valkey-cli para autenticarte y conectarte a tu instancia. Sustituye las variables por los valores adecuados:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Haz los cambios siguientes:
NETWORK_ADDRESS es la dirección de red de la instancia. Para ver la dirección de red, consulta Ver información de instancias.
PORT es el número de puerto de las instancias. Para ver el número de puerto, consulta Ver información de la instancia.
ACCESS_TOKEN es el token de acceso de gestión de identidades y accesos que se ha obtenido en pasos anteriores.
Ejecuta los comandos
SET
yGET
de Valkey para verificar que has establecido una conexión autenticada con tu instancia.Cuando hayas terminado de probar la conexión a la instancia de Valkey, te recomendamos que elimines la VM de Compute Engine que has usado para conectarte a la instancia de Valkey. De esta forma, evitarás que se apliquen cargos a tu cuenta de Facturación de Cloud.
Automatizar la obtención de tokens de acceso
Te recomendamos que automatices la obtención de tokens de acceso en tu aplicación, ya que no se pueden codificar fácilmente debido a su breve tiempo de validez.
(Opcional) Si aún no lo has hecho, crea una cuenta de servicio para tu aplicación (consulta Crear y gestionar cuentas de servicio).
gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Haz los cambios siguientes:
- SA_NAME es el nombre de la cuenta de servicio.
- DESCRIPTION es una descripción opcional de la cuenta de servicio.
- DISPLAY_NAME es el nombre de la cuenta de servicio que se mostrará en la consola deGoogle Cloud .
Concede a tu cuenta de servicio el permiso
memorystore.dbConnectionUser
en tu proyecto.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="memorystore.dbConnectionUser"
Haz los cambios siguientes:
- PROJECT_ID es el ID del proyecto.
- SA_NAME es el nombre de la cuenta de servicio.
- ROLE_NAME es el nombre de un rol, como
roles/compute.osLogin
.
Autentica tu aplicación como la cuenta de servicio indicada. Consulta más información sobre las cuentas de servicio.
Para ver ejemplos de código que muestran cómo autenticar tu aplicación mediante bibliotecas de cliente populares, consulta Ejemplos de código de bibliotecas de cliente.
Código de ejemplo para conectarse a una instancia que usa la autenticación de gestión de identidades y accesos
Para ver un ejemplo de código compatible con Valkey sobre cómo configurar una biblioteca de cliente para conectarse a una instancia que usa la autenticación de IAM, consulta el ejemplo de código para la autenticación de IAM y el cifrado en tránsito.
Solucionar problemas de mensajes de error con la autenticación de gestión de identidades y accesos
Mensaje de error | Acción recomendada | Descripción |
---|---|---|
|
Verificar el nombre de usuario y el token de acceso proporcionados al servidor de Memorystore for Valkey | El nombre de usuario o el token de acceso proporcionados no son válidos. "default" es el único nombre de usuario admitido. Si tu aplicación ya usa el nombre de usuario "default", comprueba que el token de acceso no haya caducado y que se haya obtenido siguiendo las instrucciones de Conectarse a una instancia que usa la autenticación de IAM. Los permisos de gestión de identidades y accesos pueden tardar unos minutos en propagarse si se han cambiado recientemente. |
|
Comprueba que la aplicación esté configurada para proporcionar un token de acceso de IAM al servidor de Memorystore para Valkey | La aplicación no proporciona un token de acceso al servidor de Memorystore for Valkey. Comprueba que la aplicación esté configurada para proporcionar un token de acceso. Para ello, sigue las instrucciones que se indican en Conectarse a una instancia que usa la autenticación de IAM. |
|
Reintentar con un tiempo de espera exponencial | El backend de IAM está sobrecargado y ha devuelto un error de cuota superada al servidor de Memorystore para Valkey. Las aplicaciones deben intentar volver a realizar esta operación con un tiempo de espera exponencial para evitar que se produzcan más errores de conexión. |
|
Reintentar con un tiempo de espera exponencial | El backend de gestión de identidades y accesos ha devuelto un error transitorio al servidor de Memorystore para Valkey. Las aplicaciones deben intentar volver a realizar esta operación con un tiempo de espera exponencial para evitar que se produzcan más errores de conexión. |