Most Power Platform data incidents don't start with malicious intent — they start with a flow that connects the wrong two systems. Learn how to design a tiered DLP policy framework that maps connector risk classifications to environment types, giving makers the freedom to build while keeping sensitive data protected in production.

Picture this: your IT department rolls out Power Automate to 500 employees on a Monday morning. By Friday, someone has built a flow that pulls customer records from Dynamics 365 and sends them to a personal Gmail account — automatically, on a schedule, every six hours. Nobody meant for this to happen. The maker was just trying to forward their own notifications. But the data protection implications are real, and your CISO is not having a good weekend.
This isn't a hypothetical. It's the most common data governance failure pattern in Power Automate rollouts, and it happens precisely because DLP (Data Loss Prevention) policies weren't configured before makers got access. The good news is that Power Platform's DLP system is genuinely powerful — it's not just a checkbox. When you design it deliberately, using tiered policies mapped to environment types, you can give makers real creative freedom in safe spaces while protecting sensitive data in production. That's the goal of this lesson.
By the end of this article, you'll be able to design a complete DLP policy tier system from scratch: understand how connector classifications work, map risk levels to environment types, configure policies in the Power Platform Admin Center, and reason through the edge cases that trip up even experienced admins.
What you'll learn:
You should be comfortable with the basics of Power Automate — you've built at least a few flows and understand what connectors are. Familiarity with the Power Platform Admin Center is helpful but not required. If you haven't yet explored how environments work and why separating dev, test, and production matters, the lesson on Environment Strategy for Power Platform: Separating Dev, Test, and Production is a good starting point before diving in here.
Before we talk about tiers, let's make sure we understand the underlying mechanism. A DLP policy in Power Platform is a set of rules that controls which connectors can be used together inside a single flow. The key word is together — a DLP policy doesn't prevent someone from using SharePoint as a connector, or Salesforce as a connector. What it controls is whether those two connectors can appear in the same flow.
This matters because data leakage rarely happens through a single system. It happens when data flows between systems — from your CRM to an email service, from your HR system to a spreadsheet, from Dataverse to a personal storage account. DLP policies draw a boundary between connector groups, making it technically impossible for data to cross that boundary within a single flow.
Power Platform provides three classification buckets for every connector:
The enforcement rule is simple: a connector in the Business group can never send data to a connector in the Non-Business group in the same flow. Period. If a maker tries to build that flow, the policy violation surfaces as a clear error and the flow won't run.
Key insight
DLP policies control data movement between connectors, not data storage within a connector. They're a boundary enforcement mechanism, not a content inspection tool. They won't catch a flow that reads sensitive data from SharePoint and writes it to another SharePoint site you didn't intend — but they will absolutely catch a flow that reads SharePoint data and posts it to Gmail.
This boundary model is elegant in its simplicity, but it requires deliberate classification work to be effective. That's where tiering comes in.
Before you can build a tiered DLP system, you need a principled way to classify connectors by risk. Experienced admins develop intuition for this, but it's worth making the reasoning explicit so you can apply it to new connectors as they appear.
Think of connector risk across three dimensions:
1. Data sensitivity exposure Does this connector have access to sensitive corporate data by design? Connectors like Dataverse, SQL Server, SharePoint, and Dynamics 365 are built to store and retrieve business records. They're not inherently dangerous — they're exactly where your data should live — but they're high-value targets if paired with the wrong egress path.
2. Data egress potential Can this connector send data to a destination outside your organizational control? Email connectors (Gmail, Outlook.com), file storage (Dropbox, personal OneDrive, Google Drive), messaging services (Slack in some configurations, WhatsApp), and social media APIs all have significant egress potential. The concern isn't that makers are malicious — it's that mistakes with these connectors can have real compliance consequences.
3. Administrative oversight and auditability Is the connection authenticated with organizational credentials? Does it leave an audit trail you control? A connector to your Azure SQL Database authenticated via a managed identity is very different from an HTTP action hitting an arbitrary endpoint on the internet. The former is governed; the latter is a potential blind spot.
Using these three dimensions, most connectors fall naturally into four risk tiers:
| Risk Tier | Characteristics | Examples |
|---|---|---|
| Tier 1 – Core Enterprise | High data sensitivity, org-controlled, fully auditable | Dataverse, SharePoint, Dynamics 365, Teams, Exchange (Office 365 Outlook), Azure services, SQL Server (on-prem via gateway) |
| Tier 2 – Governed External | External service but organizational account, auditable, business use case | Salesforce, ServiceNow, DocuSign, Adobe Sign, Workday |
| Tier 3 – Consumer / Personal | Personal accounts, limited audit, consumer-grade | Gmail, personal OneDrive, Dropbox, Google Sheets, Twitter/X |
| Tier 4 – Unclassified / Open | HTTP actions, custom connectors to unknown endpoints, webhooks | HTTP with Azure AD, generic HTTP, unverified custom connectors |
This four-tier risk model is the input to your DLP design. Now let's map it to environment types.
A well-governed Power Platform rollout uses multiple environment types for different purposes. The most common setup includes:
Each environment type has a different audience, purpose, and risk profile — and therefore needs a different DLP policy. The mistake most organizations make is applying a single tenant-wide policy and hoping it covers everything. It doesn't, because the same connector that should be allowed in production (Dynamics 365 to Power BI) might be completely inappropriate in the Default Environment where any employee can build.
Here's the target state we're designing toward:
The Default Environment is the highest-risk environment from a governance perspective, precisely because access is automatic and universal. Every new employee, every executive, every intern lands here by default. You cannot predict what they'll build.
Your DLP policy for the Default Environment should be maximally restrictive:
Warning
Don't block too aggressively in the Default Environment to the point where it's useless. If makers can't build anything meaningful here, they'll find workarounds — including requesting production environment access "just to try something." A Default Environment where basic Microsoft 365 automation works smoothly reduces pressure to bypass governance.
Developer environments are individual sandboxes where makers can experiment freely — but "freely" still needs a boundary. The key difference from the Default Environment is that you can trust the identity of the user more. These environments are provisioned deliberately, often through a request process, to specific named makers.
For developer environments, your DLP policy can be meaningfully more permissive:
The rationale: a developer needs to test real integrations against real connector types. If they're building a flow that integrates Dataverse with Salesforce, they need both in the same policy group. But they don't need Gmail or personal Dropbox.
This one is counterintuitive to beginners, but critically important: your test environment's DLP policy should be identical to — or a strict subset of — your production DLP policy.
Why? Because the entire purpose of a test environment is to validate that flows will behave correctly in production. If your test environment has a more permissive DLP policy, you'll successfully test flows that fail when promoted to production. That's not testing — that's creating false confidence.
For test environments:
The lesson on Deploying and Managing Power Automate Solutions Across Environments covers the ALM pipeline mechanics in depth — but DLP parity between test and production is a governance prerequisite for that pipeline to be reliable.
Production DLP policy should be the most deliberately designed of all. The guiding principle here is least privilege: a connector should only be in the Business group if there is an active, approved business use case for it.
For production environments:
Tip
Treat your production DLP Business group like a software allowlist. Every addition requires a written business justification and approval. This creates a natural audit trail and slows down the scope creep that gradually erodes DLP effectiveness over time.
Here's where DLP gets architecturally interesting. Power Platform supports two scopes for DLP policies:
You can have multiple policies in effect simultaneously. When that happens, the most restrictive result wins. If a tenant-wide policy blocks Gmail, and an environment-scoped policy for your developer environment doesn't mention Gmail, Gmail is still blocked in that developer environment — because the tenant-wide policy applies.
This layering behavior is powerful but requires careful design to avoid accidental over-restriction. Here's a practical layering pattern:
Tenant-wide policy (your floor):
Environment-scoped policies (your ceiling per environment):
Note
The layering model means you can't use an environment-scoped policy to allow something that a tenant-wide policy blocks. You can only further restrict. Design your tenant-wide policy to block only what you are absolutely certain should never be used anywhere in the tenant.
Let's walk through the actual configuration steps. You'll need Power Platform Administrator or Global Administrator permissions.
Navigate to the Power Platform Admin Center at admin.powerplatform.microsoft.com. In the left navigation, select Policies, then Data policies. You'll see any existing policies listed here.
To create a new policy, click New policy in the top toolbar. You'll move through a multi-step wizard:
Step 1 – Name your policy. Use a naming convention that encodes the scope and tier. For example: TENANT-BASELINE-Block-Consumer-Egress or ENV-PROD-Salesforce-Finance-Policy. Clear names save significant confusion when you're managing a dozen policies.
Step 2 – Assign connectors to groups. This is the core classification work. You'll see a searchable list of all available connectors. For each connector, you drag it into Business, Non-Business, or Blocked. Use your risk tier framework here systematically — search for each connector by name and assign it according to your tier mapping.
Step 3 – Define scope. Choose whether this policy applies to all environments (tenant-wide) or specific environments. For environment-scoped policies, you'll select the named environments from a list. You can also choose to exclude specific environments from a tenant-wide policy — useful for fully isolated sandbox environments managed by IT directly.
Step 4 – Review and save. The wizard shows a summary before you commit. Take a moment to verify that the scope is exactly what you intended, especially for tenant-wide policies. A misconfigured tenant-wide policy that blocks a production connector can disable live business flows immediately upon save.
Warning
DLP policy changes take effect quickly — often within minutes. If you're modifying policies in an environment with live production flows, test your changes in a staging environment first, and schedule changes during low-traffic windows. Existing running flow instances may not be immediately affected, but new runs will be evaluated against the updated policy.
For a comprehensive walkthrough of the configuration mechanics, the lesson on Configuring Data Loss Prevention Policies for Enterprise Cloud Flows goes deeper into the boundary rules, connector behavior nuances, and enforcement edge cases.
Two categories consistently create exceptions in DLP design: the generic HTTP connector and custom connectors. Both deserve special attention.
The HTTP action in Power Automate allows flows to call any URL on the internet. From a DLP perspective, this is a significant blind spot — there's no way for a DLP policy to inspect which URL is being called, only whether the HTTP connector is allowed at all.
In most environments below production, blocking the HTTP connector entirely is the right default. For production flows that genuinely need to call external APIs, consider using a custom connector instead — custom connectors have a defined base URL and authentication pattern that makes them classifiable and auditable as a unit.
If you must allow HTTP in production, restrict it to the "HTTP with Azure AD" variant, which at minimum enforces organizational authentication, and document every flow using it.
Custom connectors appear in DLP policy configuration just like built-in connectors — you can classify them as Business, Non-Business, or Blocked. The challenge is governance: new custom connectors appear in your tenant whenever a maker creates one, and by default they land in the Non-Business group.
Establish a process where:
This prevents the "shadow connector" problem where a custom connector to an unapproved external API quietly gets used in production without any DLP enforcement.
Set up a three-tier DLP policy structure in a trial or developer tenant. You'll need a Power Platform environment with admin access. If you're working in a real tenant, use environments that don't have live flows yet.
Exercise steps:
Navigate to admin.powerplatform.microsoft.com → Policies → Data policies.
Create a tenant-wide baseline policy named TENANT-BASELINE-Consumer-Block. Set its scope to all environments. In the Blocked group, place: Gmail, Dropbox, Twitter, and the generic HTTP connector. Save the policy.
Create an environment-scoped policy named ENV-DEFAULT-M365-Only targeting your Default Environment. In the Business group, place only: Office 365 Outlook, SharePoint, Microsoft Teams, Planner, and Forms. Place everything else in Non-Business. Save.
Create a second environment-scoped policy named ENV-DEV-Extended targeting a developer environment. In the Business group, place all Tier 1 connectors plus Salesforce and ServiceNow. Save.
Test the layering: In your developer environment, attempt to verify whether Gmail (blocked at tenant level) is accessible. It should appear as blocked regardless of the ENV-DEV-Extended policy, because the tenant-wide baseline takes precedence.
Document your connector classification decisions in a spreadsheet: connector name, risk tier, Business/Non-Business/Blocked per environment type, and justification.
That last step isn't optional ceremony — it's the artifact your security team and auditors will want to see during a compliance review.
Mistake: Setting a single tenant-wide policy and calling it done. A single policy can't simultaneously be permissive enough for developer experimentation and restrictive enough for production governance. You need the layered approach. One tenant-wide floor policy, plus per-environment ceiling policies.
Mistake: Making test environments more permissive than production. This creates false confidence. Flows that pass UAT fail in production because the connector configuration isn't the same. Mirror your production DLP policy exactly in test environments.
Mistake: Blocking connectors in production that existing flows depend on. Before tightening a production DLP policy, run an audit of which connectors active flows in that environment are currently using. The Power Platform Admin Center shows environment-level connector usage. Alternatively, the CoE Toolkit provides deeper visibility into flow-level connector usage across your tenant — see the lesson on Auditing and Governing Power Automate at Scale for how to use it.
Mistake: Ignoring the Default Environment. The Default Environment is the highest-risk environment in your tenant because access is universal and automatic. It's also the one most commonly left with default (permissive) DLP settings. Lock it down first.
Troubleshooting: A flow breaks after a DLP policy change. When a flow is suspended due to a DLP violation, it appears in the flow owner's portal with a clear error message identifying which connectors are in conflict. The owner cannot run the flow until the policy violation is resolved — either by modifying the flow to remove the offending connector, or by having an admin update the DLP policy. Establish a process for handling these requests before you tighten production policies.
Troubleshooting: A policy doesn't seem to be taking effect. Check for conflicting policies. If you have multiple environment-scoped policies on the same environment, they compound. Also verify the scope — a policy you intended as environment-scoped may have accidentally been set to tenant-wide, or vice versa.
You now have a complete framework for designing DLP policy tiers in Power Automate. The core ideas are:
Where to go from here depends on your role. If you're responsible for end-to-end governance, the next priority is establishing your tenant baseline — not just DLP, but the full suite of maker access controls and default settings covered in Establishing Power Platform Tenant Baseline Governance. If you're focused on the flow development side, understanding how credentials and connections are managed within your DLP framework is the natural follow-on — the lesson on Securing Power Automate Flows in Production covers the maker perspective on credentials and connection references in depth.
DLP policies aren't a one-time configuration. As your connector catalog grows, as new business use cases emerge, and as the Power Platform connector ecosystem expands (Microsoft adds new connectors constantly), your policies need regular review. Build that review into your quarterly governance cycle, and your DLP framework will stay ahead of the risk rather than chasing it.