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

権限と権限グループ

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

✔️

✔️

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

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

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

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

以下の例は、PrivilegeBackupRBACPrivilegeRestoreRBACという権限を、作成したばかりの権限グループ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

データベース内のすべてのコレクションをフラッシュ

パション権限

権限

説明

HasPartition

パーティションが存在するか確認

ShowPartitions

コレクション内のすべてのパーティションを表示

CreatePartition

パーティションを作成

DropPartition

パーティションを削除

インデックス権限

権限

説明

IndexDetail

インデックスの詳細を表示

CreateIndex

インデックスを作成

DropIndex

インデックスを削除

リソース管理権限

権限

説明

CreateResourceGroup

リソースグループを作成

DropResourceGroup

リソースグループを削除

UpdateResourceGroups

リソースグループを更新

DescribeResourceGroup

リソースグループの詳細を表示

ListResourceGroups

すべてのリソースグループを一覧表示

TransferNode

ノードを転送

TransferReplica

レプリカを転送

RBAC管理権限

権限

説明

CreateOwnership

所有権を作成

UpdateUser

ユーザーを更新

DropOwnership

所有権を削除

SelectOwnership

所有権を選択

ManageOwnership

所有権を管理

SelectUser

ユーザーを選択

BackupRBAC

RBACをバックアップ

RestoreRBAC

RBACを復元

CreatePrivilegeGroup

権限グループを作成

DropPrivilegeGroup

権限グループを削除

ListPrivilegeGroups

すべての権限グループを一覧表示

OperatePrivilegeGroup

権限グループを操作

データ操作権限

権限

説明

Query

コレクションからデータをクエリ

Search

コレクション内でデータを検索

Insert

コレクションにデータを挿入

Delete

コレクションからデータを削除

Upsert

コレクションにデータをアップサート(挿入または更新)

Import

データをインポート