Protege el acceso a tus instancias con la autenticación básica basada en tokens

Además de la autenticación de Identity and Access Management (IAM), puedes usar la autenticación básica basada en tokens para proteger el acceso a tus instancias de Memorystore for Valkey. Como solución liviana, la autenticación básica basada en tokens permite que los clientes verifiquen sus identidades en tus aplicaciones con sus tokens.

La autenticación básica basada en tokens tiene requisitos de recursos mínimos y una sobrecarga de recursos baja. Además, si tus cargas de trabajo actuales en Memorystore para Redis o tus aplicaciones locales ya usan la autenticación básica basada en tokens, esta función facilita una transición sin problemas cuando migras a Memorystore para Valkey.

Beneficios

Si usas la autenticación básica basada en tokens, obtendrás los siguientes beneficios:

  • Flexibilidad: Para instancias nuevas y existentes, habilita la autenticación en cualquier momento. Cuando habilitas la autenticación básica basada en tokens, tus instancias están seguras. Para todas las conexiones nuevas, los usuarios deben proporcionar un token de autenticación para autenticarse en tus instancias.
  • Rotación sin tiempo de inactividad: Rota los tokens de usuario sin causar tiempo de inactividad en tus aplicaciones.
  • Compatibilidad: El superusuario default mantiene los mismos privilegios que se otorgan a este usuario. La autenticación básica basada en tokens agrega una capa adicional de protección. Esto garantiza la retrocompatibilidad cuando migras tus cargas de trabajo de Memorystore para Redis a Memorystore para Valkey.

Modos de autenticación

La autenticación básica basada en tokens admite dos modos de autenticación principales:

  • Autenticación simple: Es un método sencillo en el que un usuario envía un token de autenticación para autenticarse como el usuario default.
  • Autenticación multiusuario: administra varios usuarios para autenticar el acceso a tus instancias

Prácticas recomendadas

Por motivos de seguridad, te recomendamos que uses las siguientes prácticas recomendadas para la autenticación básica basada en tokens:

  • Rota los tokens de usuario: Usa una política de rotación para los tokens de usuario.
  • Usa Secret Manager: No codifiques de forma rígida las credenciales de autenticación básicas basadas en tokens de un usuario en el código de la aplicación. En su lugar, almacénalos en Secret Manager y recupéralos en el tiempo de ejecución.

    Secret Manager proporciona una bóveda centralizada y encriptada para las credenciales del usuario, lo que elimina la dispersión de secretos y reduce la sobrecarga operativa de la administración manual de credenciales. Aplica controles de acceso con IAM y genera registros de auditoría automáticamente. Esto garantiza el cumplimiento y evita la exposición de credenciales.

  • Combina la autenticación básica basada en tokens con la seguridad de la capa de transporte (TLS): Cuando usas la autenticación básica basada en tokens, te recomendamos que habilites la encriptación en tránsito. Esto garantiza que los nombres de usuario y los tokens de autenticación no se envíen como texto sin formato a través de la red.

Antes de comenzar

Antes de comenzar a proteger tus instancias con la autenticación básica basada en tokens, completa los requisitos previos de esta sección.

Verifica la compatibilidad del cliente con la autenticación básica basada en tokens

Para confirmar que tus aplicaciones cliente admiten la autenticación básica basada en tokens, asegúrate de que puedan usar el comando AUTH.

El usuario de default se autentica en tus aplicaciones cliente con el siguiente comando:

AUTH TOKEN

En este comando, TOKEN es el token de autenticación predeterminado del usuario.

Todos los demás usuarios se autentican con el siguiente comando:

AUTH USERNAME TOKEN

En este comando, USERNAME y TOKEN son el nombre de usuario y el token de autenticación del usuario.

Para obtener más información sobre el comando AUTH, consulta AUTH en la documentación de Valkey.

Usa la consola de Google Cloud , Google Cloud CLI y las APIs

