πŸ‘€ Who is this for?

IT Admin Security Engineer Data Architect β€” This page provides a comprehensive, layered security guide for Microsoft Fabric: from identity and workspace access to data-level controls, OneLake security, information protection, and monitoring.

Security

Defense-in-Depth Security Model

Microsoft Fabric implements a layered security approach β€” every layer adds protection so that no single breach compromises your entire estate. Click any layer to jump to its section.

πŸ“Š Monitoring & Observability

Security and monitoring go hand in hand. For audit log pipelines, alert patterns, capacity monitoring, and Azure Monitor integration, see the dedicated Monitoring & Observability page.

πŸ’‘ Key Principle

Defense-in-depth means no single layer is sufficient on its own. Even if an attacker bypasses identity controls, workspace isolation, data-level security, and network restrictions each provide additional barriers. Implement all layers for a robust security posture.

Layer 1

Identity & Access Management

Microsoft Entra ID is the single identity provider for all Fabric access β€” every request is authenticated before it reaches any resource.

πŸ”‘ Microsoft Entra ID

All Fabric authentication goes through Entra ID. Users sign in with organizational accounts, and every API call requires a valid Entra token.

  • Single Sign-On (SSO) β€” seamless access across Fabric, Power BI, and Microsoft 365
  • Multi-Factor Authentication (MFA) β€” enforce MFA for all users, especially admins
  • Entra ID Groups β€” assign workspace roles and security policies to groups, not individuals

🚦 Conditional Access

Use Entra ID Conditional Access policies to control how and from where users access Fabric.

  • Location-based β€” restrict to trusted networks or named locations
  • Device compliance β€” require Intune-compliant or domain-joined devices
  • Session controls β€” enforce sign-in frequency, block persistent sessions
  • Risk-based β€” step-up MFA for risky sign-ins detected by Entra ID Protection

πŸ€– Service Principals

Use service principals for automation and CI/CD pipelines instead of user accounts.

  • Enable "Service principals can use Fabric APIs" in admin portal
  • Assign to security groups for scoped access
  • Use certificates over secrets β€” shorter rotation, no password leaks
  • Apply Conditional Access policies to restrict where they operate

πŸ”— Managed Identities

Managed identities enable credential-free authentication from Fabric to Azure resources.

  • System-assigned β€” lifecycle tied to the Fabric resource
  • User-assigned β€” reusable across multiple resources
  • Use for connecting to ADLS, Key Vault, SQL without storing credentials

Workspace Identity

Each Fabric workspace can have an automatically managed workspace identity β€” an Entra ID service principal tied to the workspace lifecycle. It enables credential-free, secure access from Fabric items to external Azure resources without managing secrets or certificates.

πŸͺͺ What It Is

  • A managed Entra ID service principal automatically created for the workspace
  • Authenticates the workspace (not a user) when accessing external resources
  • Credentials managed entirely by Fabric β€” no secrets or certificates to rotate
  • Automatically deleted when the workspace is removed
  • Registered in the tenant's Entra ID as an app registration you can assign RBAC roles to

βš™οΈ How to Enable

  1. Open workspace Settings β†’ Identity
  2. Toggle "Workspace identity" to On
  3. Copy the generated Application (client) ID and Object ID
  4. On the target Azure resource (e.g., ADLS Gen2), assign RBAC roles using the identity's Object ID
  5. Configure Fabric items to use "Workspace Identity" as the authentication method

Supported Scenarios

Fabric ItemScenarioNotes
OneLake ShortcutsConnect to ADLS Gen2 (including firewalled accounts)Most common use case; supports resource instance rules
Data PipelinesCopy data to/from protected storage accountsSupports both Copy Activity and Dataflow sources
Copy JobsIngest data from firewalled ADLS into LakehouseUses workspace identity for authentication
Dataflows Gen2Transform data from secured external sourcesAvailable in workspace identity–enabled connectors
T-SQL COPY INTOBulk load into Fabric Warehouse from firewalled storageSpecify CREDENTIAL = 'WorkspaceIdentity'
Semantic ModelsImport mode from ADLS behind firewallsAdded in 2025; supports trusted workspace access
Spark NotebooksRead/write to ADLS using workspace identity tokenUse mssparkutils.credentials.getToken()

