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

特権と特権グループ

特権とは、クラスター、データベース、コレクションなどの特定の Zilliz Cloud リソースに対する特定の操作の許可を指します。特権はロールに割り当てられ、そのロールがユーザーに付与されることで、ユーザーがリソースに対して実行できる操作が定義されます。特権の例としては、collection_01 という名前のコレクションにデータを挿入する許可などが挙げられます。

特権グループは、個々の特権の組み合わせです。よく使用される特権の特権グループを作成することで、ロールの付与プロセスを簡素化できます。使いやすさを考慮し、Zilliz Cloud はコレクションレベル、データベースレベル、およびクラスターレベルで合計 9 つのビルトイン特権グループを提供しています。

以下の図は、特権と特権グループの異なる付与プロセスを示しています。

SsW6w8kaNhz4iQbEMYmcbUzsnOc

このトピックでは、Zilliz Cloud で利用可能なビルトイン特権グループと特権について詳しく説明します。

特権グループ

ビルトイン特権グループ

Zilliz Cloud は、コレクションレベル、データベースレベル、およびクラスターレベルで合計 9 つのビルトイン特権グループを提供しており、ロールの作成 時に直接付与することができます。

📘Notes

3 つのレベルのビルトイン特権グループには階層関係はありません。クラスターレベルで特権グループを設定しても、そのインスタンス下のすべてのデータベースとコレクションに対して自動的に権限が設定されるわけではありません。データベースレベルとコレクションレベルの特権は手動で設定する必要があります。

コレクションレベルの特権グループ

  • CollectionReadOnly (COLL_RO): コレクションデータを読み取る特権を含みます

  • CollectionReadWrite (COLL_RW): コレクションデータを読み書きする特権を含みます

  • CollectionAdmin (COLL_ADMIN): コレクションデータを読み書きし、コレクションを管理する特権を含みます。

以下の表は、コレクションレベルの 3 つのビルトイン特権グループに含まれる具体的な特権の一覧です。

特権

CollectionReadOnly

CollectionReadWrite

CollectionAdmin

Query

✔️

✔️

✔️

Search

✔️

✔️

✔️

IndexDetail

✔️

✔️

✔️

GetFlushState

✔️

✔️

GetLoadState

✔️

✔️

✔️

GetLoadingProgress

✔️

✔️

✔️

HasPartition

✔️

✔️

✔️

Showパーティション

✔️

✔️

✔️

Listエイリアスes

✔️

✔️

✔️

DescribeCollection

✔️

✔️

✔️

Describeエイリアス

✔️

✔️

✔️

GetStatistics

✔️

✔️

✔️

CreateIndex

✔️

✔️

DropIndex

✔️

✔️

CreatePartition

✔️

✔️

DropPartition

✔️

✔️

Load

✔️

✔️

✔️

Release

✔️

✔️

Insert

✔️

✔️

Delete

✔️

✔️

Upsert

✔️

✔️

Import

✔️

✔️

Flush

✔️

✔️

Compaction

✔️

LoadBalance

✔️

✔️

Createエイリアス

✔️

✔️

Dropエイリアス

✔️

✔️

AddCollectionField

✔️

✔️

データベースレベルの特権グループ

  • データベースReadOnly (DB_RO): データベースデータを読み取る特権を含みます

  • データベースReadWrite (DB_RW): データベースデータを読み書きする特権を含みます

  • データベースAdmin (DB_Admin): データベースデータを読み書きし、データベースを管理する特権を含みます。

以下の表は、データベースレベルの 3 つのビルトイン特権グループに含まれる具体的な特権の一覧です。

特権

データベースReadOnly

データベースReadWrite

データベースAdmin

ShowCollections

✔️

✔️

✔️

Describeデータベース

✔️

✔️

✔️

CreateCollection

✔️

✔️

DropCollection

✔️

✔️

Alterデータベース

クラスターレベルの特権グループ

  • ClusterReadOnly (Cluster_RO): インスタンスデータを読み取る特権を含みます

  • ClusterReadWrite (Cluster_RW): インスタンスデータを読み書きする特権を含みます

  • ClusterAdmin (Cluster_Admin): インスタンスデータを読み書きし、インスタンスを管理する特権を含みます。

以下の表は、クラスターレベルの 3 つのビルトイン特権グループに含まれる具体的な特権の一覧です。

特権

ClusterReadOnly

ClusterReadWrite

ClusterAdmin

Listデータベースs

✔️

✔️

✔️

RenameCollection

✔️

✔️

Createオーナーship

✔️

UpdateUser

✔️

Dropオーナーship

✔️

Selectオーナーship

✔️

Manageオーナーship

✔️

SelectUser

✔️

BackupRBAC

RestoreRBAC

CreateResourceGroup

DropResourceGroup

UpdateResourceGroups

DescribeResourceGroup

ListResourceGroups

TransferNode

TransferReplica

Createデータベース

✔️

✔️

Dropデータベース

✔️

✔️

FlushAll

CreatePrivilegeGroup

DropPrivilegeGroup

ListPrivilegeGroups

✔️

✔️

✔️

OperatePrivilegeGroup

カスタム特権グループ

ビルトインの特権では要件を満たせない場合、SDK を使用してカスタム特権グループを作成し、指定した特権をその特権グループに追加することができます。

📘Notes

カスタム特権グループを作成および管理するには、サポートチケットを作成してください。これにより、当方でこの機能を有効化いたします。

カスタム特権グループの作成

