メインコンテンツまでスキップ

クラスターリソースの権限と権限グループ

権限とは、クラスター、データベース、コレクションなどの特定の 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つの組み込み権限グループに含まれる具体的な権限の一覧を示します。

権限CollectionReadOnlyCollectionReadWriteCollectionAdmin
Query
Search
IndexDetail
GetFlushState
GetLoadState
GetLoadingProgress
HasPartition
ShowPartitions
ListAliases
DescribeCollection
DescribeAlias
GetStatistics
CreateIndex
DropIndex
CreatePartition
DropPartition
Load
Release
Insert
Delete
Upsert
Import
Flush
Compaction
LoadBalance
CreateAlias
DropAlias
AddCollectionField

データベースレベルの権限グループ​

  • DatabaseReadOnly (DB_RO):データベースデータの読み取り権限を含みます。

  • DatabaseReadWrite (DB_RW):データベースデータの読み取りおよび書き込み権限を含みます。

  • DatabaseAdmin (DB_Admin):データベースデータの読み取り・書き込み、およびデータベース管理の権限を含みます。

次の表に、データベースレベルの3つの組み込み権限グループに含まれる具体的な権限の一覧を示します。

権限DatabaseReadOnlyDatabaseReadWriteDatabaseAdmin
ShowCollections
DescribeDatabase
CreateCollection
DropCollection
AlterDatabase

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

  • ClusterReadOnly (Cluster_RO):インスタンスデータの読み取り権限を含みます。

  • ClusterReadWrite (Cluster_RW):インスタンスデータの読み取りおよび書き込み権限を含みます。

  • ClusterAdmin (Cluster_Admin):インスタンスデータの読み取り・書き込み、およびインスタンス管理の権限を含みます。

次の表に、クラスターレベルの3つの組み込み権限グループに含まれる具体的な権限の一覧を示します。

権限ClusterReadOnlyClusterReadWriteClusterAdmin
ListDatabases
RenameCollection
CreateOwnership
UpdateUser
DropOwnership
SelectOwnership
ManageOwnership
SelectUser
BackupRBAC
RestoreRBAC
CreateResourceGroup
DropResourceGroup
UpdateResourceGroups
DescribeResourceGroup
ListResourceGroups
TransferNode
TransferReplica
CreateDatabase
DropDatabase
FlushAll
CreatePrivilegeGroup
DropPrivilegeGroup
ListPrivilegeGroups
OperatePrivilegeGroup

カスタム権限グループ | PRIVATE​

組み込み権限で要件を満たせない場合は、SDKを使用してカスタム権限グループを作成し、任意の権限を追加できます。

Notes

この機能はPrivate Previewとして提供されています。ご利用をご希望の場合は、サポートチケットを作成して有効化をリクエストしてください。

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

次の例では、privilege_group_1 という名前の権限グループを作成する方法を示します。

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

カスタム権限グループの作成後、そのグループに権限を追加できます。

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

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

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

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

カスタム権限グループからの権限の削除​

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

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

権限グループの一覧表示​

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

python
from pymilvus import MilvusClient
client.list_privilege_groups()

以下に出力例を示します。

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

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

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

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

すべての権限​

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

以下の権限を使用して独自の権限グループを作成する場合や、特定の権限を持つカスタムロールを作成する場合は、お問い合わせください。

データベース権限​

権限説明
ListDatabases現在のインスタンス内のすべてのデータベースを表示します
DescribeDatabaseデータベースの詳細を表示します
CreateDatabaseデータベースを作成します
DropDatabaseデータベースを削除します
AlterDatabaseデータベースのプロパティを変更します

コレクション権限​

権限説明
GetFlushStateコレクションのフラッシュ操作のステータスを確認します
GetLoadStateコレクションのロード状態を確認します
GetLoadingProgressコレクションのロード進行状況を確認します
ShowCollectionsコレクション権限を持つすべてのコレクションを表示します
ListAliasesコレクションのすべてのエイリアスを表示します
DescribeCollectionコレクションの詳細を表示します
DescribeAliasエイリアスの詳細を表示します
GetStatisticsコレクションの統計情報を取得します(例:コレクション内のエンティティ数)
CreateCollectionコレクションを作成します
DropCollectionコレクションを削除します
Loadコレクションをロードします
Releaseコレクションをリリースします
Flushコレクション内のすべてのエンティティをシールド済みセグメントに永続化します。フラッシュ操作後に挿入されたエンティティは、新しいセグメントに格納されます。
Compaction手動で Compaction をトリガーします
RenameCollectionコレクションの名前を変更します
CreateAliasコレクションのエイリアスを作成します
DropAliasコレクションのエイリアスを削除します
FlushAllデータベース内のすべてのコレクションをフラッシュします
AddCollectionField既存のコレクションにフィールドを追加します

パーティション権限​

権限説明
HasPartitionパーティションの存在を確認します
ShowPartitionsコレクション内のすべてのパーティションを一覧表示します
CreatePartitionパーティションを作成します
DropPartitionパーティションを削除します

インデックス権限​

権限説明
IndexDetailインデックスの詳細を表示します
CreateIndexインデックスを作成します
DropIndexインデックスを削除します

リソース管理権限​

権限説明
LoadBalance負荷分散を実行します
CreateResourceGroupリソースグループを作成します
DropResourceGroupリソースグループを削除します
UpdateResourceGroupsリソースグループを更新します
DescribeResourceGroupリソースグループの詳細を表示します
ListResourceGroups現在のインスタンスのすべてのリソースグループを一覧表示します
TransferNodeリソースグループ間でノードを移動します
TransferReplicaリソースグループ間でレプリカを移動します
BackupRBAC現在のインスタンスにおけるすべての RBAC 関連操作のバックアップを作成します
RestoreRBAC現在のインスタンスにおけるすべての RBAC 関連操作のバックアップを復元します

エンティティ権限​

権限説明
Queryクエリを実行します
Search検索を実行します
Insertエンティティを挿入します
Deleteエンティティを削除します
Upsertエンティティを Upsert します
Importエンティティを一括挿入またはインポートします

RBAC 権限​

権限説明
CreateOwnershipユーザーまたはロールを作成します
UpdateUserユーザーのパスワードを更新します
DropOwnershipユーザーのパスワードまたはロールを削除します
SelectOwnership特定のロールが付与されているすべてのユーザーを一覧表示します
ManageOwnershipユーザーやロールの管理、またはユーザーへのロール付与を行います
SelectUserユーザーに付与されているすべてのロールを一覧表示します
CreatePrivilegeGroup権限グループを作成します
DropPrivilegeGroup権限グループを削除します
ListPrivilegeGroups現在のインスタンス内のすべての権限グループを一覧表示します
OperatePrivilegeGroup権限グループに対して権限の追加または削除を行います