Configuración del control de acceso basado en roles con la directiva de acceso a datos
La administración del acceso a la instancia de Azure Cache for Redis es fundamental para garantizar que los usuarios adecuados tengan acceso al conjunto correcto de datos y comandos. En la versión 6 de Redis, se introdujo la Lista de control de acceso (ACL). La ACL limita qué usuarios pueden ejecutar determinados comandos y las claves a las que puede tener acceso un usuario. Por ejemplo, puede prohibir que usuarios específicos eliminen claves en la memoria caché mediante el comando DEL.
Azure Cache for Redis ahora integra esta funcionalidad de ACL con Microsoft Entra ID para permitirle configurar las directivas de acceso a datos para la entidad de servicio y la identidad administrada de la aplicación.
Azure Cache for Redis ofrece tres directivas de acceso integradas: Propietario de datos, Colaborador de datos y Lector de datos. Si las directivas de acceso integradas no satisfacen los requisitos de aislamiento y protección de datos, puede crear y usar su propia directiva de acceso a datos personalizada, como se describe en Configuración de una directiva de acceso a datos personalizada.
Ámbito de disponibilidad
Nivel | Básico, Estándar, Premium | Enterprise o Enterprise Flash |
---|---|---|
Disponibilidad | Sí | No |
Requisitos previos y limitaciones
- Las directivas de acceso a datos y la ACL de Redis no se admiten en las instancias de Azure Cache for Redis que ejecutan la versión 4 de Redis.
- La autenticación y autorización de Microsoft Entra solo se admiten para las conexiones SSL.
- Algunos comandos de Redis están bloqueados.
Permisos para la directiva de acceso a datos
Como se documenta en Lista de control de acceso de Redis, la ACL en la versión 6.0 de Redis permite configurar permisos de acceso para tres áreas:
Categorías de comandos
Redis ha creado agrupaciones de comandos, como comandos administrativos, comandos peligrosos, etc., para facilitar la configuración de permisos en un grupo de comandos.
- Usar
+@commandcategory
para permitir una categoría de comandos - Usar
-@commandcategory
para no permitir una categoría de comandos
Estos comandos siguen bloqueados. Los siguientes grupos son categorías de comandos útiles que admite Redis. Para obtener más información sobre las categorías de comandos, vea la lista completa bajo el encabezado Categorías de comandos.
admin
- Comandos administrativos. Las aplicaciones normales nunca necesitan usarlos, como
MONITOR
,SHUTDOWN
y otras.
- Comandos administrativos. Las aplicaciones normales nunca necesitan usarlos, como
dangerous
- Comandos potencialmente peligrosos. Cada uno debe considerarse con cuidado por diversos motivos, incluidos
FLUSHALL
,RESTORE
,SORT
,KEYS
,CLIENT
,DEBUG
,INFO
,CONFIG
y otros.
- Comandos potencialmente peligrosos. Cada uno debe considerarse con cuidado por diversos motivos, incluidos
keyspace
- Escribir o leer desde claves, bases de datos o sus metadatos de una manera independiente del tipo, incluidos
DEL
,RESTORE
,DUMP
,RENAME
,EXISTS
,DBSIZE
,KEYS
,EXPIRE
,TTL
,FLUSHALL
y mucho más. Los comandos que pueden modificar el espacio de claves, la clave o los metadatos también tienen la categoría de escritura. Los comandos que solo leen el espacio de claves, la clave o los metadatos tienen la categoría de lectura.
- Escribir o leer desde claves, bases de datos o sus metadatos de una manera independiente del tipo, incluidos
pubsub
- Comandos relacionados con PubSub.
read
- Lectura de claves, valores o metadatos. Los comandos que no interactúan con las claves, no tienen lectura ni escritura.
set
- Tipo de datos: conjuntos relacionados.
sortedset
- Tipo de datos: conjuntos ordenados relacionados.
stream
- Tipo de datos: flujos relacionados.
string
- Tipo de datos: cadenas relacionadas.
write
- Escribir en claves (valores o metadatos).
Comandos
Los comandos permiten controlar qué comandos específicos podrá ejecutar un usuario de Redis determinado.
- Use
+command
para permitir un comando. - Usar
-command
para no permitir un comando.
Teclas
Las claves permiten controlar el acceso a claves específicas o grupos de claves almacenadas en la memoria caché.
Use
~<pattern>
para proporcionar un patrón para las claves.Use
~*
oallkeys
para indicar que los permisos de categoría de comandos se aplican a todas las claves de la instancia de caché.
Cómo especificar permisos
Para especificar permisos, debe crear una cadena para guardarla como directiva de acceso personalizada y, a continuación, asignar la cadena al usuario de Azure Cache for Redis.
La lista siguiente contiene algunos ejemplos de cadenas de permisos para varios escenarios.
Permitir que la aplicación ejecute todos los comandos en todas las claves
Cadena de permisos:
+@all allkeys
Permitir que la aplicación ejecute solo comandos de lectura
Cadena de permisos:
+@read ~*
Permitir que la aplicación ejecute la categoría de comandos de lectura y establezca el comando en las claves con el prefijo
Az
.Cadena de permisos:
+@read +set ~Az*
Configuración de una directiva de acceso a datos personalizada para la aplicación
En Azure Portal, seleccione la instancia de Azure Cache for Redis en la que quiere configurar la autenticación basada en tokens de Microsoft Entra.
En el menú Recurso, seleccione Configuración de acceso a datos.
Seleccione Agregar y elija Nueva directiva de acceso.
Proporcione un nombre para la directiva de acceso.
Configure los permisos según sus requisitos.
Para agregar un usuario a la directiva de acceso mediante Microsoft Entra ID, primero debe habilitar Microsoft Entra ID seleccionando Autenticación en el menú Recurso.
Seleccione Habilitar autenticación de Microsoft Entra como pestaña en el panel de trabajo.
Si aún no está comprobada, active la casilla con la etiqueta Habilitar la autenticación de Microsoft Entra y seleccione Aceptar. Después, seleccione Guardar.
Se muestra un cuadro de diálogo emergente en el que se le pregunta si desea actualizar la configuración e informa de que tarda varios minutos. Seleccione Sí.
Importante
Una vez completada la operación de habilitación, los nodos de la instancia de caché se reinician para cargar la nueva configuración. Se recomienda realizar esta operación durante la ventana de mantenimiento o fuera del horario comercial pico. Esta operación puede tardar hasta 30 minutos.
Configuración del cliente de Redis para usar Microsoft Entra ID
Ahora que ha configurado la directiva de acceso de usuario y datos de Redis para configurar el control de acceso basado en roles, es necesario actualizar el flujo de trabajo de cliente para admitir la autenticación mediante un usuario o una contraseña específicos. Para obtener información sobre cómo configurar la aplicación cliente para conectarse a la instancia de caché como un usuario específico de Redis, consulte Configuración del cliente de Redis para usar Microsoft Entra.