Protege el acceso a tus clústeres 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 clústeres en Memorystore for Redis Cluster. Como solución ligera, 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 Redis Cluster.

Beneficios

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

  • Flexibilidad: Para clústeres nuevos y existentes, habilita la autenticación en cualquier momento. Cuando habilitas la autenticación básica basada en tokens, tus clústeres son seguros. Para todas las conexiones nuevas, los usuarios deben proporcionar un token para autenticarse en tus clústeres.
  • 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 for Redis Cluster.

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 clústeres

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 uses 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 no se envíen como texto sin formato a través de la red.

Antes de comenzar

Antes de comenzar a proteger tus clústeres con la autenticación básica basada en tokens, completa los requisitos previos que se indican en 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 Redis.

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 Redis Cluster, necesitas al menos la versión 489.0.0 de gcloud CLI.

  4. Habilita la API de Memorystore for Redis Cluster.
    API de Memorystore for Redis Cluster
  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 clústeres, debes tener uno de estos roles de IAM en tu proyecto de Google Cloud :

  • roles/redis.admin (el rol de administrador de Redis)
  • roles/owner (el rol de propietario)
  • roles/editor (el rol de editor)

Administra la autenticación básica basada en tokens para clústeres

Memorystore for Redis Cluster admite las siguientes acciones para administrar la autenticación básica basada en tokens para clústeres:

Crea un clúster con autenticación básica basada en tokens

Cuando creas un clúster con autenticación básica basada en tokens, tienes un método ligero y ampliamente compatible para restringir el acceso de un usuario al clúster.

Puedes crear el clúster con la CLI de gcloud.

Para crear un clúster que tenga habilitada la autenticación básica basada en tokens, usa el comando gcloud beta redis clusters create.

gcloud beta redis clusters create CLUSTER_ID \
--region=REGION \
--auth-mode=token-auth

Realiza los siguientes reemplazos:

  • CLUSTER_ID: Es el ID del clúster 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 el clúster.

Habilita la autenticación básica basada en tokens para un clúster

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

El usuario default puede autenticarse en el clúster 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 Redis Cluster 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 al clúster, debes actualizar tus aplicaciones. Para obtener más información, consulta Conéctate a un clúster con la autenticación básica basada en tokens.

Puedes habilitar la autenticación básica basada en tokens para un clúster con la CLI de gcloud.

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

gcloud beta redis clusters update CLUSTER_ID \
--region=REGION \
--auth-mode=token-auth

Realiza los siguientes reemplazos:

  • CLUSTER_ID: Es el ID del clúster para el que deseas habilitar la autenticación básica basada en tokens.
  • REGION: Es la región en la que se encuentra el clúster.

Crea un usuario de autenticación básica basada en tokens para un clúster

Al crear un usuario de autenticación básica basada en tokens para un clúster, configuras el clúster 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 redis clusters create-token-auth-user.

gcloud beta redis clusters create-token-auth-user CLUSTER_ID \
--region=REGION \
--token-auth-user=USERNAME

Realiza los siguientes reemplazos:

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

Enumera los usuarios de autenticación básica basada en tokens para un clúster

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

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

gcloud beta redis clusters token-auth-users list \
--cluster=CLUSTER_ID \
--region=REGION

Realiza los siguientes reemplazos:

  • CLUSTER_ID: Es el ID del clúster para el que deseas recuperar una lista de usuarios básicos de autenticación basada en tokens.
  • REGION: Es la región en la que se encuentra el clúster.

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 redis clusters token-auth-users describe.

gcloud beta redis clusters token-auth-users describe USERNAME \
--cluster=CLUSTER_ID \
--region=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.
  • CLUSTER_ID: Es el ID del clúster al que el usuario puede autenticarse.
  • REGION: Es la región en la que se encuentra el clúster.

Borra un usuario de autenticación básica basada en tokens de un clúster

Si borras un usuario de autenticación básica basada en tokens de un clúster, revocas los derechos de acceso del usuario al clúster.

Puedes borrar un usuario de autenticación básica basada en tokens de un clúster con la CLI de gcloud.

Para borrar el usuario, usa el comando gcloud beta redis clusters token-auth-users delete.

gcloud beta redis clusters token-auth-users delete USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario de la autenticación básica basada en tokens.
  • CLUSTER_ID: ID del clúster del que deseas borrar el usuario
  • REGION: Es la región en la que se encuentra el clúster.

En el caso del usuario que borras, Memorystore for Redis Cluster no finaliza las conexiones existentes. Para finalizar estas conexiones, ejecuta el siguiente comando en todos los nodos del clúster:

CLIENT KILL USER USERNAME

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

Memorystore for Redis Cluster 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 redis clusters token-auth-users create-auth-token.

gcloud beta redis clusters token-auth-users create-auth-token USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario para el que deseas crear un token de autenticación.
  • CLUSTER_ID: Es el ID del clúster al que el usuario puede acceder con el token.
  • REGION: Es la región en la que se encuentra el clúster.

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 redis clusters token-auth-users auth-tokens list.

gcloud beta redis clusters token-auth-users auth-tokens list \
--token-auth-user=USERNAME \
--cluster=CLUSTER_ID \
--region=REGION

Realiza los siguientes reemplazos:

  • USERNAME: Es el nombre de usuario al que pertenecen los tokens de autenticación.
  • CLUSTER_ID: Es el ID del clúster al que el usuario puede acceder con los tokens de autenticación.
  • REGION: Es la región en la que se encuentra el clúster.

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 redis clusters token-auth-users auth-tokens describe.

gcloud beta redis clusters token-auth-users auth-tokens describe AUTH_TOKEN \
--cluster=CLUSTER_ID \
--region=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.
  • CLUSTER_ID: Es el ID del clúster al que el usuario puede acceder con el token.
  • REGION: Es la región en la que se encuentra el clúster.
  • 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 redis clusters token-auth-users auth-tokens delete.

gcloud beta redis clusters token-auth-users auth-tokens delete AUTH_TOKEN \
--cluster=CLUSTER_ID \
--region=REGION \
--token-auth-user=USERNAME

Realiza los siguientes reemplazos:

  • AUTH_TOKEN: Es el nombre del token de autenticación que deseas borrar del usuario.
  • CLUSTER_ID: Es el ID del clúster al que deseas impedir que el usuario acceda borrando el token.
  • REGION: Es la región en la que se encuentra el clúster.
  • USERNAME: Es el nombre de usuario del usuario que tiene un token que deseas borrar.

Conéctate a un clúster con la autenticación básica basada en tokens

Puedes usar los siguientes métodos para conectarte a un clúster 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 del usuario, y la dirección IP y el nombre de host del clúster) 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:

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

Realiza los siguientes reemplazos:

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

Usa marcas

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

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

Realiza los siguientes reemplazos:

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

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 Redis Cluster 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 Redis Cluster 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 Redis Cluster 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.