Utenti, privilegi e ruoli
Questo argomento fornisce una panoramica del controllo degli accessi basato sui ruoli (RBAC) in Milvus, illustrando le definizioni e le relazioni tra utenti, ruoli, oggetti e privilegi.
La figura seguente illustra la relazione tra oggetti, privilegi, ruoli e utenti.
utenti_e_ruoli
Concetti chiave
Per gestire il controllo degli accessi alle risorse Milvus, è importante comprendere i componenti chiave del RBAC: tipi di oggetti, nomi di oggetti, utenti, ruoli e privilegi.
Tipo di oggetto: la categoria dell'oggetto per il quale viene assegnato un privilegio. Il tipo di oggetto può essere:
Global: Oggetti a livello di sistema, che consentono all'utente di eseguire azioni che influiscono su tutte le raccolte, gli utenti o le impostazioni a livello di sistema.Collection: Oggetti specifici della collezione, che consentono all'utente di eseguire azioni quali la creazione di indici, il caricamento di dati, l'inserimento o l'eliminazione di dati e l'interrogazione di dati all'interno di una collezione specifica.User: Oggetti relativi alla gestione degli utenti, che consentono all'utente di gestire le credenziali e i ruoli degli utenti del database, come l'aggiornamento delle credenziali o la visualizzazione dei dettagli dell'utente.
Nome dell'oggetto: il nome specifico dell'oggetto per cui controllare l'accesso. Ad esempio:
- Se il tipo di oggetto è
Global, il nome dell'oggetto deve essere impostato sul carattere jolly (*), che indica tutti gli oggetti del tipo specificato. - Se il tipo di oggetto è
Collection, il nome dell'oggetto è il nome di un insieme. - Se il tipo di oggetto è
User, il nome dell'oggetto è il nome di un utente del database.
- Se il tipo di oggetto è
Utente: una persona o un'applicazione che interagisce con Milvus, che consiste in un nome utente e in una password corrispondente.
Privilegio: definisce le azioni che possono essere eseguite e le risorse a cui si può accedere. I privilegi non sono concessi direttamente agli utenti, ma sono assegnati ai ruoli.
Ruolo: definisce l'insieme dei privilegi che un utente ha per determinati oggetti. Una volta che un ruolo è legato a un utente, l'utente eredita tutti i privilegi concessi a quel ruolo.
Esempio: Concessione di privilegi
Il seguente frammento di codice mostra come concedere un privilegio CreateIndex a un ruolo su una collezione specifica:
milvusClient.grant_privilege(
role_name="CUSTOM_ROLE_NAME",
object_type="Collection", # Valid value: Global, Collection or User.
privilege="CreateIndex", # See the table below for valid privilege names and relevant API descriptions.
object_name="YOUR_COLLECTION_NAME" # The name of the collection to grant access to. Use "*" to grant access to all collections.
)
GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder()
.roleName("roleName")
.objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections.
.objectType("Collection") // Valid value: Global, Collection or User.
.privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions.
.build();
client.grantPrivilege(grantPrivilegeReq);
milvusClient.grantPrivilege({
roleName: 'roleName',
object: 'Collection', // Valid value: Global, Collection or User.
objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections.
privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions.
})
Per ulteriori informazioni sulle API relative ai privilegi, consultare grant_privilege e revoke_privilege.
Per ottenere maggiori informazioni sulle API legate ai privilegi, fare riferimento a grantPrivilege e revokePrivilege.
Per ottenere maggiori informazioni sulle API relative ai privilegi, fare riferimento a grantPrivilege e revokePrivilege.
Utenti e ruoli predefiniti
Milvus crea per default un utente root con una password predefinita Milvus. All'utente root vengono concessi i privilegi admin, il che significa che questo utente root può avere accesso a tutte le risorse ed eseguire tutte le azioni.
Se un utente è associato al ruolo public, ha diritto ai seguenti privilegi:
DescribeCollectionShowCollectionsIndexDetail
Elenco dei tipi di oggetto e dei privilegi
La tabella seguente elenca i valori che si possono scegliere quando si abilita RBAC.
| Tipo di oggetto | Nome del privilegio | Descrizione dell'API pertinente sul lato client |
|---|---|---|
| Raccolta | CreaIndex | CreaIndex |
| Raccolta | Indice di caduta | Indice di caduta |
| Raccolta | IndiceDettaglio | DescribeIndex/GetIndexState/GetIndexBuildProgress |
| Raccolta | Carico | LoadCollection/GetLoadingProgress/GetLoadState |
| Raccolta | OttenereCaricamentoProgresso | Ottenere l'avanzamento del caricamento |
| Raccolta | Stato di caricamento | Ottieni stato di carico |
| Raccolta | Rilascio | RilascioCollezione |
| Raccolta | Inserire | Inserire |
| Raccolta | Cancellare | Cancellare |
| Raccolta | Upsert | Inserisci |
| Raccolta | Ricerca | Ricerca |
| Raccolta | Sciacquare | Flush/GetFlushState |
| Raccolta | GetFlushState | Ottenere lo stato di risciacquo |
| Raccolta | Domanda | Interrogazione |
| Raccolta | OttieniStatistiche | OttenereStatistiche della collezione |
| Raccolta | Compattazione | Compatto |
| Raccolta | Importazione | Inserimento/importazione massiva |
| Raccolta | Bilanciamento del carico | Bilanciamento del carico |
| Raccolta | CreaPartizione | CreaPartizione |
| Raccolta | Partizione di caduta | Partizione di caduta |
| Raccolta | MostraPartizioni | MostraPartizioni |
| Collezione | HaPartizione | HaPartizione |
| Globale | Tutti | Tutti i permessi delle operazioni API in questa tabella |
| Globale | CreaCollezione | CreaCollezione |
| Globale | Raccogliere | Raccolta di gocce |
| Globale | DescrivereCollezione | DescriviCollezione |
| Globale | Mostra Collezioni | Mostra Collezioni |
| Globale | RinominaCollezione | RinominaCollezione |
| Globale | ArrossisciTutti | SciacquareTutti |
| Globale | CreaProprietà | CreaUtente CreaRuolo |
| Globale | EliminaProprietà | EliminaCredenziale EliminaRuolo |
| Globale | SelezionaProprietà | SelezionaRuolo/SelezionaGrant |
| Globale | GestisciProprietà | Gestire il ruolo dell'utente Gestire il privilegio |
| Globale | CreaGruppoRisorse | CreaGruppoRisorse |
| Globale | Abbandona il gruppo di risorse | Gruppo di risorse da sganciare |
| Globale | Descrivere il gruppo di risorse | DescriviGruppoRisorse |
| Globale | Elenco dei gruppi di risorse | ElencoGruppi di risorse |
| Globale | Nodo di trasferimento | Nodo di trasferimento |
| Globale | TransferReplica | Replica di trasferimento |
| Globale | CreaDatabase | CreaDatabase |
| Globale | Rilasciare il database | DropDatabase |
| Globale | ElencoDatabase | ElencoDatabase |
| Globale | CreaAlias | CreaAlias |
| Globale | EliminaLias | LasciaLias |
| Globale | DescriviAlias | DescriviAlias |
| Globale | ElencoAlias | ElencoClienti |
| Utente | AggiornaUtente | AggiornaCredenziale |
| Utente | SelezionaUtente | SelezionaUtente |
Cosa fare dopo
- Imparare ad abilitare RBAC.