Trusted Workspace Access

Trusted workspace access allows Fabric to securely connect to firewall-enabled or private-endpoint–only Azure storage accounts β€” without opening public network access.

πŸ”’ How It Works

  1. Storage account has public access disabled (firewall-only)
  2. Add a resource instance rule on the storage account that trusts the specific Fabric workspace
  3. Workspace identity authenticates with Entra ID and presents the workspace's identity token
  4. Azure Storage validates the token against the resource instance rule and grants access

No VNet, private endpoint, or IP whitelisting required from the Fabric side.

πŸ›‘οΈ Configuration Steps

  1. Enable workspace identity (see above)
  2. On the storage account β†’ Networking β†’ Resource instance rules
  3. Add rule: Resource type = Microsoft.Fabric/workspaces
  4. Specify the workspace's ARM resource ID
  5. Assign RBAC (e.g., Storage Blob Data Contributor) to the workspace identity's Object ID
  6. In Fabric, configure the connection with "Workspace Identity" auth

OnCopy & OnWrite Access Patterns

πŸ“₯ OnCopy (Read from firewalled storage)

  • Fabric reads data from ADLS behind a firewall during copy/ingest operations
  • Requires Storage Blob Data Reader role on the workspace identity
  • Used by: Shortcuts, Copy Activity, T-SQL COPY INTO, Dataflows Gen2
  • Data is copied into OneLake β€” subsequent reads don't hit the external source

πŸ“€ OnWrite (Write back to firewalled storage)

  • Fabric writes results or exports data back to protected ADLS accounts
  • Requires Storage Blob Data Contributor role on the workspace identity
  • Used by: Data Pipelines (sink), Spark notebooks, Warehouse CETAS
  • Supports incremental write patterns for ETL/ELT pipelines

Limitations & Known Issues

πŸ“‹ Requirements & Constraints
  • F SKU only β€” workspace identity is not available on Trial, Premium Per User (PPU), or P SKU capacities
  • No personal workspaces β€” "My Workspace" cannot have a workspace identity
  • One identity per workspace β€” you cannot create multiple identities for a single workspace
  • Identity name = workspace name β€” the identity's display name always matches the workspace name and cannot be customized
  • Admin role required β€” only workspace Admins can enable/manage the identity
  • RBAC propagation delay β€” after assigning roles, allow up to 5 minutes for changes to take effect
  • No cross-tenant support β€” workspace identity can only access resources in the same Entra ID tenant
  • Do NOT modify the app registration β€” deleting or renaming the Entra ID service principal/app registration behind the identity will break Fabric functionality (adding API permissions is safe)
  • Implicit trust within workspace β€” anyone with a workspace role (Member, Contributor) can assume the identity for supported operations; follow least-privilege workspace role assignments
  • Connector coverage is evolving β€” not all Fabric connectors support workspace identity authentication yet; check the latest docs for your specific data source
  • Contributor role removed (July 2025) β€” workspace identity no longer gets automatic Contributor access; admins must explicitly assign roles on target resources
⚠️ Common Mistakes
  • Don't use personal user accounts for scheduled refreshes, pipelines, or automated processes β€” if that user leaves, all dependent workloads break
  • Don't forget to add the resource instance rule on the storage account β€” RBAC alone won't bypass the firewall
  • Don't confuse workspace identity with managed identity for Azure resources β€” workspace identity is Fabric-specific
Layer 2

Workspace Security

Workspaces are the primary security boundary in Fabric β€” they determine who can access, create, and manage artifacts.

Built-in Workspace Roles

RolePermissionsTypical AssignmentOneLake Access
AdminFull control: manage access, delete workspace, configure settingsWorkspace owners, IT adminsFull
MemberCreate, edit, delete artifacts; publish reports; share itemsData engineers, developersFull
ContributorCreate and edit artifacts, but cannot share or manage accessAnalysts, junior developersFull
ViewerView and interact with artifacts (read-only)Business users, stakeholdersRestricted by data access roles
πŸ”‘ Critical Distinction

