Milvus に対する詳細なアクセス制御の有効化
watsonx.data ( Milvus )でユーザーへのアクセス権を管理するには、この手順に従ってください。これにより、各ユーザーは、あなたが許可したデータベースまたはコレクションのみを表示またはクエリできるようになります。 Milvus ポリシーを通じて、ユーザーが閲覧またはクエリ実行できる内容を定義し、きめ細かな権限設定をサポートすることで、データベースレベルとコレクションレベルの両方でアクセスを制御できます。
意図的に権限を割り当てることで、企業ガバナンスを支援し、最小権限アクセスを適用し、チームやワークロード全体にわたる機密性の高いベクトルデータを保護します。 このアプローチは、マルチテナント環境における安全な運用を維持するのに役立ち、組織およびコンプライアンス要件に沿った予測可能なセキュリティモデルを構築します。
開始前に
きめ細かなアクセス制御に関する以下の前提条件は、オンプレミス展開でのみサポートされています。
以下の前提条件を完了して環境を準備してください:
IBM Cloud Pak for Data クラスタには、c padminとしてログインする必要があります。
「 watsonx.data 」インスタンスが「 IBM Cloud Pak for Data 」クラスターにインストールされています。
watsonx.data インスタンスに Milvus サービスが作成されます。
IBM Cloud Pak for Data クラスターには、必要なユーザーが存在します。
Lightweight Directory Access Protocol( LDAP )を使用してユーザーを追加するには、 「IDプロバイダーへの接続」 を参照してください。
ユーザーリストを確認するには:
クラスターのホームページに移動してください。
ユーザー管理をクリックしてください。
ユーザーの一覧を確認する。
watsonx.data インスタンスへのユーザーの追加
watsonx.data インスタンスにユーザーを追加し、設定した権限に従って、Lakehouseサービスへのアクセス、リソースの管理、および Milvus サービスの利用を可能にします。
クラスターのホームページに移動し、 「マイインスタンス」 をクリックします。
「My instances」 で、「 watsonx.data 」インスタンスを選択してください。
インスタンスの詳細ページで、オーバーフローメニュー(⋮)を開き、 「アクセス管理」 を選択します。
「ユーザーを追加」 をクリックし、そのインスタンスに対して権限を付与したいユーザーを選択します。
ポリシーとルールの作成
ポリシーでは、ユーザーがアクセスできる Milvus リソースと、実行できる操作を定義します。 これらのポリシーは、 watsonx.data コンソールから管理します。
ポリシー管理コンソールにアクセスするには:
「マイインスタンス」に移動し、「 watsonx.data 」インスタンスを開きます。
インスタンスページで、 [開く] をクリックします。
コンソールで、ナビゲーションウィンドウから 「アクセス制御」 を選択します。
ポリシータブで、 [ポリシーを追加] を選択し、アクセスルールの作成を開始します。
コレクションレベルの方針の作成
このポリシータイプを使用して、データベース内の単一コレクションへの可視性を制限します。
ポリシータブで、 [ポリシーの追加] > [詳細] をクリックします。
ポリシー名にポリシー名を入力し、[ 次へ] をクリックします。
データオブジェクトのページでは:
「リソースを選択して開始 」ドロップダウンから、 Milvus サービスを選択してください。
関心事項のコレクションを含むデータベースを選択してください。
コレクションを選択してください。
次へ をクリックします。
[ルールを追加 ] をクリックし、 [管理対象オブジェクト] と [管理対象データ] の両方のオプションで [すべて選択] を選択します。
追加をクリック > ユーザーを選択
レビュー > 作成をクリックしてください。
オプション(⋮)から「 有効化 」を選択してポリシーを有効にします。
以下の手順でアクセスを検証してください。
Python におけるコレクションレベルのアクセス権の検証
以下の手順に従って、 Milvus ユーザーが特定のコレクションにアクセスできるかどうかを確認してください。 テストしたいユーザー名とパスワードを使用して、 MilvusClient セッションを作成することから始めます。
from pymilvus import MilvusClient
client = MilvusClient(
uri="<your milvus service URI>", # your Milvus service URI, for example, http://localhost:19530
user="<your username>",
password="<your password>",
server_pem_path="./milvus_onprem_tls.crt" # path to your SSL certificate
)
ステップ1: 制限された操作が失敗することを確認する
コレクションレベルの権限を持つユーザーは、すべてのデータベースまたはコレクションを一覧表示できないようにする必要があります。 これらのコマンドは予想通り権限エラーを返します:
client.list_databases() client.list_collections()
ステップ2: 許可されたコレクションへのアクセスを検証する
適切なポリシーを持つユーザーは、許可されたコレクションに関する情報を引き続き取得できます。 このコマンドは、ユーザーが認証されている場合に動作します:
client.describe_collection("<allowed_collection_name>")
出力例
ユーザーがアクセスを許可されているコレクションに対して Milvus を実行すると、次のような describe_collection() コレクションのメタデータが返されます:
{
"collection_name": "assistant_builder_docs_en_slate_30m_v2",
"auto_id": true,
"num_shards": 1,
"description": "",
"fields": [
{
"field_id": 100,
"name": "text",
"description": "",
"type": "<DataType.VARCHAR: 21>",
"params": { "max_length": 65535 }
}
]
}
データベースレベルのポリシーを作成する
ユーザーに list_databases() を実行する権限を付与するには、次の手順に従ってください。
ポリシー について、 詳細に移動します。
ポリシー 名にポリシーの名前を入力し、 [次へ] をクリックします。
データオブジェクトで、 Milvus サービスを選択し、データベースは選択しないでください。
ルールを追加をクリックし、. ListDatabases を選択します。
追加をクリック > ユーザーを選択
ポリシーを有効にするには、[レビュー ] > [作成 ] > [有効化] をクリックしてください。
以下のコマンドを使用して権限 ListDatabases を検証します:
client.list_databases()
コレクションレベルの方針を作成する
ユーザーが list_collections() を実行できるようにするには、次の手順に従ってください。
ポリシー で、 詳細を開く。
ポリシー 名にポリシーの名前を入力し、 [次へ] をクリックします。
データオブジェクトで、 Milvus サービスを選択し、データベース(例:default)を選択します。コレクションは選択しないでください。
ルールを追加をクリック > 選択 ShowCollections > 追加をクリック > ユーザーを選択。
ポリシーを有効にするには、[レビュー ] > [作成 ] > [有効化] をクリックしてください。
以下のコマンドを使用して権限 ShowCollections を検証します:
client.using_database("<database_selected_for_policy>")
client.list_collections()
次のタスク
認証済みユーザーの資格情報を使用して、 Milvus を以下のサービスと連携できるようになりました:
これらのツールを使用すると、 Milvus に安全にアクセスし、設定した認証ルールに従うエージェントを簡単に構築できます。