Successfully reported this slideshow.
Your SlideShare is downloading. ×

SolidQ Summit 2018 - Seguridad a nivel datos. RLS

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Aplicaciones En Capas
Aplicaciones En Capas
Loading in …3
×

Check these out next

1 of 29 Ad

SolidQ Summit 2018 - Seguridad a nivel datos. RLS

Download to read offline

http://bit.ly/SQSummit
Con el creciente despliegue de modelos tabulares y servicios de tiempo real conectados a ellos, nos surge siempre una misma pregunta: ¿Cómo controlo quien puede acceder a determinados datos en esos modelos y arquitecturas modernas? Abordaremos distintos escenarios de conexión de Power BI y modelos tabulares, su implementación, mantenimiento y buenas prácticas.

http://bit.ly/SQSummit
Con el creciente despliegue de modelos tabulares y servicios de tiempo real conectados a ellos, nos surge siempre una misma pregunta: ¿Cómo controlo quien puede acceder a determinados datos en esos modelos y arquitecturas modernas? Abordaremos distintos escenarios de conexión de Power BI y modelos tabulares, su implementación, mantenimiento y buenas prácticas.

Advertisement
Advertisement

More Related Content

Similar to SolidQ Summit 2018 - Seguridad a nivel datos. RLS (20)

More from SolidQ (20)

Advertisement

Recently uploaded (20)

