En un artículo anterior, "Automatización de la Gestión de Acceso en Power BI: Eliminación de Usuarios Manualmente Agregados a las Áreas de Trabajo", compartí un script para eliminar el acceso manual que se había otorgado a usuarios en una área de trabajo específica de Power BI. Hoy, quiero presentarles una versión mejorada que no solo elimina el acceso manual de una única área de trabajo, sino que lo hace automáticamente para todas las áreas de trabajo Premium a las que tienes acceso como administrador de capacidades Premium.
¿Por qué es importante?
Administrar el acceso a las áreas de trabajo de Power BI es una tarea crítica para mantener la seguridad y la eficiencia en el manejo de datos. Los accesos manuales pueden volverse difíciles de gestionar y pueden llevar a problemas de seguridad si no se controlan adecuadamente. Este script te ayudará a mantener tus áreas de trabajo organizadas y seguras al eliminar automáticamente los accesos manuales que ya no sean necesarios.
Cómo Funciona el script
- Instalación y Configuración: El script comienza instalando la librería
semantic-link-labs
, que es necesaria para interactuar con Power BI. - Obtener Áreas de Trabajo: Luego, obtiene una lista de todas las áreas de trabajo a las que tienes acceso, filtrando solo las áreas de trabajo Premium.
- Filtrar Usuarios Manuales: Para cada área de trabajo Premium, filtra la lista de usuarios para obtener solo aquellos que fueron agregados manualmente.
- Eliminar Accesos: Finalmente, recorre la lista de usuarios manuales y elimina su acceso de cada área de trabajo Premium.
Script
#This script removes all manual access given to users from all Premium Workspaces that you have access to
%pip install semantic-link-labsimport sempy_labs as labsimport sempy.fabric as fabric
#Full list of workspaceslist_workspaces = fabric.list_workspaces()print("Full list of workspaces that I have access to:")display(list_workspaces)
#Full list of Premium Workspaceslist_workspaces_to_remove_access = list_workspaces[list_workspaces['Capacity Id'].notnull()]#list_workspaces2 = list_workspaces[list_workspaces['Name'].isin(["Test", "REST API", "LP"])]print("Full list of Premium workspaces that I have access to:")display(list_workspaces_to_remove_access)list_workspaces_to_remove_access = list_workspaces_to_remove_access[["Name"]]print("Name of Workspaces:")display(list_workspaces_to_remove_access)
#Looping all workspacesfor i, row in list_workspaces_to_remove_access.iterrows(): WorkspaceName = row['Name']
#Get list of all users with access to the workspace workspace_users = labs.list_workspace_users(WorkspaceName) print(f"All access for workspace '{WorkspaceName}:'") display(workspace_users)
#Get the list of users that were added manually to the workspace workspace_users = workspace_users[workspace_users['Type'].isin(["User"])] #Be careful with this line of code. You could remove the whole access. workspace_users_to_delete = workspace_users[["Email Address"]] print(f"Users to delete from Workspace '{WorkspaceName}':") display(workspace_users_to_delete)
#Remove access of those users that were added manually index = 0 lenght = len(workspace_users_to_delete) while index < lenght: print(WorkspaceName) labs.delete_user_from_workspace(workspace_users_to_delete.iloc[index, 0], WorkspaceName) index +=1
#This script removes all manual access given to users from all Premium Workspaces that you have access to
%pip install semantic-link-labsimport sempy_labs as labsimport sempy.fabric as fabric
#Full list of workspaceslist_workspaces = fabric.list_workspaces()print("Full list of workspaces that I have access to:")display(list_workspaces)
#Full list of Premium Workspaceslist_workspaces_to_remove_access = list_workspaces[list_workspaces['Capacity Id'].notnull()]#list_workspaces2 = list_workspaces[list_workspaces['Name'].isin(["Test", "REST API", "LP"])]print("Full list of Premium workspaces that I have access to:")display(list_workspaces_to_remove_access)list_workspaces_to_remove_access = list_workspaces_to_remove_access[["Name"]]print("Name of Workspaces:")display(list_workspaces_to_remove_access)
#Looping all workspacesfor i, row in list_workspaces_to_remove_access.iterrows(): WorkspaceName = row['Name']
#Get list of all users with access to the workspace workspace_users = labs.list_workspace_users(WorkspaceName) print(f"All access for workspace '{WorkspaceName}:'") display(workspace_users)
#Get the list of users that were added manually to the workspace workspace_users = workspace_users[workspace_users['Type'].isin(["User"])] #Be careful with this line of code. You could remove the whole access. workspace_users_to_delete = workspace_users[["Email Address"]] print(f"Users to delete from Workspace '{WorkspaceName}':") display(workspace_users_to_delete)
#Remove access of those users that were added manually index = 0 lenght = len(workspace_users_to_delete) while index < lenght: print(WorkspaceName) labs.delete_user_from_workspace(workspace_users_to_delete.iloc[index, 0], WorkspaceName) index +=1
Ventajas de Automatizar este Proceso
- Ahorro de Tiempo: Automatizar la eliminación de accesos manuales reduce el tiempo necesario para gestionar permisos en múltiples áreas de trabajo.
- Seguridad Mejorada: Al eliminar accesos no necesarios, reduces el riesgo de accesos no autorizados a tus datos.
- Mantenimiento Sencillo: Mantener las áreas de trabajo organizadas y con los permisos correctos se vuelve una tarea más sencilla y menos propensa a errores.
Consideraciones Finales
Automatizar la gestión de accesos en Power BI no solo mejora la eficiencia, sino que también incrementa la seguridad de tus datos. Este script es una herramienta poderosa para administradores que buscan mantener un entorno de trabajo limpio y seguro. Si tienes alguna duda, sugerencia o necesitas asistencia adicional, no dudes en dejar tus comentarios abajo.
No hay comentarios:
Publicar un comentario