Admin, Member, and Contributor roles have full read/write access to all OneLake data in the workspace. Only the Viewer role is restricted by OneLake data access roles. Design your workspace access carefully β€” don't give Member/Contributor access to users who should only see a subset of data.

Workspace Isolation Patterns

πŸ—οΈ Environment Separation

Separate workspaces for Dev β†’ Test β†’ Prod. Each environment has its own access list, ensuring developers can't accidentally modify production data.

🏒 Domain Boundaries

Organize workspaces into Fabric Domains (Finance, Marketing, HR). Domain owners control governance policies for all workspaces in their domain.

πŸ”’ Sensitivity Tiers

Create separate workspaces for sensitive vs. non-sensitive data. Apply stricter Conditional Access and audit policies to high-sensitivity workspaces.

⚑ Capacity Isolation

Assign critical workspaces to dedicated capacities. This provides resource isolation and ensures one team's heavy workloads don't impact another's.

βœ… Best Practice

Use Entra ID security groups for role assignments instead of individual users. This makes access auditable, scalable, and easy to update when team members change.

Layer 3

Item-Level Permissions

Beyond workspace roles, you can grant granular permissions on individual items β€” reports, semantic models, warehouses, and more.

Permission Types

PermissionWhat It AllowsHow It's Granted
ReadView and interact with the itemSharing dialog, app audience, direct link
ReadAllAccess the underlying data in OneLake (files and folders)Item permissions panel
ReadDataQuery data via SQL analytics endpointItem permissions panel
WriteEdit the item (notebooks, reports, pipelines)Workspace role (Contributor+) or item-level grant
ReshareShare the item with other usersSharing dialog option "Allow recipients to share"
ExecuteRun pipelines or notebooksItem permissions panel

Sharing & Distribution

πŸ“€ Direct Sharing

Share individual items with specific users or groups. Choose whether recipients can reshare or build on the data. Use sparingly β€” it creates hard-to-audit one-off permissions.

πŸ“± Fabric Apps

Package reports and dashboards into an app with defined audiences. Apps provide a curated, read-only experience β€” the recommended way to distribute content to business users.

🏷️ Endorsement Signals

  • Promoted β€” workspace members mark items as reliable and ready for use
  • Certified β€” designated reviewers certify items meet governance standards

Endorsed items appear with badges in search, making trusted data easy to find.

⚠️ Avoid Permission Sprawl

If you find yourself sharing dozens of items individually, you probably need to redesign your workspace structure. Prefer workspace roles + apps over per-item sharing. Run the access review in Admin Portal quarterly to clean up stale permissions.

Layer 4

Data-Level Security

Control exactly which rows, columns, and objects each user can see β€” even when they have access to the item itself.

Row-Level Security (RLS)

RLS filters data at query time so users only see rows they're authorized to access. Available in Power BI semantic models and Fabric Warehouse.

T-SQL β€” Row-Level Security in Warehouse
-- Create a security predicate function
CREATE FUNCTION dbo.fn_security_predicate(@Region AS nvarchar(50))
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 1 AS result
WHERE @Region = USER_NAME()
   OR USER_NAME() = 'admin@contoso.com';

-- Apply security policy to a table
CREATE SECURITY POLICY RegionFilter
ADD FILTER PREDICATE dbo.fn_security_predicate(Region)
ON dbo.SalesData
WITH (STATE = ON);
πŸ’‘ RLS in Power BI

Define roles and DAX filter expressions in Power BI Desktop. Test with "View as role" before publishing. RLS is enforced in the Power BI service, apps, and embedded scenarios β€” but not when querying the underlying lakehouse directly.

Column-Level Security (CLS)

CLS restricts access to specific columns using standard SQL GRANT and DENY statements in Fabric Warehouse.

T-SQL β€” Column-Level Security
-- Deny access to salary column for a specific role
DENY SELECT ON dbo.Employees(Salary, SSN) TO [LimitedAccess];

-- Grant access to only specific columns
GRANT SELECT ON dbo.Employees(EmployeeId, Name, Department) TO [LimitedAccess];

Object-Level Security (OLS)

