Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
De forma predeterminada, cada usuario o entidad de servicio que agregue a la caché de Redis administrada de Azure obtiene acceso completo a todos los comandos y claves. A partir de la versión 2026-05-01-previewde API, puede asignar permisos de ACL de Redis personalizados a usuarios individuales especificando una cadena de acceso en la asignación de directiva de acceso.
Las cadenas de acceso personalizadas (versión preliminar) permiten controlar qué comandos puede ejecutar un usuario y a qué claves puede acceder. Este control permite el control de acceso a datos por usuario específico para la memoria caché.
Prerequisites
- Una caché de Azure Managed Redis. Para crear uno, consulte Quickstart: Creación de una instancia de Redis administrada de Azure.
- Acceso a la API REST con la versión de la API
2026-05-01-preview.
Limitaciones
- Las cadenas de acceso personalizadas requieren una versión
2026-05-01-previewde API o posterior. Las versiones anteriores de la API siempre asignan acceso completo. - Cada usuario puede tener una asignación de directiva de acceso por base de datos.
- La comparación de cadenas de acceso distingue entre mayúsculas y minúsculas porque los patrones de claves de Redis distinguen entre mayúsculas y minúsculas.
- Algunos comandos de Redis están bloqueados en Azure Managed Redis independientemente de la configuración de ACL. Para obtener más información, consulte Comandos bloqueados.
Ámbito de disponibilidad
| Nivel | Availability |
|---|---|
| Equilibrado (serie B) | Sí |
| Optimizado para memoria (serie M) | Sí |
| Optimizado para cómputo (serie X) | Sí |
| Optimizado para Flash (serie F) | Sí |
Permisos de ACL de Redis
Azure Managed Redis usa Sintaxis de ACL deRedis para definir permisos de acceso. Una cadena de acceso combina los permisos de comando y los patrones de clave para controlar lo que un usuario puede hacer.
-
Categorías de comandos: use
+@<category>para permitir o-@<category>no permitir un grupo de comandos (por ejemplo,+@read,+@write,+@all). -
Comandos individuales: use
+<command>o-<command>para permitir o no permitir comandos específicos (por ejemplo,+set,-flushall). -
Patrones clave: use
~<pattern>para restringir las claves a las que puede acceder un usuario. Use~*para todas las claves. Puede combinar varios patrones.
Para obtener la lista completa de categorías de comandos y detalles de sintaxis, consulte la documentación de ACL de Redis.
Ejemplos
| Cadena de acceso | Descripción |
|---|---|
+@all ~* |
Acceso total a todos los comandos y todas las claves (valor predeterminado) |
+@all ~user:* |
Todos los comandos, pero solo en las teclas que coinciden con user:* |
+@read ~cache:* |
Acceso de solo lectura a las claves que coinciden con cache:* |
+@read +@write ~app:* ~session:* |
Acceso de lectura y escritura para las claves que coincidan con app:* o session:* |
+@read +set +get ~data:* |
Comandos de lectura más SET y GET en claves que coincidan con data:* |
Note
Los patrones de clave distinguen mayúsculas de minúsculas. Por ejemplo, ~User:* y ~user:* coinciden con diferentes conjuntos de claves.
Asignación de permisos de acceso personalizados
Azure portal
En el portal de Azure, vaya a su instancia de Azure Managed Redis.
En el menú Recurso, seleccione Autenticación.
En la pestaña Microsoft Entra Autenticación, seleccione Usuario o entidad de servicio y seleccione + Seleccionar miembro.
En el panel Seleccionar miembro , busque y seleccione el usuario o la entidad de servicio.
En Directiva de acceso, seleccione Directiva de acceso a datos personalizada (versión preliminar) y escriba la cadena de acceso (por ejemplo,
+@all -@write ~*).Seleccione Asignar.
Si la cadena de acceso contiene sintaxis de ACL de Redis no válida, se produce un error en la asignación. La lista Usuarios de Redis muestra un banner que indica el fallo, y la entrada del usuario muestra un estado de aprovisionamiento Error con un vínculo a Ver detalles del error.
Plantilla ARM
Guarde la plantilla siguiente como AccessPolicyAssignment.json, reemplazando los valores de parámetro por los suyos propios:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"cacheName": {
"defaultValue": "{CacheName}",
"type": "String"
},
"assignmentName": {
"defaultValue": "{AssignmentName}",
"type": "String"
},
"objectId": {
"defaultValue": "{ObjectId}",
"type": "String"
},
"accessString": {
"defaultValue": "+@all ~*",
"type": "String"
}
},
"resources": [
{
"type": "Microsoft.Cache/redisEnterprise/databases/accessPolicyAssignments",
"apiVersion": "2026-05-01-preview",
"name": "[concat(parameters('cacheName'), '/default/', parameters('assignmentName'))]",
"properties": {
"accessPolicyName": "default",
"accessString": "[parameters('accessString')]",
"user": {
"objectId": "[parameters('objectId')]"
}
}
}
]
}
Implemente la plantilla mediante el comando az deployment group create CLI de Azure:
az deployment group create \
--resource-group myResourceGroup \
--template-file AccessPolicyAssignment.json \
--parameters cacheName=myCache assignmentName=myAssignment \
objectId=aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb \
accessString="+@read ~cache:*"
REST API
También puede usar la API REST directamente:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Cache/redisEnterprise/{cacheName}/databases/{databaseName}/accessPolicyAssignments/{assignmentName}?api-version=2026-05-01-preview
{
"properties": {
"accessPolicyName": "default",
"accessString": "+@read ~cache:*",
"user": {
"objectId": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb"
}
}
}
Si omite accessString, el usuario recibe acceso total (+@all ~*).
Actualizar los permisos de un usuario
Para cambiar los permisos de acceso de un usuario, ejecute el mismo comando create o PUT con un valor diferente accessString . El rol del usuario en Redis se actualiza en su lugar sin desconectar al usuario. La ACL personalizada anterior y los objetos de rol anteriores se eliminan automáticamente.
Eliminación del acceso de un usuario
Elimine la asignación de directiva de acceso para revocar el acceso de un usuario:
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Cache/redisEnterprise/{cacheName}/databases/{databaseName}/accessPolicyAssignments/{assignmentName}?api-version=2026-05-01-preview
La eliminación de la asignación de un usuario no afecta a otros usuarios en la misma caché.
Gestión de errores
Si proporciona una cadena ACL de Redis no válida, el aprovisionamiento falla con un error InvalidAccessString que incluye el mensaje de error de Redis. Por ejemplo:
{
"provisioningState": "Failed",
"provisioningError": {
"code": "InvalidAccessString",
"message": "Failed to provision access string '+@nonexistent ~*': ERR Error in ACL SETUSER modifier '+@nonexistent': Unknown command or category name in ACL",
"target": "properties.accessString"
}
}
Los usuarios existentes en la memoria caché no se ven afectados cuando se produce un error en una nueva asignación.