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

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

権限とは、クラスター、データベース、コレクションなどの特定の 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コレクション内のすべてのエンティティをシールドセグメントに永続化します。フラッシュ操作の後に挿入されたエンティティは、新しいセグメントに格納されます。
CompactionCompaction を手動でトリガーします。
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エンティティをアップサートします。
Importエンティティを一括挿入またはインポートします。

RBAC 権限​

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