OLS hides entire tables or columns from specific users in Power BI semantic models. Unlike CLS which returns an error, OLS makes the object completely invisible β€” users don't even see it in field lists.

Dynamic Data Masking (DDM)

DDM masks sensitive data in query results without changing the stored data. Non-privileged users see masked values; privileged users see the original. Available in both Fabric Warehouse and Lakehouse SQL analytics endpoint.

T-SQL β€” Dynamic Data Masking in Warehouse / Lakehouse SQL Endpoint
-- Mask email column with partial masking
ALTER TABLE dbo.Customers
ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()');

-- Mask phone with custom partial mask (show last 4 digits)
ALTER TABLE dbo.Customers
ALTER COLUMN Phone ADD MASKED WITH (FUNCTION = 'partial(0,"XXX-XXX-",4)');

-- Full mask on SSN (returns "xxxx")
ALTER TABLE dbo.Customers
ALTER COLUMN SSN ADD MASKED WITH (FUNCTION = 'default()');

-- Grant UNMASK to privileged roles
GRANT UNMASK ON dbo.Customers TO [PrivilegedAnalysts];
πŸ”’ Layer Your Data Controls

DDM, RLS, CLS, and OLS are complementary, not alternatives. A robust setup uses RLS to filter rows, CLS to restrict columns, DDM to mask remaining sensitive values, and OLS to hide objects from Power BI users who shouldn't see them at all.

Data Security Decision Matrix

RequirementMechanismWhereHides Metadata?
Users see only their own rowsRLSWarehouse, Semantic ModelNo
Hide specific columns from a roleCLSWarehouseNo (error on access)
Hide tables/columns from field listsOLSSemantic Model (Tabular Editor)Yes
Show masked values (e.g., XXX-XX-1234)DDMWarehouse, Lakehouse SQL EndpointNo (shows masked)
Restrict access to lakehouse foldersOneLake RBACOneLakeYes
Layer 5

OneLake Security

Fine-grained access control at the storage layer β€” restrict users to specific folders and tables within a lakehouse.

πŸ†• Generally Available

OneLake data access roles provide folder-level and table-level RBAC directly in OneLake. Security is enforced at the storage layer across all compute engines β€” including Spark, SQL endpoint, and Power BI Direct Lake. This feature is now generally available (GA) as of early 2026, with unified enforcement across the Fabric platform.

How OneLake Data Access Roles Work

πŸ“‚ Define Roles

Create custom security roles in the lakehouse security panel. Each role specifies which folders and tables it grants access to.

  • Navigate to Lakehouse β†’ Manage OneLake security
  • Create a new role (e.g., "Sales Analysts")
  • Browse and select specific folders or tables to include

πŸ‘₯ Assign Users

Add Entra ID users or security groups to each role. Users can belong to multiple roles β€” access is additive (union of all role permissions).

  • Assign via the security panel UI or REST APIs
  • Use Entra ID groups for scalable management
  • Changes take effect within minutes

πŸ”’ Enforcement

Access is enforced at the OneLake storage plane for supported items and engines.

  • Spark notebooks respect folder restrictions
  • SQL analytics endpoint respects table restrictions
  • Power BI Direct Lake respects the same boundaries
  • OneLake file explorer and APIs also enforce roles

OneLake RBAC Architecture

LAKEHOUSE β€” OneLake Data Access Roles πŸ“ Tables/ sales, customers, products, orders πŸ”“ Role: Sales Team πŸ“ Finance/ payroll, budgets, forecasts πŸ”’ Role: Finance Only πŸ“ Gold/ curated datasets, aggregated metrics πŸ”“ Role: All Analysts πŸ“ Raw / Landing/ unprocessed, PII, sensitive ingestion πŸ”’ Role: Engineers Only ⚑ Spark πŸ” SQL Endpoint πŸ“Š Power BI πŸ“‘ OneLake API πŸ›‘οΈ Security enforced at storage layer across all compute engines (GA)

Key Limitations & Considerations

