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

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

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

組み込み権限がニーズを満たさない場合は、SDK を使用してカスタム権限グループを作成し、指定した権限をその権限グループに追加できます。

Notes

これは Private Preview の機能です。この機能をリクエストするには、サポートチケットを作成して、有効化を依頼してください。

カスタム権限グループを作成する​

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

python
from pymilvus import MilvusClient

client = MilvusClient(
uri="YOUR_CLUSTER_ENDPOINT",
token="YOUR_CLUSTER_TOKEN",
)

client.create_privilege_group(group_name='privilege_group_1')

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

カスタム権限グループに権限を追加する​

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

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

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

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

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

python
client.remove_privileges_from_group(group_name='privilege_group_1', privileges=['Search'])

権限グループを一覧表示する​

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

python
client.list_privilege_groups()

出力例は以下のとおりです。

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

カスタム権限グループを削除する​

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

python
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 セグメントに永続化します。Flush 操作後に挿入されたエンティティは、新しいセグメントに格納されます。
CompactionCompaction を手動でトリガーします
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エンティティを Upsert します
Importエンティティを一括挿入またはインポートします

RBAC 権限​

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