Autenticare l'accesso degli utenti
Questa guida spiega come gestire l'autenticazione degli utenti in Milvus, compresa l'abilitazione dell'autenticazione, la connessione come utente e la modifica delle credenziali dell'utente.
TLS e l'autenticazione utente sono due approcci di sicurezza distinti. Se avete abilitato sia l'autenticazione utente che il TLS nel vostro sistema Milvus, dovete fornire un nome utente, una password e il percorso del file del certificato. Per informazioni su come abilitare TLS, consultare Crittografia in transito.
I frammenti di codice di questa pagina utilizzano il nuovo MilvusClient (Python) per interagire con Milvus. I nuovi SDK MilvusClient per altri linguaggi saranno rilasciati nei prossimi aggiornamenti.
Abilitare l'autenticazione dell'utente
Per abilitare l'autenticazione dell'utente per il server Milvus, impostare common.security.authorizationEnabled su true nel file di configurazione di Milvus milvus.yaml
. Per ulteriori informazioni sulle configurazioni, consultare Configurazione di Milvus con Docker Compose.
...
common:
...
security:
authorizationEnabled: false
...
Per abilitare l'autenticazione dell'utente per il server Milvus, impostare authorizationEnabled su true nel file di configurazione di Milvus values.yaml
. Per ulteriori informazioni sulle configurazioni, fate riferimento a Configurare Milvus con Helm Charts.
...
extraConfigFiles:
user.yaml: |+
common:
security:
authorizationEnabled: true
...
Per abilitare l'autenticazione, impostate spec.common.security.authorizationEnabled
su true
nel CRD Milvus
. Per ulteriori informazioni sul CRD di Milvus, consultare Configurazione di Milvus con Milvus Operator.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
# Omit other fields ...
config:
common:
security:
authorizationEnabled: true
Connettersi a Milvus con l'autenticazione
Dopo aver abilitato l'autenticazione, è necessario connettersi a Milvus utilizzando un nome utente e una password. Per impostazione predefinita, l'utente root
viene creato con la password Milvus
quando si avvia Milvus. Ecco un esempio di come collegarsi a Milvus con l'autenticazione abilitata utilizzando l'utente predefinito root
:
# use default `root` user to connect to Milvus
from pymilvus import MilvusClient
client = MilvusClient(
uri='http://localhost:19530', # replace with your own Milvus server address
token="root:Milvus"
)
Creare un nuovo utente
Una volta connessi come utente predefinito di root
, è possibile creare e autenticare un nuovo utente come segue:
# create a user
client.create_user(
user_name="user_1",
password="P@ssw0rd",
)
# verify the user has been created
client.describe_user("user_1")
# output
# {'user_name': 'user_1', 'roles': ()}
Per ulteriori informazioni sulla creazione di utenti, consultare create_user().
Connettersi a Milvus con un nuovo utente
Connettersi utilizzando le credenziali dell'utente appena creato:
# connect to milvus with the newly created user
client = MilvusClient(
uri="http://localhost:19530",
token="user_1:P@ssw0rd"
)
Aggiornare la password dell'utente
Modificare la password di un utente esistente con il seguente codice:
# update password
client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="P@ssw0rd123"
)
Per ulteriori informazioni sull'aggiornamento delle password degli utenti, consultare update_password().
Se si dimentica la vecchia password, Milvus offre una voce di configurazione che consente di designare alcuni utenti come superutenti. In questo modo si elimina la necessità di inserire la vecchia password quando si ripristina la password.
Per impostazione predefinita, il campo common.security.superUsers
nel file di configurazione di Milvus è vuoto, il che significa che tutti gli utenti devono fornire la vecchia password quando la reimpostano. Tuttavia, è possibile designare utenti specifici come superutenti che non devono fornire la vecchia password. Nello snippet qui sotto, root
e foo
sono designati come superutenti.
È necessario aggiungere il seguente elemento di configurazione nel file di configurazione di Milvus che regola il funzionamento della vostra istanza Milvus.
common:
security:
superUsers: root, foo
Eliminare un utente
Per eliminare un utente, utilizzare il metodo drop_user()
.
client.drop_user(user_name="user_1")
Elenco di tutti gli utenti
Elenca tutti gli utenti.
# list all users
client.list_users()
Limitazioni
- Il nome utente non deve essere vuoto e non deve superare i 32 caratteri. Deve iniziare con una lettera e contenere solo trattini bassi, lettere o numeri.
- La password deve avere almeno 6 caratteri e non deve superare i 256 caratteri.
Cosa fare dopo
- Potreste anche voler imparare a:
- Se siete pronti a distribuire il vostro cluster su cloud:
- Imparare a distribuire Milvus su Amazon EKS con Terraform
- Imparare a distribuire un cluster Milvus su GCP con Kubernetes
- Imparare a distribuire Milvus su Microsoft Azure con Kubernetes