以下の例は、privilege_group_1 という名前の特権グループを作成する方法を示しています。

from pymilvus import MilvusClient
client.create_privilege_group(group_name='privilege_group_1'

カスタム特権グループが作成されたら、その特権グループに特権を追加できます。

カスタム特権グループへの特権の追加

次の例では、作成したばかりの特権グループ privilege_group_1PrivilegeBackupRBAC および PrivilegeRestoreRBAC という特権を追加する方法を示します。Zilliz Cloud で利用可能なすべての特権の詳細については、すべての特権 を参照してください。

from pymilvus import MilvusClient
client.add_privileges_to_group(group_name='privilege_group_1', privileges=['Query', 'Search'])

特権が特権グループに追加されたら、その特権グループをロールに付与できます。詳細については、クラスターロールの管理 (SDK) を参照してください。

カスタム特権グループから特権を削除する

次の例では、特権グループ privilege_group_1 から特権 PrivilegeRestoreRBAC を削除する方法を示します。

from pymilvus import MilvusClient
client.remove_privileges_from_group(group_name='privilege_group_1', privileges='Search')

List 特権グループs

次の例は、既存のすべての特権グループを一覧表示する方法を示しています。

from pymilvus import MilvusClient
client.list_privilege_groups()

以下は出力例です。

PrivilegeGroupItem: <privilege_group:privilege_group_1>, <privileges:('Search', 'Query')>

カスタム特権グループの削除

次の例では、特権グループ privilege_group_1 を削除する方法を示します。

from pymilvus import MilvusClient
client.drop_privilege_group(group_name='privilege_group_1')

All privileges

以下は、Zilliz Cloud で利用可能なすべての特権です。

以下に記載されている特権を使用して独自の特権グループを作成する場合、または特権を持つカスタムロールを作成する場合は、お問い合わせください

データベース privileges

Privilege

Description

Listデータベースs

現在のインスタンス内のすべてのデータベースを表示します

Describeデータベース

データベースの詳細を表示します

Createデータベース

データベースを作成します

Dropデータベース

データベースを削除します

Alterデータベース

データベースのプロパティを変更します

Collection privileges

Privilege

Description

GetFlushState

コレクションのフラッシュ操作のステータスを確認します

GetLoadState

コレクションのロードステータスを確認します

GetLoadingProgress

コレクションのロード進捗状況を確認します

ShowCollections

コレクション特権を持つすべてのコレクションを表示します

Listエイリアスes

コレクションのすべてのエイリアスを表示します

DescribeCollection

コレクションの詳細を表示します

Describeエイリアス

エイリアスの詳細を表示します

GetStatistics

コレクションの統計情報を取得します(例:コレクション内のエンティティ数)

CreateCollection

コレクションを作成します

DropCollection

コレクションを削除します

Load

コレクションをロードします

Release

コレクションをリリースします

Flush

コレクション内のすべてのエンティティを密封されたセグメントに永続化します。フラッシュ操作後に挿入されたエンティティは、新しいセグメントに保存されます。

Compaction

手動でコンパクションをトリガーします

RenameCollection

コレクションの名前を変更します

Createエイリアス

コレクションのエイリアスを作成します

Dropエイリアス

コレクションのエイリアスを削除します

FlushAll

データベース内のすべてのコレクションをフラッシュします

AddCollectionField

既存のコレクションにフィールドを追加します

Partition privileges

Privilege

Description

HasPartition

パーティションが存在するかどうかを確認します

Showパーティション

コレクション内のすべてのパーティションを表示します

CreatePartition

パーティションを作成します

DropPartition

パーティションを削除します

Index privileges

Privilege

Description

IndexDetail

インデックスの詳細を表示します

CreateIndex

インデックスを作成します

DropIndex

インデックスを削除します

Resource management privileges

Privilege

Description

LoadBalance

負荷分散を実現します

CreateResourceGroup

リソースグループを作成します

DropResourceGroup

リソースグループを削除します

UpdateResourceGroups

リソースグループを更新します

DescribeResourceGroup

リソースグループの詳細を表示します

ListResourceGroups

現在のインスタンスのすべてのリソースグループを表示します

TransferNode

リソースグループ間でノードを転送します

TransferReplica

リソースグループ間でレプリカを転送します

BackupRBAC

現在のインスタンス内のすべての RBAC 関連操作のバックアップを作成します

RestoreRBAC

現在のインスタンス内のすべての RBAC 関連操作のバックアップを復元します

Entity privileges

Privilege

Description

Query

クエリを実行します

Search

検索を実行します

Insert

エンティティを挿入します

Delete

エンティティを削除します

Upsert

エンティティをアップサートします

Import

エンティティを一括挿入またはインポートします

RBAC privileges

Privilege

Description

Createオーナーship

ユーザーまたはロールを作成します

UpdateUser

ユーザーのパスワードを更新します

Dropオーナーship

ユーザーのパスワードまたはロールを削除します

Selectオーナーship

特定のロールが付与されているすべてのユーザーを表示します

Manageオーナーship

ユーザーまたはロールを管理するか、ユーザーにロールを付与します

SelectUser

ユーザーに付与されているすべてのロールを表示します

CreatePrivilegeGroup

特権グループを作成します

DropPrivilegeGroup

特権グループを削除します

ListPrivilegeGroups

現在のインスタンス内のすべての特権グループを表示します

OperatePrivilegeGroup

特権グループに特権を追加するか、特権グループから特権を削除します