milvus-logo
LFAI
フロントページへ
  • 管理ガイド

ユーザアクセスの認証

このガイドでは、認証の有効化、ユーザとしての接続、ユーザ認証情報の変更など、Milvusにおけるユーザ認証の管理方法について説明します。

  • TLSとユーザ認証は2つの異なるセキュリティアプローチです。Milvusシステムでユーザ認証とTLSの両方を有効にした場合、ユーザ名、パスワード、証明書ファイルのパスを指定する必要があります。TLSを有効にする方法については、Encryption in Transitを参照してください。

  • このページのコードスニペットはMilvusClient(Python)を使用しています。他の言語用の新しいMilvusClient SDKは今後のアップデートでリリースされる予定です。

ユーザ認証を有効にする

Milvusサーバのユーザ認証を有効にするには、Milvus設定ファイルmilvus.yaml で common.security.authorizationEnabled をtrueに設定します。設定の詳細については、Docker ComposeによるMilvusの設定を参照してください。

...
common:
...
  security:
    authorizationEnabled: false
...

Milvusサーバのユーザ認証を有効にするには、Milvus設定ファイルvalues.yaml でauthorizationEnabledをtrueに設定します。設定の詳細については、Helm Chartsを使用したMilvusの設定を参照してください。

...
extraConfigFiles:
  user.yaml: |+
    common:
      security:
        authorizationEnabled: true
...

認証を有効にするには、Milvus CRD でspec.common.security.authorizationEnabledtrue に設定します。Milvus CRDの詳細については、Milvus Operatorを使用したMilvusの設定を参照してください。

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起動時にパスワードMilvusroot ユーザーが作成されます。以下は、デフォルトのroot ユーザを使用して、認証を有効にして Milvus に接続する方法の例です:

# 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"
) 
認証を有効にしてMilvusに接続する際に有効なトークンを提供できない場合、gRPCエラーが発生します。

新規ユーザの作成

デフォルトの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には特定のユーザをスーパーユーザとして指定できる設定項目があります。これにより、パスワード再設定時に古いパスワードを入力する必要がなくなります。

デフォルトでは、Milvus設定ファイルのcommon.security.superUsers フィールドは空です。つまり、すべてのユーザはパスワードリセット時に古いパスワードを入力しなければなりません。ただし、特定のユーザーをスーパーユーザーとして指定することで、古いパスワードを入力する必要がなくなります。以下のスニペットでは、rootfoo がスーパーユーザーとして指定されています。

Milvusインスタンスの実行を管理するMilvus設定ファイルに以下の設定項目を追加してください。

common:
    security:
        superUsers: root, foo

ユーザの削除

ユーザを削除するには、drop_user()

client.drop_user(user_name="user_1")
ユーザを削除するには、削除するユーザである必要があります。そうでない場合、エラーが発生します。

全ユーザの一覧表示

すべてのユーザーを一覧表示します。

# list all users

client.list_users()

制限事項

  1. ユーザー名は空白であってはならず、32文字以内でなければなりません。文字で始まり、アンダースコア、アルファベット、数字のみを含む必要があります。
  2. パスワードは6文字以上で、256文字以内です。

次のページ

翻訳DeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
フィードバック

このページは役に立ちましたか ?