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 objetos, nombres de objetos, 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:
DescribeCollection
ShowCollections
IndexDetail
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 | LoadBalance | 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 | ActualizarUsuario | UpdateCredential |
Usuario | SeleccionarUsuario | SeleccionarUsuario |
A continuación
- Aprenda a activar RBAC.