メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

クラスターロールの管理(SDK)

クラスターロールは、クラスター内でユーザーが持つ権限を定義します。具体的には、クラスターロールはクラスターユーザーのクラスター、データベース、およびコレクションレベルの権限を制御します。

このガイドでは、ロールの作成、組み込み権限グループをロールに付与、ロールから権限グループを取り消し、最後にロールを削除する方法を説明します。組み込み権限グループの詳細については、権限を参照してください。

📘ノート

この機能は、専用クラスターでのみ利用可能です。

ロールを作成

以下の例は、role_aという名前のロールを作成する方法を示しています。

ロール名は以下の規則に従う必要があります:

  • 文字で始まり、大文字または小文字の英字、数字、およびアンダースコアのみを含めることができます。
from pymilvus import MilvusClient

client.create_role(role_name="role_a")
import io.milvus.v2.service.rbac.request.CreateRoleReq;

ロールを一覧表示

複数のロールを作成した後、すべての既存のロールを一覧表示して確認できます。

from pymilvus import MilvusClient

client.list_roles()

以下は出力例です。role_aは作成されたばかりの新しいロールです。

['role_a']

ロールに権限または権限グループを付与

Zilliz Cloudでは、以下をロールに付与できます:

  • 権限: Zilliz Cloudはさまざまなタイプの権限を提供します。詳細については、すべての権限を参照してください。

  • 組み込み権限グループ: Zilliz Cloudは9つの組み込み権限グループを提供します。各組み込み権限グループに含まれる特定の権限の詳細については、組み込み権限グループを参照してください。

  • カスタム権限グループ: 組み込み権限がニーズを満たさない場合は、異なる権限を組み合わせて独自のカスタム権限グループを作成できます。詳細については、カスタム権限グループを参照してください。

📘ノート

特定の権限やカスタム権限グループをロールに付与する必要がある場合は、最初にサポートチケットを作成して、この機能を有効にしてください。

以下の例は、defaultデータベース下のcollection_01に対する権限PrivilegeSearchと、privilege_group_1という名前のカスタム権限グループをロールrole_aに付与する方法を示しています。

from pymilvus import MilvusClient

client.grant_privilege_v2(
role_name="role_a",
privilege="Search",
collection_name='collection_01',
db_name='default',
)

client.grant_privilege_v2(
role_name="role_a",
privilege="privilege_group_1",
collection_name='collection_01',
db_name='default',
)

client.grant_privilege_v2(
role_name="role_a",
privilege="ClusterReadOnly",
collection_name='*',
db_name='*',
)

ロールの説明

以下の例は、describe_roleメソッドを使用してロールrole_aに付与された権限を表示する方法を示しています。

from pymilvus import MilvusClient

client.describe_role(role_name="role_a")

以下は出力例です。

{
"role": "role_a",
"privileges": [
"COLL_ADMIN"
]
}

ロールから権限または権限グループを取り消し

以下の例は、defaultデータベース下のcollection_01に対する権限PrivilegeSearchと、ロールrole_aに付与された権限グループprivilege_group_1を取り消す方法を示しています。

client.revoke_privilege_v2(
role_name="role_a",
privilege="Search",
collection_name='collection_01',
db_name='default',
)

client.revoke_privilege_v2(
role_name="role_a",
privilege="privilege_group_1",
collection_name='collection_01',
db_name='default',
)

client.revoke_privilege_v2(
role_name="role_a",
privilege="ClusterReadOnly",
collection_name='*',
db_name='*',
)

ロールを削除

以下の例は、ロールrole_aを削除する方法を示しています。

📘ノート

組み込みロールadminは削除できません。

from pymilvus import MilvusClient

client.drop_role(role_name="role_a")

ロールが削除されたら、すべての既存のロールを一覧表示して、削除操作が成功したか確認できます。

from pymilvus import MilvusClient

client.list_roles()

以下は出力例です。リストにrole_aはありません。削除操作は成功しました。

['admin']