Аутентификация доступа пользователей
В этом руководстве описано, как управлять аутентификацией пользователей в Milvus, включая включение аутентификации, подключение в качестве пользователя и изменение учетных данных пользователя.
TLS и аутентификация пользователей - это два разных подхода к безопасности. Если в системе Milvus включена и аутентификация пользователя, и TLS, необходимо указать имя пользователя, пароль и путь к файлу сертификата. Информацию о том, как включить TLS, см. в разделе Шифрование при передаче.
Фрагменты кода на этой странице используют новый MilvusClient (Python) для взаимодействия с Milvus. Новые SDK MilvusClient для других языков будут выпущены в будущих обновлениях.
Включение аутентификации пользователей
Чтобы включить аутентификацию пользователей для вашего сервера Milvus, установите значение common.security.authorizationEnabled в true в файле конфигурации Milvus milvus.yaml
. Дополнительные сведения о конфигурациях см. в разделе Настройка Milvus с помощью Docker Compose.
...
common:
...
security:
authorizationEnabled: true
...
Чтобы включить аутентификацию пользователей для сервера Milvus, установите значение authorizationEnabled в true в файле конфигурации Milvus values.yaml
. Дополнительные сведения о конфигурациях см. в разделе Настройка Milvus с помощью Helm Charts.
...
extraConfigFiles:
user.yaml: |+
common:
security:
authorizationEnabled: true
...
Чтобы включить аутентификацию, установите spec.common.security.authorizationEnabled
на true
в Milvus
CRD. Дополнительные сведения о Milvus CRD см. в разделе Настройка Milvus с помощью Milvus Operator.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
# Omit other fields ...
config:
common:
security:
authorizationEnabled: true
Подключение к Milvus с помощью аутентификации
После включения аутентификации вам нужно подключиться к Milvus, используя имя пользователя и пароль. По умолчанию при запуске Milvus создается пользователь root
с паролем Milvus
. Ниже приведен пример подключения к Milvus с включенной аутентификацией с использованием пользователя по умолчанию 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"
)
Создайте нового пользователя
После подключения в качестве пользователя по умолчанию root
вы можете создать и аутентифицировать нового пользователя следующим образом:
# 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': ()}
Для получения дополнительной информации о создании пользователей см. create_user().
Подключение к Milvus с новым пользователем
Подключитесь, используя учетные данные только что созданного пользователя:
# connect to milvus with the newly created user
client = MilvusClient(
uri="http://localhost:19530",
token="user_1:P@ssw0rd"
)
Обновить пароль пользователя
Измените пароль существующего пользователя с помощью следующего кода:
# update password
client.update_password(
user_name="user_1",
old_password="P@ssw0rd",
new_password="P@ssw0rd123"
)
Дополнительные сведения об обновлении паролей пользователей см. в функции update_password().
Если вы забыли старый пароль, Milvus предоставляет элемент конфигурации, который позволяет назначить определенных пользователей суперпользователями. Это избавит вас от необходимости вводить старый пароль при восстановлении пароля.
По умолчанию поле common.security.superUsers
в конфигурационном файле Milvus пустое, что означает, что все пользователи должны указывать старый пароль при сбросе пароля. Однако вы можете назначить определенных пользователей суперпользователями, которым не нужно указывать старый пароль. В приведенном ниже фрагменте root
и foo
обозначены как суперпользователи.
Вы должны добавить приведенный ниже элемент конфигурации в файл конфигурации Milvus, который управляет работой вашего экземпляра Milvus.
common:
security:
superUsers: root, foo
Удаление пользователя
Чтобы удалить пользователя, воспользуйтесь методом drop_user()
.
client.drop_user(user_name="user_1")
Список всех пользователей
Вывести список всех пользователей.
# list all users
client.list_users()
Ограничения
- Имя пользователя не должно быть пустым и не должно превышать 32 символов. Оно должно начинаться с буквы и содержать только символы подчеркивания, буквы или цифры.
- Пароль должен состоять не менее чем из 6 символов и не должен превышать 256 символов.
Что дальше
- Возможно, вам также будет интересно узнать, как:
- Если вы готовы развернуть свой кластер в облаках:
- Узнайте, как развернуть Milvus на Amazon EKS с помощью Terraform.
- Узнайте, как развернуть кластер Milvus на GCP с помощью Kubernetes
- Узнайте, как развернуть Milvus на Microsoft Azure с помощью Kubernetes.