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

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

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

このガイドでは、ロールの作成、ビルトイン特権グループのロールへの付与、ロールからの特権グループの剥奪、そしてロールの削除までの手順を説明します。ビルトイン特権グループの詳細については、特権 を参照してください。

📘Notes

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

ロールの作成

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

ロール名は文字で始まる必要があり、大文字・小文字のアルファベット、数字、アンダースコアのみを含めることができます。

from pymilvus import MilvusClient

client.create_role(role_name="role_a")

List roles

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

from pymilvus import MilvusClient

client.list_roles()

以下は出力例です。role_a は新しく作成されたロールです。

['role_a']

特権または特権グループをロールに付与する

Zilliz Cloud では、以下の内容をロールに付与できます。

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

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

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

📘Notes

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

次の例では、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": [
"Search"
]
}

ロールから特権または特権グループを取り消す

次の例では、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 を削除する方法を示します。

📘Notes

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

from pymilvus import MilvusClient

client.drop_role(role_name="role_a")

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

from pymilvus import MilvusClient

client.list_roles()

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

['admin']