SolidQ Summit 2018 - Seguridad a nivel datos. RLS

  1. 1. Asegura los datos de tu modeloa nivel de fila Tama Francisquez Victor García
  2. 2. Agenda  Seguridad a Nivel de Filas (RLS)  Necesidad  Escenarios para Seguridad RLS  Algunas Piezas de la Seguridad RLS  Identidad de Usuarios  Acceso al Dato PowerBI / Tabular  Métodos para RLS  Estático  Dinámico  Otras Implementaciones Dinámicas  SQL Backend*
  3. 3. Seguridad a Nivel de Filas
  4. 4. ¿Por qué asegurar nuestro dato?
  5. 5. ¿Cómo compartir reportes? Compartir Dashboard Workspace App de Power BI Publicar a la web Sharepoint Online Power BI Embebido AS Tabular On-Prem AS Tabular Gateway Gratis Si Sin Necesidad de cuenta en Power BI Si Si Niveles de Acceso Lectura Lectura / Escritura Lectura Lectura Lectura Lectura Lectura / Procesado Lectura Puedes Compartir con otros Si Si Si Si No Entornos de Desarrollo / Producción Si Si Si Compartir Multiples Items Si Si Extras Web Developer Seguridad a Nivel de Filas Si Si Si Si Si Si Si
  6. 6. Seguridad a Nivel de Filas Capacidad para controlar finamente el acceso a cada fila en contextos con multiples usuarios.
  7. 7. Escenarios para RLS On-Prem Cloud Grupo AAD Usuarios AAD PowerBI Service Azure Analysis Services On-Prem Data Gateway Report or Tabular Model Sources
  8. 8. Componentes para Seguridad RLS
  9. 9. Identidad de Usuarios – On-prem  Necesidad de elegir una arquitectura de identidades:  Identidades Administradas  Identidades Federadas  Seguridad Basada en Dominio Activo  Roles
  10. 10. Identidad de Usuarios – Cloud  Seguridad Basada en Dominio Activo de Azure (AAD)  Necesidad de elegir una arquitectura de identidades:  Identidades Administradas  Identidades Federadas  Puedes replicar tu AAD con un directorio on-prem
  11. 11. Acceso al Dato – On-Prem
  12. 12. On-Prem Data Gateway  Daemon que se conecta con Azure (Bus + Cloud Gateway) Data source Live/DirectQuery User configured manual or scheduled refresh Analysis Services Tabular Yes Yes Analysis Services Multidimensional Yes Yes File Yes Folder Yes IBM DB2 Yes IBM Informix Database Yes IBM Netezza Yes Yes Impala Yes Yes MySQL Yes OData Yes ODBC Yes Oledb Yes Oracle Yes Yes PostgresSQL Yes SAP BW Yes Yes SAP HANA Yes Yes SharePoint list (on-premises) Yes Snowflake Yes Yes SQL Server Yes Yes Sybase Yes Teradata Yes Yes Web Yes
  13. 13. Métodos de Seguridad
  14. 14. RLS – Método Estático Power BI  Implementación  Usuarios / Roles  Reglas  Gateway  Publicación  Gestión de Miembros en Servicio Power BI
  15. 15. Demo  Seguridad estática Power BI
  16. 16. RLS – Método Estático Tabular  Implementación  Usuarios / Roles  Reglas  Consumo del Dato
  17. 17. Demo  Seguridad estática SSAS Tabular
  18. 18. RLS – Método Dinámico  Método usado en Enterprise  Reduce costo de mantenimiento  Implementación  Usando las funciones USERNAME() or UserPrincipalName() en DAX =DimSalesTerritory[SalesTerritoryKey] = LOOKUPVALUE( DimUserSecurity[SalesTerritoryID], DimUserSecurity[UserName], USERNAME(), DimUserSecurity[SalesTerritoryID], DimSalesTerritory[SalesTerritoryKey])
  19. 19. RLS – Método Dinámico  Otras implementaciones dinámicas  Acceso a Nivel de Gerente  Acceso Jerarquizado = PATHCONTAINS(User[Path], MaxX( Filter( User, [Email]=USERPRINCIPALNAME()) ,User[ID] ) ) If( MaxX( Filter( 'Sales Rep', 'Sales Rep'[Email]=Username()) ,'Sales Rep'[Is Manager])=0, 'Sales Rep'[Email]=Username(), 1=1 )
  20. 20. Demo  Seguridad dinámica PowerBI / Tabular
  21. 21. Bonus
  22. 22. RLS en SQL Backend
  23. 23. Bonus Track: RLS en SQL Backend CREATE SECURITY POLICY mySecurityPolicy ADD FILTER PREDICATE dbo.fn_securitypredicate(wing, startTime, endTime) ON dbo.patients Predicate function User-defined inline table-valued function (iTVF) implementing security logic Can be arbitrarily complicated, containing joins with other tables Security predicate Binds a predicate function to a particular table, applying it for all queries Two types: filter predicates and blocking predicates (coming soon) Security policy Collection of security predicates for managing security across multiple tables
  24. 24. Three Security Policy transparently rewrites query to apply filter predicate Bonus Track: RLS en SQL BackendTwo App user (e.g., nurse) selects from Patients table Database Policy Manager CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Filter Predicate: INNER JOIN… Security Policy Application Nurse SELECT * FROM Patients SELECT * FROM Patients SEMIJOIN APPLY dbo.fn_securitypredicate(patients.Wing); SELECT Patients.* FROM Patients, StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND Patients.wing = d.Wing; One
  25. 25. Bonus Track: RLS en SQL Backend CREATE FUNCTION dbo.fn_securitypredicate(@wing int) RETURNS TABLE WITH SCHEMABINDING AS return SELECT 1 as [fn_securitypredicate_result] FROM StaffDuties d INNER JOIN Employees e ON (d.EmpId = e.EmpId) WHERE e.UserSID = SUSER_SID() AND @wing = d.Wing; CREATE SECURITY POLICY dbo.SecPol ADD FILTER PREDICATE dbo.fn_securitypredicate(Wing) ON Patients WITH (STATE = ON) Fine-grained access control over rows in a table based on one or more pre-defined filtering criteria, such as user’s role or clearance level in organization Concepts: Predicate function Security policy
  26. 26. Recursos y Referencias  Whitepaper de Seguridad en PowerBI https://docs.microsoft.com/en-us/power-bi/service-admin-power-bi-security  On-Prem Data Gateway https://docs.microsoft.com/en-us/power-bi/service-gateway-onprem  Whitepaper de Seguridad en Modelos Tabulares https://docs.microsoft.com/en-us/sql/analysis-services/tabular-models/object-level-security
  27. 27. Resumen  Seguridad a Nivel de Filas (RLS)  Necesidad  Escenarios para Seguridad RLS  Algunas Piezas de la Seguridad RLS  Identidad de Usuarios  Acceso al Dato PowerBI / Tabular  Métodos para RLS  Estático  Dinámico  Otras Implementaciones Dinámicas  SQL Backend*
  28. 28. Seguridad a Nivel de Filas
  29. 29. Preguntas

×