Para usar la consola, gcloud CLI y las APIs, haz lo siguiente: Google Cloud

  1. En la consola de Google Cloud , en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud .

    Ve al selector de proyectos

  2. Asegúrate de tener habilitada la facturación para tu proyecto. Obtén información para verificar si la facturación está habilitada en un proyecto.
  3. Instala y, luego, inicializa Google Cloud CLI (gcloud CLI).

    Nota: Si instalaste gcloud CLI, asegúrate de tener la versión más reciente ejecutando gcloud components update. Para acceder a los comandos de gcloud CLI de Memorystore for Valkey, necesitas al menos la versión 489.0.0 de gcloud CLI.

  4. Habilita la API de Memorystore para Valkey.
    API de Memorystore for Valkey
  5. Habilita la API de Network Connectivity.
    API de Network Connectivity
  6. Habilita la API de Service Consumer Management.
    API de Service Consumer Management

Asignar roles

Para configurar la autenticación básica basada en tokens para tus instancias, debes tener uno de estos roles de IAM en tu proyecto de Google Cloud :

  • roles/memorystore.admin (el rol de administrador de Memorystore)
  • roles/owner (el rol de propietario)
  • roles/editor (el rol de editor)

Administra la autenticación básica basada en tokens para instancias

Memorystore para Valkey admite las siguientes acciones para administrar la autenticación básica basada en tokens para instancias:

Crea una instancia con autenticación básica basada en tokens

Si creas una instancia con autenticación básica basada en tokens, tendrás un método ligero y ampliamente compatible para restringir el acceso de un usuario a la instancia.

Puedes crear la instancia con la CLI de gcloud.

Para crear una instancia que tenga habilitada la autenticación básica basada en tokens, usa el comando gcloud beta memorystore instances create.

gcloud beta memorystore instances create INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Realiza los siguientes reemplazos:

  • INSTANCE_ID: Es el ID de la instancia que deseas crear para usar la autenticación básica basada en tokens.
  • REGION: Es la región en la que deseas que se ubique la instancia.

Habilita la autenticación básica basada en tokens para una instancia

Si habilitas la autenticación básica basada en tokens para una instancia, tendrás un método ligero y ampliamente compatible para restringir el acceso de un usuario a la instancia.

El usuario default puede autenticarse en la instancia solo con su token. Todos los demás usuarios se autentican con un nombre de usuario y un token estándar. Para obtener más información, consulta Verifica la compatibilidad del cliente con la autenticación básica basada en tokens.

Habilitar la autenticación básica basada en tokens puede causar tiempo de inactividad para las aplicaciones que intentan crear conexiones nuevas, ya que Memorystore for Valkey requiere solicitudes autenticadas. Si bien las conexiones existentes no se verán afectadas, para utilizar la autenticación básica basada en tokens en cualquier intento de conexión posterior a la instancia, debes actualizar tus aplicaciones. Para obtener más información, consulta Cómo conectarse a una instancia con autenticación básica basada en tokens.

Puedes habilitar la autenticación básica basada en tokens para una instancia con la gcloud CLI.

Para habilitar la autenticación básica basada en tokens, usa el comando gcloud beta memorystore instances update.

gcloud beta memorystore instances update INSTANCE_ID \
--location=REGION \
--authorization-mode=token-auth

Realiza los siguientes reemplazos:

  • INSTANCE_ID: ID de la instancia para la que deseas habilitar la autenticación básica basada en tokens
  • REGION: Es la región en la que se encuentra la instancia.

Crea un usuario de autenticación básica basada en tokens para una instancia

Al crear un usuario de autenticación básica basada en tokens para una instancia, configuras la instancia para permitir la autenticación multiusuario. Después de que el usuario accede inicialmente, este modo de autenticación actúa como una credencial segura y revocable para las conexiones nuevas. El usuario puede seguir usando el token de autenticación hasta que lo borre o se quite al usuario.

Puedes crear un usuario básico de autenticación basada en tokens con la CLI de gcloud.

Para crear el usuario, usa el comando gcloud beta memorystore instances create-token-auth-user.

