Usuarios, Privilegios y Roles
Este tema proporciona una visión general del Control de Acceso Basado en Roles (RBAC) en Milvus, detallando las definiciones y relaciones entre usuarios, roles, objetos y privilegios.
La siguiente figura ilustra la relación entre objetos, privilegios, roles y usuarios.
usuarios_y_roles
Conceptos clave
Para gestionar el control de acceso a los recursos de Milvus, es importante comprender los componentes clave de RBAC: tipos de objeto, nombres de objeto, usuarios, roles y privilegios.
Tipo de objeto: la categoría del objeto al que se asigna un privilegio. El tipo de objeto puede ser:
Global: Objetos de todo el sistema, que permiten al usuario realizar acciones que afectan a todas las colecciones, usuarios o configuraciones de todo el sistema.Collection: Objetos específicos de la colección, que permiten al usuario realizar acciones como crear índices, cargar datos, insertar o eliminar datos y consultar datos dentro de una colección específica.User: Objetos relacionados con la gestión de usuarios, que permiten al usuario gestionar las credenciales y los roles de los usuarios de la base de datos, como actualizar las credenciales de usuario o ver los detalles de los usuarios.
Nombre del objeto: el nombre específico del objeto para el que se desea controlar el acceso. Por ejemplo:
- Si el tipo de objeto es
Global, el nombre del objeto debe establecerse con el comodín (*), indicando todos los objetos del tipo especificado. - Si el tipo de objeto es
Collection, el nombre del objeto es el nombre de una colección. - Si el tipo de objeto es
User, el nombre del objeto es el nombre de un usuario de la base de datos.
- Si el tipo de objeto es
Usuario: una persona o una aplicación que interactúa con Milvus, que consiste en un nombre de usuario y una contraseña correspondiente.
Privilegio: define las acciones que se pueden realizar y los recursos a los que se puede acceder. Los privilegios no se conceden directamente a los usuarios, sino que se asignan a roles.
Rol: define el conjunto de privilegios que tiene un usuario para determinados objetos. Una vez que se asigna un rol a un usuario, éste hereda todos los privilegios concedidos a dicho rol.
Ejemplo: Concesión de privilegios
El siguiente fragmento de código muestra cómo conceder un privilegio CreateIndex a un rol sobre una colección específica:
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.
})
Para obtener más información sobre las API relacionadas con privilegios, consulte grant_privilege y revoke_privilege.
Para obtener más información sobre las API relacionadas con privilegios, consulte grantPrivilege y revokePrivilege.
Para obtener más información sobre las API relacionadas con privilegios, consulte grantPrivilege y revokePrivilege.
Usuarios y roles por defecto
Milvus crea por defecto un usuario root con una contraseña por defecto Milvus. Al usuario root se le conceden los privilegios admin, lo que significa que este usuario root puede tener acceso a todos los recursos y realizar todas las acciones.
Si a un usuario se le asocia el rol public, tendrá derecho a los siguientes privilegios:
DescribeCollectionShowCollectionsIndexDetail
Lista de tipos de objeto y privilegios
En la siguiente tabla se enumeran los valores que puede elegir al habilitar RBAC.
| Tipo de objeto | Nombre del privilegio | Descripción de la API relevante en el lado del cliente |
|---|---|---|
| Colección | CreateIndex | Crearíndice |
| Colección | DropIndex | DropIndex |
| Colección | IndexDetail | DescribeIndex/GetIndexState/GetIndexBuildProgress |
| Colección | Cargar | LoadCollection/GetLoadingProgress/GetLoadState |
| Colección | GetLoadingProgress | GetLoadingProgress |
| Colección | GetLoadState | Obtener estado de carga |
| Colección | Liberación | LiberarColección |
| Colección | Insertar | Insertar |
| Colección | Borrar | Borrar |
| Colección | Insertar | Upsert |
| Colección | Buscar en | Buscar en |
| Colección | Descarga | Descarga/GetFlushState |
| Colección | GetFlushState | GetFlushState |
| Colección | Consulta | Consulta |
| Colección | GetStatistics | Obtener estadísticas de la colección |
| Colección | Compactación | Compactación |
| Colección | Importar | Importación/Inserción masiva |
| Colección | Balance de carga | Balance de carga |
| Colección | CrearPartición | CrearPartición |
| Colección | DropPartition | DropPartition |
| Colección | MostrarParticiones | MostrarParticiones |
| Colección | TienePartición | TienePartición |
| Global | Todos | Todos los permisos de operación de la API en esta tabla |
| Global | CrearColección | CrearColección |
| Global | DropCollection | DropCollection |
| Global | DescribirColección | DescribeCollection |
| Global | MostrarColecciones | MostrarColecciones |
| Global | RenombrarColección | RenombrarColección |
| Global | LimpiarTodo | LimpiarTodo |
| Global | CrearPropiedad | CrearUsuario CrearRol |
| Global | EliminarPropiedad | EliminarCredencial DropRole |
| Global | SeleccionarPropiedad | SelectRole/SelectGrant |
| Global | GestionarPropiedad | OperateUserRole OperatePrivilege |
| Global | CreateResourceGroup | Crear grupo de recursos |
| Global | DropResourceGroup | DropResourceGroup |
| Global | DescribeResourceGroup | DescribeResourceGroup |
| Global | ListResourceGroups | ListResourceGroups |
| Global | Nodo de transferencia | Nodo de transferencia |
| Global | Réplica de transferencia | Réplica de transferencia |
| Global | CrearBaseDeDatos | CrearBaseDeDatos |
| Global | DropDatabase | DropDatabase |
| Global | ListDatabases | BasesDeDatosDeLista |
| Global | Crear alias | Crear alias |
| Global | DropAlias | DropAlias |
| Global | DescribeAlias | DescribeAlias |
| Global | ListAliases | Lista de alias |
| Usuario | UpdateUser | UpdateCredential |
| Usuario | SeleccionarUsuario | SeleccionarUsuario |
A continuación
- Aprenda a activar RBAC.