ConsiderationDetails
Applies to Viewer role onlyWorkspace Admin, Member, and Contributor roles bypass OneLake RBAC β€” they always have full data access
F SKU requiredOneLake data access roles require Fabric capacity (F SKU) or Power BI Premium (P SKU)
Additive permissionsIf a user belongs to multiple roles, they get the union of all permissions (most permissive wins)
No deny rulesYou can't explicitly deny access β€” only grant. Structure roles carefully to avoid over-permissioning
βœ… Best Practice

Combine OneLake RBAC with medallion architecture: restrict the Raw/Bronze layer to data engineers, Silver to analysts with domain-specific roles, and Gold to all business users. This aligns data maturity with access control naturally.

Layer 6

Information Protection

Classify, label, and protect data throughout its lifecycle with Microsoft Purview and Data Loss Prevention policies.

Sensitivity Labels

Microsoft Purview sensitivity labels (e.g., "Public," "Internal," "Confidential," "Highly Confidential") can be applied to Fabric artifacts to classify and protect data.

🏷️ How Labels Work

  • Applied to lakehouses, warehouses, semantic models, reports, and more
  • Labels flow downstream automatically β€” a labeled lakehouse passes its label to reports built on it
  • Labels can enforce encryption on exported files (Excel, PDF, PowerPoint)
  • Labels are visible in workspace lists, search results, and lineage views

βš™οΈ Configuration

  • Define labels in the Microsoft Purview compliance portal
  • Set auto-labeling policies to automatically apply labels based on content patterns (e.g., credit card numbers, SSNs)
  • Enable mandatory labeling in Fabric admin portal β€” fully enforced for Power BI items, with expanding support for other Fabric items
  • Control who can apply or change specific labels with label scoping

Data Loss Prevention (DLP)

DLP policies detect and protect sensitive data in Fabric, preventing accidental exposure or exfiltration.

Encryption & Key Management

πŸ” Encryption at Rest

All data stored in OneLake is encrypted at rest using Microsoft-managed keys by default. For regulated workloads, enable customer-managed keys (CMK) to retain control of your encryption keys via Azure Key Vault.

πŸ”’ Encryption in Transit

All communications use TLS 1.2+ encryption. This applies to user-to-Fabric, Fabric-to-data-source, and inter-service traffic within the platform.

Copilot & AI Data Boundaries

πŸ€– AI Security Controls

Fabric Copilot respects all existing security controls: sensitivity labels, RLS, CLS, workspace roles, and DLP policies. Copilot only surfaces data the current user is authorized to see. Additionally:

  • Tenant isolation β€” Copilot never accesses data from other tenants
  • Data boundaries β€” data stays within your geographic region for AI processing
  • Purview DSPM for AI β€” monitor AI prompts, responses, and flag risky behavior with full audit trail
  • Copilot audit logging β€” all Copilot queries and data access events are captured in the unified audit log for compliance review
  • Labeled data protection β€” Copilot won't surface content from "Highly Confidential" items to unauthorized users
βœ… Before Enabling Copilot

Audit your permissions and labeling strategy before rolling out Copilot. Over-permissioned content is the #1 source of AI data security incidents. Ensure sensitivity labels are applied, DLP policies are active, and workspace access is properly scoped.

Layer 7

Network Security

Control network traffic to, from, and within Fabric using private connectivity, managed networks, and zero-trust architecture.

πŸ”’ Inbound β€” Users to Fabric

  • Azure Private Link β€” route all traffic through private endpoints in your VNet
  • Conditional Access β€” enforce device compliance, location, MFA
  • Tenant restrictions β€” prevent data exfiltration to unauthorized tenants

πŸ”— Outbound β€” Fabric to Data

  • Managed Private Endpoints (MPE) β€” Fabric connects to resources through Azure backbone
  • VNet Data Gateways β€” bridge to on-premises or VNet-isolated resources
  • Trusted Workspace Access β€” firewalled storage trusts specific Fabric workspaces

πŸ›‘οΈ Internal β€” Between Services

  • Managed VNets β€” Spark runs in Fabric-managed VNets with controlled egress
  • Service tags β€” NSG rules using DataFactory and PowerBI tags
  • Encryption in transit β€” TLS 1.2+ for all communications

Network Decision Quick Reference

