Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per impostazione predefinita, ogni utente o entità servizio aggiunta alla cache redis gestita Azure ottiene l'accesso completo a tutti i comandi e le chiavi. A partire dalla versione 2026-05-01-previewdell'API , è possibile assegnare autorizzazioni ACL Redis personalizzate a singoli utenti specificando una stringa di accesso nell'assegnazione dei criteri di accesso.
Le stringhe di accesso personalizzate (anteprima) consentono di controllare quali comandi un utente può eseguire e quali chiavi possono accedere. Questo controllo abilita il controllo di accesso ai dati per utente con granularità fine per la cache.
Prerequisiti
- Cache Redis gestita di Azure. Per crearne uno, vedere Quickstart: Creare un'istanza di Redis gestita Azure.
- Accesso all'API REST con la versione
2026-05-01-previewdell'API .
Limitations
- Le stringhe di accesso personalizzate richiedono la versione
2026-05-01-previewdell'API o versioni successive. Le versioni precedenti dell'API assegnano sempre l'accesso completo. - Ogni utente può avere un'assegnazione di criteri di accesso per ogni database.
- Il confronto delle stringhe di accesso fa distinzione tra maiuscole e minuscole perché i pattern di chiave di Redis fanno distinzione tra maiuscole e minuscole.
- Alcuni comandi redis vengono bloccati in Azure Redis gestito indipendentemente dalla configurazione ACL. Per altre informazioni, vedere Comandi bloccati.
Ambito della disponibilità
| Tier | Availability |
|---|---|
| Bilanciato (serie B) | Sì |
| Ottimizzato per la memoria (serie M) | Sì |
| Ottimizzato per il calcolo (serie X) | Sì |
| Flash Optimized (serie F) | Sì |
Autorizzazioni ACL Redis
Azure Managed Redis usa la sintassi Redis ACL per definire le autorizzazioni di accesso. Una stringa di accesso combina le autorizzazioni dei comandi e i modelli di chiave per controllare le operazioni che un utente può eseguire.
-
Categorie di comandi: usare
+@<category>per consentire o-@<category>impedire un gruppo di comandi , ad esempio+@read,+@write,+@all. -
Singoli comandi: usare
+<command>o-<command>per consentire o impedire comandi specifici ,ad esempio+set,-flushall. -
Modelli chiave: usare
~<pattern>per limitare le chiavi a cui un utente può accedere. Usare~*per tutte le chiavi. È possibile combinare più modelli.
Per l'elenco completo delle categorie di comandi e dei dettagli della sintassi, vedere la documentazione di ACL di Redis.
Examples
| Stringa di accesso | Descrizione |
|---|---|
+@all ~* |
Accesso completo a tutti i comandi e a tutte le chiavi (impostazione predefinita) |
+@all ~user:* |
Tutti i comandi, ma solo sui tasti che corrispondono a user:* |
+@read ~cache:* |
Accesso in sola lettura alle chiavi corrispondenti cache:* |
+@read +@write ~app:* ~session:* |
Accesso in lettura e scrittura alle chiavi corrispondenti a app:* o session:* |
+@read +set +get ~data:* |
Leggere i comandi più SET e GET sui tasti corrispondenti data:* |
Note
I modelli chiave fanno distinzione tra maiuscole e minuscole. Ad esempio, ~User:* e ~user:* corrispondono a set di chiavi diversi.
Assegnare autorizzazioni di accesso personalizzate
Azure portal
Nel portale di Azure, passare all'istanza di Redis gestite di Azure.
Scegliere Autenticazione dal menu Risorsa.
Nella scheda Microsoft Entra Autenticazione selezionare Utente o entità servizio e quindi selezionare + Seleziona membro.
Nel pannello Seleziona membro, cercate e selezionate l'utente o l'entità servizio.
In Criteri di accesso selezionare Criteri di accesso ai dati personalizzati (anteprima) e immettere la stringa di accesso , ad esempio
+@all -@write ~*.Seleziona Assegna.
Se la stringa di accesso contiene una sintassi ACL redis non valida, l'assegnazione ha esito negativo. L'elenco Utenti Redis mostra un banner che indica l'operazione non riuscita e la voce utente mostra uno stato di provisioning Non riuscito con un collegamento Vedi i dettagli dell'errore.
ARM template
Salvare il modello seguente come AccessPolicyAssignment.json, sostituendo i valori dei parametri con i propri:
{
"$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')]"
}
}
}
]
}
Distribuire il modello usando il comando az deployment group create interfaccia della riga di comando di 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
È anche possibile usare direttamente l'API REST:
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"
}
}
}
Se si omette accessString, l'utente riceve l'accesso completo (+@all ~*).
Aggiornare le autorizzazioni di un utente
Per modificare le autorizzazioni di accesso di un utente, eseguire lo stesso comando create o PUT con un valore diverso accessString . Il ruolo dell'utente in Redis viene aggiornato senza disconnettere l'utente. Gli oggetti ACL e ruolo personalizzati precedenti vengono puliti automaticamente.
Rimuovere l'accesso di un utente
Eliminare l'assegnazione dei criteri di accesso per revocare l'accesso di un utente:
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Cache/redisEnterprise/{cacheName}/databases/{databaseName}/accessPolicyAssignments/{assignmentName}?api-version=2026-05-01-preview
L'eliminazione dell'assegnazione di un utente non influisce sugli altri utenti nella stessa cache.
Gestione degli errori
Se si specifica una stringa di ACL Redis non valida, il provisioning ha esito negativo e viene visualizzato un InvalidAccessString errore che include il messaggio di errore redis. Per esempio:
{
"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"
}
}
Gli utenti già presenti nella cache non vengono influenzati se la creazione di una nuova assegnazione non riesce.