ユーザ、権限、ロール
このトピックでは、Milvusにおけるロールベースアクセスコントロール(RBAC)の概要を説明し、ユーザ、ロール、オブジェクト、権限の定義と関係について詳しく説明します。
以下の図にオブジェクト、権限、ロール、ユーザの関係を示します。
ユーザとロール
主要概念
Milvusリソースへのアクセスコントロールを管理するためには、RBACの主要な構成要素であるオブジェクトタイプ、オブジェクト名、ユーザ、ロール、権限を理解することが重要です。
オブジェクトタイプ: 特権が割り当てられるオブジェクトのカテゴリ。オブジェクト タイプには次のようなものがあります:
Global
:システム全体のオブジェクト。すべてのコレクション、ユーザー、またはシステム全体の設定に影響するアクションをユーザーが実行できます。Collection
:コレクション固有のオブジェクト : インデックスの作成、データのロード、データの挿入または削除、特定のコレクション内のデータのクエリなどのアクションを実行できます。User
:ユーザ資格情報の更新やユーザ詳細の表示など、ユーザがデータベース・ユーザの資格情報およびロールを管理できるようにします。
オブジェクト名:アクセスを制御するオブジェクトの具体的な名前。たとえば
- オブジェクトのタイプが
Global
の場合、オブジェクト名にはワイルドカード (*
) を設定する必要があります。 - オブジェクト・タイプが
Collection
の場合、オブジェクト名はコレクション名です。 - オブジェクト・タイプが
User
の場合、オブジェクト名はデータベース・ユーザの名前です。
- オブジェクトのタイプが
ユーザー(User): Milvusと相互作用する個人またはアプリケーションで、ユーザー名と対応するパスワードから構成される。
特権:実行可能なアクションとアクセス可能なリソースを定義する。権限はユーザに直接付与されるのではなく、ロールに割り当てられる。
ロール:ユーザーが特定のオブジェクトに対して持つ権限のセットを定義します。ロールがユーザにバインドされると、ユーザはそのロールに付与されたすべての特権を継承します。
例権限の付与
次のコード・スニペットは、特定のコレクションに対してCreateIndex
特権をロールに付与する方法を示しています:
milvusClient.grant_privilege(
role_name="CUSTOM_ROLE_NAME",
object_type="Collection", # Valid value: Global, Collection or User.
privilege="CreateIndex", # See the table below for valid privilege names and relevant API descriptions.
object_name="YOUR_COLLECTION_NAME" # The name of the collection to grant access to. Use "*" to grant access to all collections.
)
GrantPrivilegeReq grantPrivilegeReq = GrantPrivilegeReq.builder()
.roleName("roleName")
.objectName("CollectionName") // The name of the collection to grant access to. Use "*" to grant access to all collections.
.objectType("Collection") // Valid value: Global, Collection or User.
.privilege("CreateIndex") // See the table below for valid privilege names and relevant API descriptions.
.build();
client.grantPrivilege(grantPrivilegeReq);
milvusClient.grantPrivilege({
roleName: 'roleName',
object: 'Collection', // Valid value: Global, Collection or User.
objectName: 'CollectionName', // The name of the collection to grant access to. Use "*" to grant access to all collections.
privilegeName: 'CreateIndex' // See the table below for valid privilege names and relevant API descriptions.
})
権限関連APIの詳細については、grant_privilegeと revoke_privilegeを参照してください。
特権関連APIについての詳細は、grantPrivilegeと revokePrivilegeを参照してください。
特権関連 API の詳細については、grantPrivilegeおよびrevokePrivilege を参照してください。
デフォルトのユーザとロール
Milvus はデフォルトでroot
ユーザーをデフォルトパスワードMilvus
で作成します。root
ユーザーにはadmin
権限が付与されます。これは、このroot
ユーザーがすべてのリソースにアクセスでき、すべてのアクションを実行できることを意味します。
ユーザがpublic
ロールと関連付けられている場合、そのユーザには以下の権限が与えられます:
DescribeCollection
ShowCollections
IndexDetail
オブジェクト・タイプと権限のリスト
次の表は、RBACを有効にするときに選択できる値の一覧です。
オブジェクト・タイプ | 特権名 | クライアント側の関連APIの説明 |
---|---|---|
コレクション | 作成インデックス | インデックス作成 |
コレクション | ドロップインデックス | ドロップインデックス |
コレクション | インデックスの詳細 | DescribeIndex/GetIndexState/GetIndexBuildProgress(インデックス構築状況) |
コレクション | ロード | LoadCollection/GetLoadingProgress/GetLoadState |
コレクション | ロード進行状況取得 | ロード進行状況の取得 |
コレクション | ロード状態取得 | ロード状態取得 |
コレクション | リリース | リリースコレクション |
コレクション | 挿入 | インサート |
コレクション | 削除 | 削除 |
コレクション | アップサート | アップサート |
コレクション | 検索 | 検索 |
コレクション | フラッシュ | フラッシュ/フラッシュ状態取得 |
コレクション | フラッシュ状態取得 | フラッシュ状態の取得 |
コレクション | クエリー | クエリー |
コレクション | 統計 | コレクション統計 |
コレクション | コンパクション | コンパクト |
コレクション | インポート | 一括挿入/インポート |
コレクション | ロードバランス | ロードバランス |
コレクション | パーティション作成 | パーティションの作成 |
コレクション | ドロップパーティション | ドロップパーティション |
コレクション | パーティションの表示 | パーティションを表示 |
コレクション | パーティション | パーティションを持つ |
グローバル | すべて | このテーブルのすべてのAPI操作権限 |
グローバル | コレクションの作成 | コレクションの作成 |
グローバル | ドロップコレクション | ドロップコレクション |
グローバル | DescribeCollection | DescribeCollection |
グローバル | コレクションの表示 | コレクションを表示 |
グローバル | コレクション名の変更 | リネームコレクション |
グローバル | すべてをフラッシュ | すべてをフラッシュ |
グローバル | オーナーシップの作成 | CreateUser CreateRole |
グローバル | 所有権の削除 | 削除クレデンシャル DropRole |
グローバル | オーナーシップ選択 | セレクトロール/セレクトグラント |
グローバル | オーナーシップの管理 | OperateUserRole(ユーザー役割の操作) OperatePrivilege(権限の操作 |
グローバル | リソースグループの作成 | リソースグループの作成 |
グローバル | リソースグループの削除 | DropResourceグループ |
グローバル | DescribeResourceGroup | リソースグループ |
グローバル | リソースグループの一覧 | リソースグループの一覧 |
グローバル | 転送ノード | 転送ノード |
グローバル | トランスファーレプリカ | トランスファーレプリカ |
グローバル | データベースの作成 | データベースの作成 |
グローバル | データベースの削除 | データベースの削除 |
グローバル | データベース一覧 | リストデータベース |
グローバル | エイリアスの作成 | エイリアス作成 |
グローバル | エイリアスの削除 | ドロップエイリアス |
グローバル | エイリアスの記述 | エイリアス記述 |
グローバル | エイリアス一覧 | エイリアス一覧 |
ユーザ | 更新ユーザ | 更新クレデンシャル |
ユーザー | ユーザー選択 | ユーザー選択 |
次のページ
- RBACを有効にする方法について説明します。