ScenarioApproachSKU Min
Corporate-only access to FabricPrivate Link + block publicF64
Spark reads from firewalled ADLSManaged Private EndpointsF64
OneLake shortcuts to firewalled storageTrusted Workspace AccessF2
On-premises SQL connectivityVNet Data GatewayF2
Full zero-trust posturePrivate Link + MPE + Managed VNet + CAF64
🌐 Deep Dive: Networking Security

For detailed architecture diagrams, step-by-step Private Link setup, DNS configuration, managed VNet guidance, and a full networking decision matrix, see the dedicated Networking Security β†’ page.

Layer 8

Monitoring & Audit

Continuous monitoring, audit trails, and threat detection to ensure your security controls are working and to investigate incidents.

πŸ“‹ Unified Audit Logs

Fabric logs all user and admin activities to the Microsoft 365 Unified Audit Log.

  • Track who accessed, modified, shared, or deleted artifacts
  • Export data, report views, refresh operations, and admin settings changes
  • Query logs via the Purview compliance portal or PowerShell
  • Retain logs per your Microsoft 365 retention policies

πŸ›‘οΈ Microsoft Defender for Cloud Apps

MDCA provides real-time threat detection and policy enforcement for Fabric.

  • Anomaly detection β€” flag unusual download patterns, mass data exports, or suspicious sign-ins
  • Session controls β€” proxy user sessions to enforce real-time DLP during access
  • Activity policies β€” alert on specific high-risk actions (e.g., sharing to external users)
  • Integrates with Microsoft Sentinel for SIEM correlation

πŸ“Š Admin Portal Monitoring

The Fabric Admin Portal provides built-in monitoring dashboards.

  • Usage metrics β€” who's accessing what, how often
  • Capacity metrics β€” monitor throttling, CU consumption, and performance
  • Audit settings β€” manage what gets logged and who receives alerts
  • Tenant settings β€” review and restrict feature toggles across the organization

πŸ” Fabric Monitoring Workspace

Fabric's built-in monitoring workspace collects operational metrics into an Eventhouse.

  • Query logs with KQL for deep analysis
  • Build custom dashboards for pipeline runs, Spark jobs, refresh status
  • Set up Activator alerts for real-time notifications on anomalies
  • Correlate operational data with security events
βœ… Monitoring Best Practices
  • Forward Fabric audit logs to Microsoft Sentinel for centralized security monitoring and automated incident response
  • Enable MDCA policies β€” at minimum: unusual data download, risky sign-in, mass sharing detection
  • Review admin portal weekly β€” check tenant settings, new workspace creation, and external sharing activity
  • Automate alerts β€” use Activator or Logic Apps to notify security teams of critical events
Real-World Example

Putting It All Together

See how all 8 security layers work together in a real scenario β€” a multinational company deploying Fabric for regional sales analytics.

πŸ“‹ Scenario: Regional Sales Analytics Platform

Contoso Corp has three sales regions β€” EMEA, Americas, and APAC. Regional analysts should only see their own region's data. A central analytics team needs full access. Customer PII (emails, phone numbers) must be masked for most users. The platform ingests data from an on-premises SQL Server via a gateway and must meet enterprise compliance requirements.

