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 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 mínimos de recursos 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 for Redis Cluster.

Beneficios

Cuando usas la autenticación básica basada en tokens, obtienes 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 están protegidos. 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 default superusuario mantiene los mismos privilegios que se le 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 directo 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ásica basada en tokens de un usuario en el código de la aplicación. En su lugar, almacénalas en Secret Manager y recupéralas en el tiempo de ejecución.

    Secret Manager proporciona un almacén centralizado y encriptado para las credenciales de 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 no se envíen en 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 de esta sección.

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

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

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

AUTH TOKEN

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

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

AUTH USERNAME TOKEN

Para 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 Google Cloud consola de, Google Cloud CLI y las APIs

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

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

    Ir al selector de proyectos

  2. Asegúrate de tener habilitada la facturación para tu proyecto. Obtén información sobre cómo 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, ejecuta gcloud components update para asegurarte de tener la versión más reciente. 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 Google Cloud proyecto:

  • 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 liviano y ampliamente compatible para restringir el acceso de un usuario al clúster.

Puedes crear el clúster con gcloud CLI.

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

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

Cuando habilitas la autenticación básica basada en tokens para un clúster, tienes un método liviano 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 porque Memorystore for Redis Cluster requiere solicitudes autenticadas. Aunque las conexiones existentes no se ven 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 gcloud CLI.

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

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

Cuando creas 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 de autenticación básica basada en tokens con gcloud CLI.

Para crear el usuario, usa el gcloud beta redis clusters create-token-auth-user comando.

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: Es el nombre de usuario del usuario.

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

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

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

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 de autenticación básica 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 gcloud CLI.

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

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

Cuando 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 gcloud CLI.

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

gcloud beta redis clusters token-auth-users delete 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.
  • CLUSTER_ID: Es el ID del clúster del que deseas borrar al usuario.
  • REGION: Es la región en la que se encuentra el clúster.

Para el 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 usuarios

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

Crea un token de autenticación para un usuario

Cuando 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 gcloud CLI.

Para crear el usuario, usa el gcloud beta redis clusters token-auth-users create-auth-token comando.

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 del 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 para un usuario

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

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

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 del 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.

Consulta información sobre un token de autenticación para un usuario

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

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

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: Es el nombre de usuario del 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 fundamental que invalida el token.

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

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

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 evitar 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 de identificador uniforme de recursos (URI): Esta cadena única y 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 encuentra 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 separados.

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 a l clúster.
  • TOKEN: Es el token de autenticación del usuario.
  • IP_ADDRESS: Es 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 a l clúster.
  • TOKEN: Es el token de autenticación del usuario.
  • IP_ADDRESS: Es la dirección IP del clúster.
  • PORT: Es el número de puerto reservado para el clúster.

Rota 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 for Redis Cluster genera registros de auditoría de actividad del administrador y de acceso a los datos para las operaciones asociadas con los tokens de autenticación y los usuarios. Para obtener más información sobre estos registros de auditoría, consulta Supervisa el acceso con registros de auditoría.