Ga naar de inhoud
R Roesli.
Ga terug
governance

Houd Databricks- en Fabric-permissions gelijk met Policy Weaver

Een praktische gids voor Microsofts open-source Policy Weaver-accelerator om Databricks Unity Catalog-permissions te vertalen naar OneLake security roles.

Een catalog mirroren betekent niet dat je het security model mirrort.

Fabric kan Azure Databricks Unity Catalog-tabellen ontsluiten via een mirrored catalog en OneLake-shortcuts, maar Databricks-permissions worden niet automatisch OneLake-roles. Een kleine omgeving kan beide handmatig bijhouden. Een veranderende catalog met veel groepen, masks en row filters heeft een herhaalbaar synchronisatieproces nodig.

Policy Weaver is Microsofts open-source accelerator voor die taak. Hij leest source permissions, mapt ondersteunde policies, resolved principals en schrijft OneLake data access roles voor een mirrored item.

Het belangrijke woord is ondersteunde.

Waar het past

Dit vervolgt Azure Databricks Unity Catalog-data in Fabric gebruiken met shortcuts.

Unity Catalog grants, groups, masks, and row filters
        |
        v
Policy Weaver
        |
        +--> resolve effective privileges
        +--> map supported constraints
        +--> resolve Entra principals
        |
        v
OneLake data access roles on the mirrored catalog

Policy Weaver kopieert geen data en vervangt de mirrored catalog niet. Het synchroniseert policy intent waar de twee policy languages overlappen. De repository bevat ook Snowflake- en Dataverse-connectors; Dataverse wordt als beta beschreven.

Wat de Databricks-connector kan

Hij kan:

Begin voor security automation met deny voor niet-ondersteunde regels. Een vertaling die stilletjes ruimere toegang verleent is een onaangename verrassing.

Role-based of table-based mapping?

ModeResultaatBeste toepassing
role_basedRoles gebaseerd op source groups of rolesSource-aligned row- en columnconstraints
table_basedEen role per table met gecombineerde principalsEenvoudige table-level access

Gebruik role_based wanneer row-level of column-level security nodig is. Column security en row security vereisen die mapping mode.

Vereisten

Fabric:

  1. een workspace met capacity;
  2. een Mirrored Azure Databricks catalog;
  3. OneLake security ingeschakeld;
  4. een service principal als workspace Admin;
  5. service principals toegestaan om Fabric public APIs aan te roepen; en
  6. item access voor users en groups die aan roles zijn toegewezen.

Databricks:

Principal resolution kan Microsoft Graph User.Read.All application permission vereisen. Verleen alleen wat de gekozen connector nodig heeft.

De enforcementcontroles die mensen missen

Gegenereerde roles in de UI bewijzen geen enforcement.

Het SQL analytics endpoint moet User’s identity access mode gebruiken:

  1. open Security;
  2. open View data access mode;
  3. selecteer User’s identity access mode; en
  4. pas dit toe.

Delegated identity mode negeert OneLake-roles en gebruikt SQL-permissions. Het opnieuw maken van het mirrored item kan deze setting resetten.

Governed consumers horen normaal Viewers te zijn. Admins, Members en Contributors omzeilen OneLake security. Een group in een OneLake-role heeft ook Fabric-toegang tot het item of de workspace nodig.

1. Installeer het package

Policy Weaver vereist Python 3.11 of later:

pip install policy-weaver

Pin en test de versie voor herhaalbare automation. Valideer het betaproject tegen een non-production mirrored catalog.

2. Bescherm credentials

Commit geen secrets, tokens of tenantspecifieke credentials. Gebruik Key Vault-secret names in configuratie. Gebruik in een Fabric-notebook fabric_notebook authentication; buiten Fabric ondersteunt het project Azure CLI authentication.

3. Begin met een smalle configuratie

keyvault:
  use_key_vault: true
  name: my-policy-weaver-vault
  authentication_method: fabric_notebook

fabric:
  mirror_id: "<mirrored-catalog-item-id>"
  mirror_name: "sales_catalog"
  workspace_id: "<fabric-workspace-id>"
  tenant_id: "<entra-tenant-id>"
  fabric_role_suffix: "PW"
  delete_default_reader_role: true
  policy_mapping: role_based

constraints:
  columns:
    columnlevelsecurity: true
    fallback: deny
  rows:
    rowlevelsecurity: true
    fallback: deny

service_principal:
  client_id: "kv-policy-weaver-client-id"
  client_secret: "kv-policy-weaver-client-secret"
  tenant_id: "kv-policy-weaver-tenant-id"

source:
  name: "sales_catalog"
  schemas:
    - name: "sales"
      tables:
        - "orders"
        - "customers"

type: UNITY_CATALOG

databricks:
  workspace_url: "https://adb-xxxxxxxxxxxxxxxx.x.azuredatabricks.net/"
  account_id: "<databricks-account-id>"
  account_api_token: "kv-databricks-oauth-secret"

delete_default_reader_role: true kan brede standaardtoegang verwijderen. Gebruik dit alleen nadat je hebt getest dat iedere bedoelde role wordt gegenereerd en toegewezen.

4. Draai de synchronisatie

from policyweaver.weaver import WeaverAgent
from policyweaver.plugins.databricks.model import DatabricksSourceMap

config = DatabricksSourceMap.from_yaml("/lakehouse/default/Files/policy-weaver/config.yaml")

await WeaverAgent.run(config)

De run past de actuele sourcestate toe. Het is geen continue control plane, dus plan hem via een job, pipeline of notebook. Serialiseer runs tegen dezelfde roleset.

5. Test toegang, niet alleen het maken van roles

Gebruik minstens twee beperkte Viewer-identities:

  1. één die een geselecteerde tabel moet kunnen lezen;
  2. één die geweigerd moet worden of een beperkte subset moet zien.

Verifieer:

Een role die er in de UI goed uitziet, maar alleen door een workspace Admin is getest, is niet getest.

6. Beheer het als security automation

Snapshot hooks ondersteunen auditworkflows, maar het normale WeaverAgent.run-pad past nog steeds policystate toe. Een testitem is veiliger dan aannemen dat snapshots een dry run zijn.

Belangrijke beperkingen

Policy Weaver vermindert repetitief beheer. Het vervangt geen policydesign, least-privilege review, restricted-identitytests of monitoring.

Wanneer ik het zou gebruiken

Gebruik het wanneer Unity Catalog de source of truth is, dezelfde governed data in Databricks en Fabric wordt gebruikt en ondersteunde policies de belangrijkste toegangspatronen dekken. Houd handmatige roles wanneer de dataset klein is, toegang stabiel is of de source sterk leunt op expressions die niet veilig kunnen worden gemapt.

Bron en verder lezen

Als de accelerator nuttig is, geef de Policy Weaver-repository een star en gebruik de issue tracker voor productspecifieke vragen.


Deel deze post:

Lees verder

Vorige post
Een managed dbt job gebruiken in Microsoft Fabric
Volgende post
Azure Databricks Unity Catalog-data in Fabric gebruiken met shortcuts
Community

Praat mee

Meld je aan met GitHub om een reactie achter te laten.

GitHub

Reacties laden…

Meld je aan met GitHub om te reageren