πŸ”
Layer 1 β€” Identity & Access
Entra ID groups + Conditional Access
Create security groups: SG-Sales-EMEA, SG-Sales-Americas, SG-Sales-APAC, and SG-Analytics-Central. Apply a Conditional Access policy requiring MFA for all Fabric access and blocking sign-ins from non-compliant devices. Create a service principal SP-Sales-ETL for automated data pipelines β€” no interactive user required.
🏒
Layer 2 β€” Workspace Security
Dev/Prod isolation with role separation
Create two workspaces: Sales-Dev and Sales-Prod. The central analytics team gets Contributor on both. Regional groups get Viewer on Prod only β€” they never see Dev. The ETL service principal gets Contributor on Prod for automated loads. Both workspaces are assigned to the "Sales" domain for governance and to a dedicated F64 capacity to prevent noisy-neighbor issues.
πŸ“¦
Layer 3 β€” Item-Level Permissions
Targeted sharing via Power BI apps
Publish a Power BI app "Regional Sales Dashboard" with audience targeting β€” each regional group sees only their designated report pages. Share the Sales Lakehouse with ReadData permission to the data science team for ad-hoc SQL queries, without granting workspace access. All production semantic models carry the "Certified" endorsement badge.
πŸ›‘οΈ
Layer 4 β€” Data-Level Security
RLS + CLS + Dynamic Data Masking
Row-Level Security: DAX filter on the semantic model β€” [Region] = USERPRINCIPALNAME() mapped via a security table, so EMEA analysts see only EMEA rows.
Column-Level Security: The ProfitMargin column is restricted β€” only SG-Analytics-Central can see it.
Dynamic Data Masking: CustomerEmail shows as jXXX@XXX.com for regional analysts; the central team sees full values.
πŸ’Ύ
Layer 5 β€” OneLake Security
Folder-level RBAC on the lakehouse
Define OneLake data access roles on the Sales Lakehouse: The /raw/ folder (landing zone with unmasked PII) is restricted to SP-Sales-ETL only. The /curated/ folder is accessible to all analyst groups (with RLS still enforced at the query layer). This ensures even users with SQL endpoint access or Spark notebooks cannot read raw files directly.
🏷️
Layer 6 β€” Information Protection
Sensitivity labels + DLP policies
Apply "Confidential β€” PII" sensitivity label to the Sales Lakehouse and semantic model. This label auto-inherits downstream to reports and exports. A DLP policy in Microsoft Purview blocks exporting labeled data to unmanaged devices and triggers an alert if anyone attempts to download more than 1,000 PII records in a single export.
🌐
Layer 7 β€” Network Security
Private Link + Managed VNet
The on-premises SQL Server source connects via an on-premises data gateway behind Azure Private Link β€” no data crosses the public internet. Spark notebooks run inside a managed virtual network with a private endpoint to Azure SQL for staging data. Trusted workspace access is enabled so the Sales workspace can access a secured Azure Data Lake Storage account via its workspace identity.
πŸ“Š
Layer 8 β€” Monitoring & Audit
Continuous auditing + alerting
Audit logs are streamed to a Log Analytics workspace for 90-day retention and SOC queries. Microsoft Defender for Cloud Apps monitors session activity β€” an alert fires if any user exports more than 500 rows from a Confidential-labeled dataset. The Fabric admin monitoring workspace tracks capacity utilization, and a weekly Purview scan verifies all PII items still carry the correct sensitivity label.
πŸ’‘ Key Takeaway

No single layer is sufficient on its own. An EMEA analyst in this scenario is protected by: identity (MFA + group membership) β†’ workspace (Viewer role, Prod only) β†’ item (app audience) β†’ data (RLS filters EMEA rows, CLS hides margins, DDM masks email) β†’ OneLake (no raw folder access) β†’ labels (export restrictions) β†’ network (private connectivity) β†’ monitoring (anomaly alerts). Compromise of any one layer still leaves 7 others enforcing protection.

Quick Reference

LayerContoso ConfigProtects Against
IdentityEntra groups, CA + MFA, SPN for ETLUnauthorized access, credential theft
WorkspaceDev/Prod split, Viewer for regionsAccidental edits, environment leakage
Item PermissionsApp audiences, ReadData sharingOver-sharing, uncontrolled discovery
Data SecurityRLS by region, CLS on margins, DDM on emailCross-region data leakage, PII exposure
OneLake/raw/ ETL-only, /curated/ for analystsDirect file access bypassing query-layer controls
Info ProtectionConfidential label, DLP export blockData exfiltration, unmanaged device risk
NetworkPrivate Link, managed VNet, trusted accessMan-in-the-middle, public internet exposure
MonitoringLog Analytics, Defender alerts, Purview scansUndetected breaches, compliance drift
Checklist

Security Hardening Checklist

Track your Fabric security posture across all layers. Progress is saved in your browser.

Completed: 0 / 0

πŸ” Identity & Access

🏒 Workspace & Item Security

πŸ›‘οΈ Data-Level Controls

🏷️ Information Protection

🌐 Network Security

πŸ“Š Monitoring & Audit