gcloud beta memorystore instances create-token-auth-user INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Realiza los siguientes reemplazos:

  • INSTANCE_ID: Es el ID de la instancia para la que deseas crear un usuario de autenticación básica basada en tokens.
  • REGION: Es la región en la que se encuentra la instancia.
  • USERNAME: El nombre de usuario

Enumera los usuarios de autenticación básica basada en tokens para una instancia

Puedes recuperar una lista de usuarios básicos de autenticación basada en tokens para una instancia con la gcloud CLI.

Para enumerar los usuarios, usa el comando gcloud beta memorystore instances token-auth-users list.

gcloud beta memorystore instances token-auth-users list \
--instance=INSTANCE_ID \
--location=REGION

Realiza los siguientes reemplazos:

  • INSTANCE_ID: Es el ID de la instancia para la que deseas recuperar una lista de usuarios de autenticación básica basada en tokens.
  • REGION: Es la región en la que se encuentra la instancia.

Consulta información sobre un usuario de autenticación básica basada en tokens

Puedes ver información sobre un usuario de autenticación básica basada en tokens con la gcloud CLI.

Para ver información sobre el usuario, usa el comando gcloud beta memorystore instances token-auth-users describe.

gcloud beta memorystore instances token-auth-users describe USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario del usuario de autenticación básica basada en tokens sobre el que deseas ver información.
  • INSTANCE_ID: Es el ID de la instancia en la que el usuario puede autenticarse.
  • REGION: Es la región en la que se encuentra la instancia.

Cómo borrar un usuario de autenticación básica basada en tokens de una instancia

Si borras un usuario de autenticación básica basada en tokens de una instancia, revocas los derechos de acceso del usuario a la instancia.

Puedes borrar un usuario de autenticación básica basada en tokens de una instancia con la CLI de gcloud.

Para borrar el usuario, usa el comando gcloud beta memorystore instances token-auth-users delete.

gcloud beta memorystore instances token-auth-users delete USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario de la autenticación básica basada en tokens.
  • INSTANCE_ID: Es el ID de la instancia de la que deseas borrar al usuario.
  • REGION: Es la región en la que se encuentra la instancia.

En el caso del usuario que borras, Memorystore para Valkey no finaliza las conexiones existentes. Para finalizar estas conexiones, ejecuta el siguiente comando en todos los nodos de la instancia:

CLIENT KILL USER USERNAME

Administra la autenticación básica basada en tokens para los usuarios

Memorystore for Valkey admite las siguientes acciones para administrar la autenticación básica basada en tokens para los usuarios:

Crea un token de autenticación para un usuario

Si creas un token de autenticación para un usuario, puedes rotar el token existente del usuario sin causar tiempo de inactividad en tus aplicaciones.

Puedes crear un token de autenticación para un usuario con la CLI de gcloud.

Para crear el usuario, usa el comando gcloud beta memorystore instances token-auth-users create-auth-token.

gcloud beta memorystore instances token-auth-users create-auth-token USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario para el que deseas crear un token de autenticación.
  • INSTANCE_ID: ID de la instancia a la que el usuario puede acceder con el token
  • REGION: Es la región en la que se encuentra la instancia.

Enumera los tokens de autenticación de un usuario

Puedes recuperar una lista de tokens de autenticación para un usuario con la CLI de gcloud.

Para enumerar los tokens, usa el comando gcloud beta memorystore instances token-auth-users auth-tokens list.

gcloud beta memorystore instances token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--instance=INSTANCE_ID \
--location=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario al que pertenecen los tokens de autenticación.
  • INSTANCE_ID: Es el ID de la instancia a la que el usuario puede acceder con los tokens de autenticación.
  • REGION: Es la región en la que se encuentra la instancia.

Cómo ver información sobre un token de autenticación para un usuario

Puedes ver información sobre un token de autenticación de un usuario con la CLI de gcloud.

Para ver la información, usa el comando gcloud beta memorystore instances token-auth-users auth-tokens describe.

