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

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

権限とは、クラスター、データベース、コレクションなどの 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'])

権限グループに権限を追加したら、その権限グループをロールに付与できます。詳細については、Manage クラスター Roles (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コレクションの flush 操作のステータスを確認します。
GetLoadStateコレクションのロードステータスを確認します。
GetLoadingProgressコレクションのロード進行状況を確認します。
ShowCollectionsコレクション権限を持つすべてのコレクションを表示します。
ListAliasesコレクションのすべてのエイリアスを表示します。
DescribeCollectionコレクションの詳細を表示します。
DescribeAliasエイリアスの詳細を表示します。
GetStatisticsコレクションの統計情報(例:コレクション内のエンティティ数)を取得します。
CreateCollectionコレクションを作成します。
DropCollectionコレクションを削除します。
Loadコレクションをロードします。
Releaseコレクションをリリースします。
Flushコレクション内のすべてのエンティティを sealed segment に永続化します。flush 操作後に挿入されたエンティティは、新しい segment に保存されます。
Compaction手動で Compaction をトリガーします。
RenameCollectionコレクションの名前を変更します。
CreateAliasコレクションのエイリアスを作成します。
DropAliasコレクションのエイリアスを削除します。
FlushAllデータベース内のすべてのコレクションを flush します。
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エンティティをアップサートします
Importエンティティを一括挿入またはインポートします

RBAC 権限​

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