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

権限と権限グループ

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

権限グループは個々の権限の組み合わせです。ロール付与プロセスを簡略化するために、一般的に使用される権限の権限グループを作成できます。使いやすさのために、Zilliz Cloudはコレクション、データベース、およびクラスターレベルの合計9つの組み込み権限グループを提供します。

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

SsW6w8kaNhz4iQbEMYmcbUzsnOc

このトピックでは、Zilliz Cloudで利用可能な組み込み権限グループと権限の詳細を説明します。

権限グループ

組み込み権限グループ

Zilliz Cloudは、ロールの作成時に直接付与できる、コレクション、データベース、およびクラスターレベルの合計9つの組み込み権限グループを提供します。

📘注意

組み込み権限グループの3つのレベルにはカスケード関係がありません。クラスターレベルで権限グループを設定しても、そのインスタンス配下のすべてのデータベースおよびコレクションに自動的に権限が設定されるわけではありません。データベースおよびコレクションレベルの権限は手動で設定する必要があります。

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

  • CollectionReadOnly (COLL_RO):コレクションデータの読み取り権限を含む

  • CollectionReadWrite (COLL_RW):コレクションデータの読み書き権限を含む

  • CollectionAdmin (COLL_ADMIN):コレクションデータの読み書きおよびコレクション管理の権限を含む

以下の表は、コレクションレベルの3つの組み込み権限グループに含まれる特定の権限をリストしています:

権限

CollectionReadOnly

CollectionReadWrite

CollectionAdmin

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つの組み込み権限グループに含まれる特定の権限をリストしています:

権限

DatabaseReadOnly

DatabaseReadWrite

DatabaseAdmin

ShowCollections

✔️

✔️

✔️

DescribeDatabase

✔️

✔️

✔️

CreateCollection

✔️

✔️

DropCollection

✔️

✔️

AlterDatabase

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

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

  • ClusterReadWrite (Cluster_RW):インスタンスデータの読み書き権限を含む

  • ClusterAdmin (Cluster_Admin):インスタンスデータの読み書きおよびインスタンス管理の権限を含む

以下の表は、クラスターレベルの3つの組み込み権限グループに含まれる特定の権限をリストしています:

権限

ClusterReadOnly

ClusterReadWrite

ClusterAdmin

ListDatabases

✔️

✔️

✔️

RenameCollection

✔️

✔️

CreateOwnership

✔️

UpdateUser

✔️

DropOwnership

✔️

SelectOwnership

✔️

ManageOwnership

✔️

SelectUser

✔️

BackupRBAC

RestoreRBAC

CreateResourceGroup

DropResourceGroup

UpdateResourceGroups

DescribeResourceGroup

ListResourceGroups

TransferNode

TransferReplica

CreateDatabase

✔️

✔️

DropDatabase

✔️

✔️

FlushAll

CreatePrivilegeGroup

DropPrivilegeGroup

ListPrivilegeGroups

✔️

✔️

✔️

OperatePrivilegeGroup

カスタム権限グループ

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

📘注意

以下にリストされた権限で独自の権限グループを作成するか、権限を持つカスタムロールを作成するには、お問い合わせください

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

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

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

カスタム権限グループが作成されると、権限グループに権限を追加できます。

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

以下の例は、権限PrivilegeBackupRBACおよびPrivilegeRestoreRBACを直前に作成した権限グループprivilege_group_1に追加する方法を示しています。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')

権限グループ一覧表示

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

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')

すべての権限

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

以下にリストされた権限で独自の権限グループを作成するか、権限を持つカスタムロールを作成するには、お問い合わせください

データベース権限

権限

説明

ListDatabases

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

DescribeDatabase

データベースの詳細を表示

CreateDatabase

データベースを作成

DropDatabase

データベースを削除

AlterDatabase

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

コレクション権限

権限

説明

GetFlushState

コレクションフラッシュ操作の状態を確認

GetLoadState

コレクションの読み込み状態を確認

GetLoadingProgress

コレクションの読み込み進行状況を確認

ShowCollections

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

ListAliases

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

DescribeCollection

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

DescribeAlias

エイリアスの詳細を表示

GetStatistics

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

CreateCollection

コレクションを作成

DropCollection

コレクションを削除

Load

コレクションを読み込む

Release

コレクションを解放する

Flush

すべてのエンティティを封印されたセグメントに永続化する。フラッシュ操作後に挿入されたいずれのエンティティも新しいセグメントに保存される。

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

エンティティをアップサート

Import

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

RBAC権限

権限

説明

CreateOwnership

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

UpdateUser

ユーザーのパスワードを更新

DropOwnership

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

SelectOwnership

特定のロールが付与されたすべてのユーザーを表示

ManageOwnership

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

SelectUser

ユーザーに付与されたすべてのロールを表示

CreatePrivilegeGroup

権限グループを作成

DropPrivilegeGroup

権限グループを削除

ListPrivilegeGroups

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

OperatePrivilegeGroup

権限グループに権限を追加または権限グループから権限を削除