En esta página, se proporcionan instrucciones sobre las tareas comunes de la función de autenticación de IAM para Memorystore para Valkey. Para obtener más detalles sobre la función, consulta Acerca de la autenticación de IAM.
Crea una instancia con autenticación de IAM
Para crear una instancia de Memorystore para 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
Reemplaza lo siguiente:
INSTANCE_ID es el ID de la instancia de Memorystore para Valkey que crearás. El ID de instancia debe tener entre 1 y 63 caracteres, y solo debe incluir 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 colocar la instancia.
NETWORK es la red que se usó para crear tu 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 ID de red que usa la política de conexión de servicio. De lo contrario, la operacióncreate
fallará. Para obtener más detalles, consulta Herramientas de redes.NODE_TYPE es el tipo de nodo que elegiste. Los valores aceptados son los siguientes:
shared-core-nano
standard-small
highmem-medium
highmem-xlarge
SHARD_COUNT determina la cantidad de fragmentos en tu instancia. El recuento de fragmentos determina la capacidad total de memoria para almacenar datos de instancias. Para ver más detalles sobre la especificación de instancias, consulta Especificación de instancias y nodos.
Otorga permisos para la autenticación de IAM
Para otorgar acceso a IAM, otorga a la principal el rol de roles/memorystore.dbConnectionUser
con las instrucciones para otorgar roles de IAM.
De forma predeterminada, otorgar a un principal el rol de roles/memorystore.dbConnectionUser
le permite acceder a todas las instancias de tu proyecto.
Crea un rol de administrador de IAM limitado para una instancia
Es posible que desees crear un rol que pueda modificar los permisos de IAM de conexión de instancias sin otorgar acceso completo de administrador de IAM. Para ello, crea un administrador de IAM limitado para el rol de roles/memorystore.dbConnectionUser
. Para obtener más detalles, consulta Crea administradores de IAM limitados.
Conéctate a una instancia que usa la autenticación de IAM
Si aún no tienes una VM 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 sobre el uso de una VM de Linux.
Para conectarte a tu instancia, debes habilitar los siguientes alcances de acceso y APIs para tu proyecto:
Alcance de la API de Cloud Platform. Para obtener instrucciones sobre cómo habilitar este permiso, consulta Conecta la cuenta de servicio y actualiza el permiso de acceso. Para obtener una descripción de las prácticas recomendadas para este permiso de acceso, consulta Prácticas recomendadas para los permisos.
API de Memorystore for Valkey Para obtener un vínculo que te permita habilitar la API, haz clic en el siguiente botón:
Memorystore para Valkey
Instala
valkey-cli
en la VM de Compute Engine siguiendo las instrucciones en Instala Valkey.Ejecuta el siguiente comando para obtener un token de acceso para tu usuario de IAM:
gcloud auth print-access-token
Conéctate al extremo de detección de tu instancia:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Reemplaza lo siguiente:
NETWORK_ADDRESS es la dirección de red de la instancia. Para ver la dirección de red, consulta Cómo ver la información de la instancia.
PORT es el número de puerto de las instancias. Para ver el número de puerto, consulta Cómo ver la información de la instancia.
ACCESS_TOKEN es el token de acceso de IAM que se recuperó en los 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 elegiste ejecutando el siguiente comando:
valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
Reemplaza lo siguiente:
- NODE_IP_ADDRESS es la dirección IP del nodo que encontraste en el paso anterior.
- NODE_PORT es el número de puerto del nodo que encontraste en el paso anterior.
Ejecuta un comando
SET
yGET
de Valkey para verificar que estableciste una conexión autenticada al nodo de tu instancia.Una vez que termines de probar tu conexión con la instancia de Valkey, debes considerar borrar la VM de Compute Engine que usaste para conectarte a la instancia de Valkey. Esto te ayuda a evitar que se generen cargos en tu cuenta de Facturación de Cloud.
Ejecuta el siguiente comando para usar valkey-cli para autenticarte y conectarte a tu instancia, y reemplaza las variables por los valores adecuados:
valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
Reemplaza lo siguiente:
NETWORK_ADDRESS es la dirección de red de la instancia. Para ver la dirección de red, consulta Cómo ver la información de la instancia.
PORT es el número de puerto de las instancias. Para ver el número de puerto, consulta Cómo ver la información de la instancia.
ACCESS_TOKEN es el token de acceso de IAM que se recuperó en los pasos anteriores.
Ejecuta un comando
SET
yGET
de Valkey para verificar que estableciste una conexión autenticada a tu instancia.Una vez que termines de probar tu conexión con la instancia de Valkey, debes considerar borrar la VM de Compute Engine que usaste para conectarte a la instancia de Valkey. Esto te ayuda a evitar que se generen cargos en tu cuenta de Facturación de Cloud.
Automatiza la recuperación de tokens de acceso
Te recomendamos que automatices la recuperación de tokens de acceso en tu aplicación, ya que no se pueden codificar de forma rígida fácilmente debido a su corta duración.
(Opcional) Si aún no lo hiciste, crea una cuenta de servicio para tu aplicación (consulta Crea y administra una cuenta de servicio).
gcloud iam service-accounts create SA_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
Reemplaza lo siguiente:
- SA_NAME es el nombre de la cuenta de servicio.
- DESCRIPTION es una descripción opcional de la cuenta de servicio.
- DISPLAY_NAME es un nombre de cuenta de servicio para mostrar en la consola deGoogle Cloud .
Otorga permiso
memorystore.dbConnectionUser
a tu cuenta de servicio en tu proyecto.gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="memorystore.dbConnectionUser"
Reemplaza lo siguiente:
- PROJECT_ID es el ID del proyecto.
- SA_NAME es el nombre de la cuenta de servicio.
- ROLE_NAME es un nombre de rol, como
roles/compute.osLogin
.
Autentica tu aplicación como la cuenta de servicio determinada. Consulta Cuentas de servicio para obtener más información.
Para ver muestras de código que muestran cómo puedes autenticar tu aplicación con bibliotecas cliente populares, consulta Muestras de código de bibliotecas cliente.
Ejemplo de código para conectarse a una instancia que usa la autenticación de IAM
Para ver un muestra de código compatible con Valkey sobre cómo configurar una biblioteca cliente para conectarse a una instancia que usa la autenticación de IAM, consulta Ejemplo de código para la autenticación de IAM y el cifrado en tránsito.
Soluciona problemas de mensajes de error con la autenticación de IAM
Mensaje de error | Acción recomendada | Descripción |
---|---|---|
|
Verifica el nombre de usuario y el token de acceso proporcionados al servidor de Memorystore para 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 "predeterminado", verifica que el token de acceso no haya vencido y que se haya recuperado según las instrucciones que se indican en Conéctate a una instancia que usa la autenticación de IAM. Si se cambiaron recientemente, es posible que los permisos de IAM tarden unos minutos en propagarse. |
|
Verifica 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 para Valkey. Verifica que la aplicación esté configurada para proporcionar un token de acceso. Para ello, sigue las instrucciones que se indican en Cómo conectarse a una instancia que usa la autenticación de IAM. |
|
Volver a intentarlo con una retirada exponencial | El backend de IAM está sobrecargado y devolvió un error de cuota excedida al servidor de Memorystore para Valkey. Las aplicaciones deben intentar reintentar este error con una retirada exponencial para evitar más fallas de conexión. |
|
Volver a intentarlo con una retirada exponencial | El backend de IAM devolvió un error transitorio al servidor de Memorystore para Valkey. Las aplicaciones deben intentar reintentar este error con una retirada exponencial para evitar más fallas de conexión. |