Authentification de l'accès utilisateur
Ce guide explique comment gérer l'authentification des utilisateurs dans Milvus, y compris l'activation de l'authentification, la connexion en tant qu'utilisateur et la modification des informations d'identification de l'utilisateur.
TLS et l'authentification utilisateur sont deux approches de sécurité distinctes. Si vous avez activé l'authentification utilisateur et TLS dans votre système Milvus, vous devez fournir un nom d'utilisateur, un mot de passe et des chemins d'accès aux fichiers de certificats. Pour plus d'informations sur l'activation de TLS, voir Chiffrement en transit.
Les extraits de code de cette page utilisent le nouveau MilvusClient (Python) pour interagir avec Milvus. De nouveaux SDK MilvusClient pour d'autres langages seront publiés dans de futures mises à jour.
Activer l'authentification de l'utilisateur
Pour activer l'authentification utilisateur pour votre serveur Milvus, définissez common.security.authorizationEnabled sur true dans le fichier de configuration Milvus milvus.yaml
. Pour plus d'informations sur les configurations, voir Configurer Milvus avec Docker Compose.
...
common:
...
security:
authorizationEnabled: false
...
Pour activer l'authentification utilisateur pour votre serveur Milvus, définissez authorizationEnabled sur true dans le fichier de configuration Milvus values.yaml
. Pour plus d'informations sur les configurations, voir Configurer Milvus avec Helm Charts.
...
extraConfigFiles:
user.yaml: |+
common:
security:
authorizationEnabled: true
...
Pour activer l'authentification, définissez spec.common.security.authorizationEnabled
sur true
dans le CRD Milvus
. Pour plus d'informations sur le CRD Milvus, voir Configurer Milvus avec Milvus Operator.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
# Omit other fields ...
config:
common:
security:
authorizationEnabled: true
Connexion à Milvus avec authentification
Après avoir activé l'authentification, vous devez vous connecter à Milvus à l'aide d'un nom d'utilisateur et d'un mot de passe. Par défaut, l'utilisateur root
est créé avec le mot de passe Milvus
lorsque Milvus est lancé. Voici un exemple de connexion à Milvus avec l'authentification activée à l'aide de l'utilisateur par défaut 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"
)
Créer un nouvel utilisateur
Une fois connecté en tant qu'utilisateur par défaut root
, vous pouvez créer et authentifier un nouvel utilisateur comme suit :
# 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': ()}
Pour plus d'informations sur la création d'utilisateurs, voir create_user().
Se connecter à Milvus avec un nouvel utilisateur
Se connecter en utilisant les informations d'identification de l'utilisateur nouvellement créé :
# connect to milvus with the newly created user
client = MilvusClient(
uri="http://localhost:19530",
token="user_1:P@ssw0rd"
)
Mise à jour du mot de passe de l'utilisateur
Modifier le mot de passe d'un utilisateur existant à l'aide du code suivant :
# update password
client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="P@ssw0rd123"
)
Pour plus d'informations sur la mise à jour des mots de passe des utilisateurs, voir update_password().
Si vous oubliez votre ancien mot de passe, Milvus fournit un élément de configuration qui vous permet de désigner certains utilisateurs comme super utilisateurs. Ainsi, l'ancien mot de passe n'est plus nécessaire lorsque vous réinitialisez le mot de passe.
Par défaut, le champ common.security.superUsers
du fichier de configuration de Milvus est vide, ce qui signifie que tous les utilisateurs doivent fournir l'ancien mot de passe lors de la réinitialisation de leur mot de passe. Cependant, vous pouvez désigner des utilisateurs spécifiques comme super utilisateurs qui ne doivent pas fournir l'ancien mot de passe. Dans l'extrait ci-dessous, root
et foo
sont désignés comme super utilisateurs.
Vous devez ajouter l'élément de configuration ci-dessous dans le fichier de configuration Milvus qui régit l'exécution de votre instance Milvus.
common:
security:
superUsers: root, foo
Abandonner un utilisateur
Pour supprimer un utilisateur, utilisez la méthode drop_user()
.
client.drop_user(user_name="user_1")
Lister tous les utilisateurs
Répertorie tous les utilisateurs.
# list all users
client.list_users()
Limitations
- Le nom d'utilisateur ne doit pas être vide et ne doit pas dépasser 32 caractères. Il doit commencer par une lettre et ne doit contenir que des traits de soulignement, des lettres ou des chiffres.
- Le mot de passe doit comporter au moins 6 caractères et ne doit pas dépasser 256 caractères.
Prochaines étapes
- Vous voudrez peut-être aussi apprendre à
- Si vous êtes prêt à déployer votre cluster sur des clouds :
- Apprendre à déployer Milvus sur Amazon EKS avec Terraform
- Apprendre à déployer le cluster Milvus sur GCP avec Kubernetes
- Apprendre à déployer Milvus sur Microsoft Azure avec Kubernetes