gcloud beta memorystore instances token-auth-users auth-tokens describe AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Realiza los siguientes reemplazos:

  • AUTH_TOKEN: Es el nombre del token de autenticación sobre el que deseas ver información.
  • INSTANCE_ID: ID de la instancia a la que el usuario puede acceder con el token
  • REGION: Es la región en la que se encuentra la instancia.
  • USERNAME: El nombre de usuario al que pertenece el token de autenticación

Borra un token de autenticación de un usuario

Borrar un token de autenticación de un usuario es una acción de seguridad crítica que invalida el token.

Puedes borrar un token de autenticación de un usuario con la CLI de gcloud.

Para borrar el token, usa el comando gcloud beta memorystore instances token-auth-users auth-tokens delete.

gcloud beta memorystore instances token-auth-users auth-tokens delete AUTH_TOKEN \
--instance=INSTANCE_ID \
--location=REGION \
--token-auth-user=USERNAME

Realiza los siguientes reemplazos:

  • AUTH_TOKEN: Es el nombre del token de autenticación que deseas borrar del usuario.
  • INSTANCE_ID: Es el ID de la instancia a la que deseas impedir que el usuario acceda borrando el token.
  • REGION: Es la región en la que se encuentra la instancia.
  • USERNAME: Es el nombre de usuario del usuario que tiene un token que deseas borrar.

Conéctate a una instancia con la autenticación básica basada en tokens

Puedes usar los siguientes métodos para conectarte a una instancia con la autenticación básica basada en tokens:

  • Cadena del identificador uniforme de recursos (URI): Esta cadena única con formato se usa por conveniencia, ya que toda la información de conexión necesaria (por ejemplo, el nombre de usuario y el token de autenticación del usuario, y la dirección IP y el nombre de host de la instancia) se incluye en una sola cadena.
  • Marcas: Este método es más adecuado para el uso individual de la herramienta de línea de comandos, la creación de secuencias de comandos o los entornos en los que la configuración se divide en variables de entorno separadas con varios argumentos independientes.

En las siguientes secciones, se explica cada método de conexión.

Usa una cadena de URI

Para conectarte desde una VM de Compute Engine o un entorno compatible con una cadena de URI, usa el siguiente comando:

valkey-cli -u
redis://USERNAME:TOKEN@IP_ADDRESS:PORT

Realiza los siguientes reemplazos:

  • USERNAME: El nombre de usuario del usuario que intenta conectarse a la instancia
  • TOKEN: Es el token de autenticación del usuario.
  • IP_ADDRESS: La dirección IP de la instancia
  • PORT: Es el número de puerto reservado para la instancia.

Usa marcas

Para conectarte desde una VM de Compute Engine o un entorno compatible con marcas, usa el siguiente comando:

valkey-cli --user USERNAME -a TOKEN -h IP_ADDRESS -p PORT

Realiza los siguientes reemplazos:

  • USERNAME: El nombre de usuario del usuario que intenta conectarse a la instancia
  • TOKEN: Es el token de autenticación del usuario.
  • IP_ADDRESS: La dirección IP de la instancia
  • PORT: Es el número de puerto reservado para la instancia.

Cómo rotar el token de autenticación de un usuario sin tiempo de inactividad

Para rotar el token de autenticación de un usuario sin causar tiempo de inactividad en tus aplicaciones, haz lo siguiente:

  1. Crea un token de autenticación adicional para el usuario: Memorystore for Valkey genera un segundo token válido. Ambos tokens son válidos.
  2. Actualiza tus aplicaciones: Actualiza tus aplicaciones para que usen el token nuevo.
  3. Borra el token de autenticación del usuario: Memorystore for Valkey quita el primer token. El usuario solo puede usar el segundo token para autenticarse en tus aplicaciones.

Registros de acceso para la autenticación básica basada en tokens

Memorystore para Valkey genera registros de auditoría de actividad del administrador y de acceso a los datos para las operaciones asociadas con tokens de autenticación y usuarios. Para obtener más información sobre estos registros de auditoría, consulta Supervisa el acceso con registros de auditoría.