Power Platform Is Secure — Until Governance Disappears
Is Power Platform actually dangerous for the enterprise—or is that fear hiding a more uncomfortable truth?
In this episode, we dismantle the question executives keep asking: “Is Power Platform secure enough?” The answer is sharper than most teams expect. Yes—Microsoft’s Power Platform security is enterprise-grade. The real risk isn’t the platform. It’s what happens when governance quietly disappears inside your tenant.
We explore why low-code suddenly feels out of control: explosive speed, invisible change, and citizen development without an operating model. Power Apps, Power Automate, Power BI, and Copilot didn’t create risk—they exposed it. When low-code plugs directly into your core identity, data, and collaboration stack, every missing decision in your control plane turns into architectural erosion.
Through real-world audit and compliance scenarios, you’ll see how secure platforms still fail—via open default environments, unmanaged environments, weak DLP strategies, and missing ownership models. Not breaches. Not hackers. Just perfectly allowed behavior.
If you’re a CIO, security leader, platform owner, or responsible for enterprise risk, this episode reframes everything: security is Microsoft’s job, governance is yours, and the control plane decides whether intent becomes policy—or chaos.
Most organizations think they’ve secured Power Platform—but in reality, critical gaps still exist. In this episode, we break down what security really means for Power Platform, why common assumptions fail, and how to build a practical, enterprise-ready security strategy. 🎙️ Episode Overview In this conversation, we explore:
- Why default security settings aren’t enough
- The real risks of citizen development without governance
- How to align Power Platform security with enterprise IT standards
- What roles, environments, and controls actually matter in practice
If you’re responsible for Power Platform governance, security, or adoption, this episode is a must-listen. 🚨 The Big Security Myth “If users have access to Power Platform, it must already be secure.” Not true.
We explain why:
- Platform access ≠ data protection
- Environments ≠ security boundaries
- Licenses ≠ governance controls
Security failures usually come from misunderstanding how Power Platform really works. 🧱 Core Security Building Blocks Explained 🏢 Environments
- Not just containers—but policy boundaries
- Why too many (or too few) environments cause risk
- How default environments become security liabilities
👤 Identities & Access
- The difference between:
- App users
- Makers
- Admins
- Why over-permissioning is the #1 issue
- How Azure AD roles fit into Power Platform security
🔌 Connectors & Data Sources
- Why connectors are the real attack surface
- Common mistakes with:
- Premium connectors
- Custom connectors
- Shared connections
- How data leaks actually happen
🛡️ Governance ≠ Blocking Innovation Security doesn’t mean slowing people down. We cover how to:
- Enable citizen developers safely
- Use guardrails instead of gatekeeping
- Balance speed, flexibility, and compliance
💡 Good governance accelerates adoption—it doesn’t kill it. 🧰 Practical Controls That Actually Work ✅ Environment Strategy
- Separate:
- Personal productivity
- Team apps
- Mission-critical solutions
- Use purpose-driven environments, not one-size-fits-all
✅ DLP (Data Loss Prevention) Policies
- Why most DLP policies fail
- How to design policies that:
- Make sense to users
- Actually reduce risk
- Common DLP anti-patterns to avoid
✅ Monitoring & Auditing
- What to log (and what’s noise)
- How to spot risky behavior early
- Why visibility beats restriction
⚠️ Common Mistakes We See Everywhere 🚫 Relying on the default environment
🚫 Treating Power Platform like SharePoint
🚫 Giving global admin rights “temporarily”
🚫 Ignoring connection ownership
🚫 Assuming Microsoft “handles security for you” 🧠 Mindset Shift: Security as Enablement The biggest takeaway: Power Platform security is not a technical problem—it’s an operating model problem. Success comes from:
- Clear ownership
- Simple rules
- Shared responsibility between IT and the business
🎯 Who This Episode Is For
- Power Platform Admins
- Security & Compliance teams
- IT Leaders & Architects
- Center of Excellence (CoE) members
- Anyone scaling Power Platform beyond pilots
🚀 Final Takeaway Power Platform can be incredibly secure—but only if you:
- Understand how the platform really works
- Design governance intentionally
- Treat security as a product, not a checklist
🎧 Listen in to learn how to do it right—without slowing your organization down.
Become a supporter of this podcast: https://www.spreaker.com/podcast/m365-show-modern-work-security-and-productivity-with-microsoft-365--6704921/support.
1
00:00:00,000 --> 00:00:02,960
Most organizations still ask the wrong question about Power Platform.
2
00:00:02,960 --> 00:00:06,320
Is this thing secure enough for enterprise-ordered heavy use?
3
00:00:06,320 --> 00:00:09,400
They assume the risk lives in Microsoft's stack? It doesn't.
4
00:00:09,400 --> 00:00:13,360
Here's the blunt answer, yes, the Power Platform Security architecture is enterprise-grade.
5
00:00:13,360 --> 00:00:15,920
The weak link is almost never Microsoft's security.
6
00:00:15,920 --> 00:00:17,320
The weak link is your governance.
7
00:00:17,320 --> 00:00:18,400
This isn't theoretical.
8
00:00:18,400 --> 00:00:22,240
These failures are already showing up in audits, incidents, and post-mortems.
9
00:00:22,240 --> 00:00:25,480
If you're responsible for enterprise-risk compliance or platform strategy,
10
00:00:25,480 --> 00:00:27,040
this conversation is for you.
11
00:00:27,040 --> 00:00:30,840
So in this episode, you'll see why Power Platform is secure, how governance disappears
12
00:00:30,840 --> 00:00:35,080
in real tenants and what a defendable operating model actually looks like.
13
00:00:35,080 --> 00:00:36,480
Why this question exists?
14
00:00:36,480 --> 00:00:38,440
Enterprise anxiety around low-code.
15
00:00:38,440 --> 00:00:43,200
Most enterprises didn't wake up one day and decide to run critical processes on a low-code platform.
16
00:00:43,200 --> 00:00:45,480
They arrived here through a very specific path.
17
00:00:45,480 --> 00:00:50,080
Years of backlogs, shadow spreadsheets, access databases under someone's desk,
18
00:00:50,080 --> 00:00:54,400
and temporary macros that turned into business-critical systems.
19
00:00:54,400 --> 00:00:57,320
Power Platform just made that visible, fast, and tenant-wide.
20
00:00:57,320 --> 00:01:01,840
Now add the scale, Power Apps, Power Automate, Power BI, Co-Pilot Studio,
21
00:01:01,840 --> 00:01:07,760
all sitting in the same Microsoft 365 tenant as your email, your SharePoint, your Teams, your Entra ID,
22
00:01:07,760 --> 00:01:10,560
you're not experimenting with a toy platform off to the side.
23
00:01:10,560 --> 00:01:14,240
You're plugging a low-code engine straight into the center of your digital estate.
24
00:01:14,240 --> 00:01:15,840
That's where the anxiety comes from.
25
00:01:15,840 --> 00:01:18,040
On one side, you have the marketing story.
26
00:01:18,040 --> 00:01:19,440
Anyone can build.
27
00:01:19,440 --> 00:01:20,760
And to be fair, that's mostly true.
28
00:01:20,760 --> 00:01:26,400
With data-verse connectors and co-pilot, the friction to build something real is lower than it has ever been.
29
00:01:26,400 --> 00:01:28,520
On the other side, you have the audit story.
30
00:01:28,520 --> 00:01:29,640
Who owns this?
31
00:01:29,640 --> 00:01:30,840
Where does the data go?
32
00:01:30,840 --> 00:01:33,160
What happens if the person who built it leaves?
33
00:01:33,160 --> 00:01:34,680
Those are not Power Platform questions.
34
00:01:34,680 --> 00:01:36,240
Those are governance questions.
35
00:01:36,240 --> 00:01:39,320
But because the platform is visible, it becomes the scapegoat.
36
00:01:39,320 --> 00:01:42,480
Low-code feels out of control for three architectural reasons.
37
00:01:42,480 --> 00:01:43,560
First, speed.
38
00:01:43,560 --> 00:01:47,720
Traditional development forces you through demand management, design reviews, changeboards.
39
00:01:47,720 --> 00:01:49,320
Power Platform collapses that.
40
00:01:49,320 --> 00:01:53,120
A motivated analyst can go from idea to production adjacent in days.
41
00:01:53,120 --> 00:01:55,800
Your governance model probably still assumes months.
42
00:01:55,800 --> 00:01:57,480
Second, invisible change.
43
00:01:57,480 --> 00:02:01,400
Most enterprises have monitoring for servers, networks, maybe some APIs.
44
00:02:01,400 --> 00:02:03,280
They rarely have real monitoring for.
45
00:02:03,280 --> 00:02:06,760
We just added three more approval paths to this flow that touches payroll.
46
00:02:06,760 --> 00:02:10,160
Low-code change happens at the edges of your existing observability.
47
00:02:10,160 --> 00:02:13,440
Third, citizen development without citizen development governance.
48
00:02:13,440 --> 00:02:17,000
You empowered business users to build, but you didn't give them an operating model.
49
00:02:17,000 --> 00:02:22,120
No environment strategy, no DLP baseline, no racey for app ownership, no life cycle rules.
50
00:02:22,120 --> 00:02:24,280
You gave them a Ferrari and left the keys in.
51
00:02:24,280 --> 00:02:27,000
So the CIO sees adoption spikes in the admin center.
52
00:02:27,000 --> 00:02:31,000
The key source sees connectors that can technically move data to Gmail and Dropbox.
53
00:02:31,000 --> 00:02:35,760
Compliance sees Power BI reports over HR and finance data built by people they've never met.
54
00:02:35,760 --> 00:02:37,480
Everyone asks the same question.
55
00:02:37,480 --> 00:02:39,560
Is Power Platform secure enough for us?
56
00:02:39,560 --> 00:02:41,520
From their perspective, it feels reasonable.
57
00:02:41,520 --> 00:02:43,760
Breach headlines involve cloud services all the time.
58
00:02:43,760 --> 00:02:44,800
The platform is visible.
59
00:02:44,800 --> 00:02:46,000
The controls are not.
60
00:02:46,000 --> 00:02:48,520
Architecturally though, that question is misdirected.
61
00:02:48,520 --> 00:02:49,920
Power Platform sits on Azure.
62
00:02:49,920 --> 00:02:51,200
Identity is enter ID.
63
00:02:51,200 --> 00:02:54,480
Data can live in data versus in SQL in SharePoint in fabric.
64
00:02:54,480 --> 00:02:59,040
The security primitives, authentication, authorization, encryption, conditional access,
65
00:02:59,040 --> 00:03:02,080
customer managed keys, DLP auditing already exists.
66
00:03:02,080 --> 00:03:06,520
The platform team at Microsoft has a full-time job making sure those primitives meet enterprise
67
00:03:06,520 --> 00:03:08,040
and regulatory standards.
68
00:03:08,040 --> 00:03:09,440
Your job is completely different.
69
00:03:09,440 --> 00:03:14,320
Your job is to decide who can build, where they can build, what data they are allowed to touch,
70
00:03:14,320 --> 00:03:18,960
how those changes move through DevTest prod and how you'll notice when reality drifts away
71
00:03:18,960 --> 00:03:20,200
from your intent.
72
00:03:20,200 --> 00:03:24,080
That's governance and that governance expresses itself through one thing, the control plane.
73
00:03:24,080 --> 00:03:29,040
The control plane is everything that turns we want this to be safe into actual configuration.
74
00:03:29,040 --> 00:03:33,680
Environments, DLP policies, security roles, conditional access rules, environment routing,
75
00:03:33,680 --> 00:03:36,200
managed environments, COE automation.
76
00:03:36,200 --> 00:03:39,240
When that control plane is coherent, Power Platform behaves predictably.
77
00:03:39,240 --> 00:03:42,800
When it's not, you're running a distributed decision engine with no clear design.
78
00:03:42,800 --> 00:03:44,280
This is the uncomfortable truth.
79
00:03:44,280 --> 00:03:48,880
The platform is already operating at enterprise scale, whether you acknowledge it or not.
80
00:03:48,880 --> 00:03:53,000
You might still think of Power Apps as that thing the HR team uses for a form.
81
00:03:53,000 --> 00:03:57,560
In reality, it's a multi-tenant, low-code surface attached to your core identity provider.
82
00:03:57,560 --> 00:04:00,200
So when you ask, is Power Platform secure enough?
83
00:04:00,200 --> 00:04:04,280
You're really asking, can we govern enterprise, low-code and AI at the speed our users are already
84
00:04:04,280 --> 00:04:05,280
moving?
85
00:04:05,280 --> 00:04:09,600
And right now for most organizations, the honest answer is not with the governance model
86
00:04:09,600 --> 00:04:11,440
you inherited from classic IT.
87
00:04:11,440 --> 00:04:15,080
That's why we need to separate three concepts very clearly.
88
00:04:15,080 --> 00:04:20,160
Security, what Microsoft Secures, governance, how you decide the platform should be used.
89
00:04:20,160 --> 00:04:25,720
Control plane, where those decisions either become enforceable policy or slowly decay into chaos.
90
00:04:25,720 --> 00:04:28,680
To judge risk properly, you have to stop blurring those three together.
91
00:04:28,680 --> 00:04:32,480
Once you see that split, you can ask a better question, what does Microsoft actually secure
92
00:04:32,480 --> 00:04:36,360
for you and where does your governance start to fail in real tenants?
93
00:04:36,360 --> 00:04:41,160
Security versus governance versus control plane, the foundational, misunderstanding.
94
00:04:41,160 --> 00:04:45,640
Most organizations collapse three very different ideas into one vague feeling of comfort.
95
00:04:45,640 --> 00:04:48,240
And they say Microsoft is secure, so we're fine.
96
00:04:48,240 --> 00:04:50,840
Or I don't trust this platform, lock it down.
97
00:04:50,840 --> 00:04:52,960
Both positions are based on the same misunderstanding.
98
00:04:52,960 --> 00:04:56,680
They treat security, governance and the control plane as if they're the same thing.
99
00:04:56,680 --> 00:04:59,400
They're not, let's define them in architectural terms.
100
00:04:59,400 --> 00:05:02,840
Security in this context is what Microsoft implements and operates.
101
00:05:02,840 --> 00:05:05,720
Power Platform is a SAS layer on Azure and EntraID.
102
00:05:05,720 --> 00:05:09,840
That stack gives you identity, authentication, authorization, primitives, encryption at
103
00:05:09,840 --> 00:05:14,160
rest and in transit, regional isolation, customer manage keys, logging and compliance
104
00:05:14,160 --> 00:05:15,160
certifications.
105
00:05:15,160 --> 00:05:17,200
That's security.
106
00:05:17,200 --> 00:05:20,280
Governance is what you decide to do with that capability surface.
107
00:05:20,280 --> 00:05:24,840
It's your intent, expressed as policy, who can build which data sources are allowed, what
108
00:05:24,840 --> 00:05:29,440
constitutes production, what risk levels are acceptable per business unit, how you treat
109
00:05:29,440 --> 00:05:32,560
citizen development, how long solutions are supported.
110
00:05:32,560 --> 00:05:35,240
Governance is your operating model and your rules of engagement.
111
00:05:35,240 --> 00:05:39,480
The control plane is everything that turns those rules into actual behavior.
112
00:05:39,480 --> 00:05:44,320
Governance, security groups, data verse roles, DLP policies, connect or classifications, tenant
113
00:05:44,320 --> 00:05:50,040
isolation, conditional access environment routing, managed environments, QE automation,
114
00:05:50,040 --> 00:05:52,800
audit and monitoring, all of that is control plane.
115
00:05:52,800 --> 00:05:56,480
It's the distributed configuration layer that tells the platform how to behave for your
116
00:05:56,480 --> 00:05:57,480
tenant.
117
00:05:57,480 --> 00:05:59,520
Security is Microsoft's job.
118
00:05:59,520 --> 00:06:00,520
Governance is your job.
119
00:06:00,520 --> 00:06:03,240
The control plane is where those jobs meet or fail to meet.
120
00:06:03,240 --> 00:06:07,080
When people say, "Wow, power platform is secure," they're usually pointing at the first
121
00:06:07,080 --> 00:06:08,080
layer.
122
00:06:08,080 --> 00:06:11,640
When they say, "Power platform is dangerous," they're usually reacting to the second and
123
00:06:11,640 --> 00:06:14,880
third layer as being absent in consistent or opaque.
124
00:06:14,880 --> 00:06:19,160
Conflating secure platform with well-governed usage produces two predictable failure modes.
125
00:06:19,160 --> 00:06:20,520
The first is blind trust.
126
00:06:20,520 --> 00:06:24,440
You see the compliance badge is the azure branding, the enter ID integration.
127
00:06:24,440 --> 00:06:28,560
You assume that because the underlying security model is robust, whatever your user's
128
00:06:28,560 --> 00:06:30,920
build on top must inherit that robustness.
129
00:06:30,920 --> 00:06:33,840
You let the default environment run as a free for all.
130
00:06:33,840 --> 00:06:36,320
You never define a data loss prevention strategy.
131
00:06:36,320 --> 00:06:38,640
You never classify environments by data sensitivity.
132
00:06:38,640 --> 00:06:39,920
You never ask who owns what?
133
00:06:39,920 --> 00:06:42,200
You think you're safe because Microsoft is secure.
134
00:06:42,200 --> 00:06:43,200
You're not.
135
00:06:43,200 --> 00:06:46,400
You've just outsourced your assumptions to a control plane you never designed.
136
00:06:46,400 --> 00:06:48,320
The second failure mode is over lockdown.
137
00:06:48,320 --> 00:06:49,760
You're nervous about low code.
138
00:06:49,760 --> 00:06:53,200
You treat every citizen developer as a potential insider threat.
139
00:06:53,200 --> 00:06:58,360
So you ban most connectors, you block environment creation, you push all development into a single,
140
00:06:58,360 --> 00:07:02,920
IT-owned environment, and you insist that every app go through the same heavyweight process
141
00:07:02,920 --> 00:07:04,600
as a custom net system.
142
00:07:04,600 --> 00:07:07,880
You think you're reducing risk in reality, you're generating shadow IT.
143
00:07:07,880 --> 00:07:11,760
The business still needs automation, so it goes back to spreadsheets, access, unsanctioned
144
00:07:11,760 --> 00:07:14,000
SaaS, and personal cloud storage.
145
00:07:14,000 --> 00:07:18,040
You've moved risk off the power platform service and into places that are much harder
146
00:07:18,040 --> 00:07:19,040
to see.
147
00:07:19,040 --> 00:07:23,000
In both cases, the underlying security posture of the platform hasn't changed.
148
00:07:23,000 --> 00:07:27,360
What changed is how your governance intent or the lack of it was expressed in the control
149
00:07:27,360 --> 00:07:28,360
plane.
150
00:07:28,360 --> 00:07:31,400
Architecturally, power platform is not an app builder.
151
00:07:31,400 --> 00:07:36,520
It is a distributed decision engine that makes real-time authorization and data movement decisions
152
00:07:36,520 --> 00:07:39,520
based on the configuration of that control plane.
153
00:07:39,520 --> 00:07:44,680
Every DLP rule, every environment, every dataverse role, every conditional access policy is
154
00:07:44,680 --> 00:07:47,920
effectively a line of code in an invisible authorization compiler.
155
00:07:47,920 --> 00:07:51,840
When you add just one exception for a VIP, you're not making a small change.
156
00:07:51,840 --> 00:07:54,440
You're introducing a new branch into that compiler.
157
00:07:54,440 --> 00:07:58,240
When you copy an environment for quick testing and don't fix the roles, you're duplicating
158
00:07:58,240 --> 00:08:01,640
an authorization graph you already don't fully understand.
159
00:08:01,640 --> 00:08:05,380
When you let environment creation run open, you're allowing anyone to add new decision
160
00:08:05,380 --> 00:08:07,200
services you don't monitor.
161
00:08:07,200 --> 00:08:10,560
Over time, those exceptions, copies, and ad hoc decisions accumulate.
162
00:08:10,560 --> 00:08:12,280
That's architectural erosion.
163
00:08:12,280 --> 00:08:16,160
That's how you move from a deterministic security model where you can confidently predict
164
00:08:16,160 --> 00:08:20,840
behavior to a probabilistic one where you're hoping nothing surprising happens.
165
00:08:20,840 --> 00:08:23,000
This is the foundational misunderstanding.
166
00:08:23,000 --> 00:08:27,240
Power platform security and power platform governance are not the same thing, and neither
167
00:08:27,240 --> 00:08:30,000
of them is the same as the control plane.
168
00:08:30,000 --> 00:08:33,360
Security answers can this platform be operated safely at enterprise scale?
169
00:08:33,360 --> 00:08:35,400
Governance answers, how do we want to use it?
170
00:08:35,400 --> 00:08:39,000
The control plane answers what actually happens when someone in our tenant clicks run.
171
00:08:39,000 --> 00:08:42,880
So if you remember nothing else so far, Microsoft secures the platform.
172
00:08:42,880 --> 00:08:47,760
Governance secures your usage, and the control plane is where your intent either becomes policy
173
00:08:47,760 --> 00:08:49,200
or becomes chaos.
174
00:08:49,200 --> 00:08:53,680
Once you see that clearly, the next logical question isn't, is power platform secure?
175
00:08:53,680 --> 00:08:56,000
It's, what does Microsoft actually secure for us?
176
00:08:56,000 --> 00:08:59,320
And where does our governance start to disappear in real tenants?
177
00:08:59,320 --> 00:09:01,600
What Microsoft actually secures?
178
00:09:01,600 --> 00:09:03,680
Identity, data, compliance.
179
00:09:03,680 --> 00:09:07,240
So let's answer the fair question, what does Microsoft actually secure for you in power
180
00:09:07,240 --> 00:09:08,240
platform?
181
00:09:08,240 --> 00:09:09,600
Start with identity and access.
182
00:09:09,600 --> 00:09:13,960
Every sign into power apps, power automate, power BI, co-pilot studio, all of that runs
183
00:09:13,960 --> 00:09:15,560
through Microsoft and 3ID.
184
00:09:15,560 --> 00:09:19,720
That means a single identity plane for humans and non-human identities.
185
00:09:19,720 --> 00:09:24,880
Users, service principles, managed identities, even AI agents as those mature.
186
00:09:24,880 --> 00:09:27,440
The platform itself doesn't invent a new identity store.
187
00:09:27,440 --> 00:09:29,160
It consumes your existing one.
188
00:09:29,160 --> 00:09:34,200
So when you turn on multi-factor authentication, when you enforce conditional access policies
189
00:09:34,200 --> 00:09:39,760
for risky locations or unmanaged devices, when you require compliant machines for admins,
190
00:09:39,760 --> 00:09:43,160
those controls apply to the power platform service as well.
191
00:09:43,160 --> 00:09:45,240
You're operating a single unified front door.
192
00:09:45,240 --> 00:09:49,320
On top of that, environment access is mediated through security groups and roles.
193
00:09:49,320 --> 00:09:52,000
A user can't just appear in a restricted environment.
194
00:09:52,000 --> 00:09:56,080
They have to be granted a role in that environment or be in a group you chose.
195
00:09:56,080 --> 00:10:00,060
Dataverse then adds another layer, table level, row level and field level security via security
196
00:10:00,060 --> 00:10:03,320
roles and if you choose hierarchy security.
197
00:10:03,320 --> 00:10:05,280
Architecturally identity is not the weak point.
198
00:10:05,280 --> 00:10:08,860
As long as you've treated enter ID as an enterprise control plane and not as a glorified
199
00:10:08,860 --> 00:10:09,860
address book.
200
00:10:09,860 --> 00:10:12,040
Now the data plane.
201
00:10:12,040 --> 00:10:13,040
Dataverse.
202
00:10:13,040 --> 00:10:17,160
The relational data platform behind model-driven apps and many serious canvas apps runs
203
00:10:17,160 --> 00:10:18,960
as a managed service on Azure.
204
00:10:18,960 --> 00:10:20,640
Data is encrypted at rest and in transit.
205
00:10:20,640 --> 00:10:24,880
You can bring customer-managed keys in managed environments if your regulatory model demands
206
00:10:24,880 --> 00:10:25,880
it.
207
00:10:25,880 --> 00:10:27,000
There's regional isolation.
208
00:10:27,000 --> 00:10:30,960
Your Europe data doesn't quietly drift to the US because someone felt like it.
209
00:10:30,960 --> 00:10:32,640
Environment boundaries are real.
210
00:10:32,640 --> 00:10:36,160
A dataverse environment is a security and data boundary.
211
00:10:36,160 --> 00:10:39,520
Records don't casually flow between environments unless you build something to do that.
212
00:10:39,520 --> 00:10:41,480
Back up and restore capabilities exist.
213
00:10:41,480 --> 00:10:44,640
There's auditing at the table and field level if you enable it.
214
00:10:44,640 --> 00:10:48,640
The data platform side of power platform behaves like an enterprise service because that's
215
00:10:48,640 --> 00:10:50,160
exactly what it is.
216
00:10:50,160 --> 00:10:53,640
Even when you're not using dataverse where maybe you're building over SQL, SharePoint,
217
00:10:53,640 --> 00:10:57,920
Fabric or external systems, power platform doesn't bypass those security models.
218
00:10:57,920 --> 00:11:02,240
It connects with your identity, respects the underlying permissions and relies on the
219
00:11:02,240 --> 00:11:05,160
connectors and DLP policies to control data movement.
220
00:11:05,160 --> 00:11:07,480
That brings us to guardrails, data loss prevention.
221
00:11:07,480 --> 00:11:11,760
From the admin center you classify connectors into groups, business, non-business and blocked.
222
00:11:11,760 --> 00:11:15,240
In the newer model, allowed and blocked, those policies can be ten and wide or scope
223
00:11:15,240 --> 00:11:16,760
to specific environments.
224
00:11:16,760 --> 00:11:18,840
The rules are simple but powerful.
225
00:11:18,840 --> 00:11:22,800
Most connectors can't be combined with non-business ones in the same app or flow and blocked
226
00:11:22,800 --> 00:11:24,560
connectors can't be used at all.
227
00:11:24,560 --> 00:11:29,800
For example, you can allow SharePoint, Dataverse and Exchange in a finance prod policy and block
228
00:11:29,800 --> 00:11:32,120
things like Twitter, Dropbox and Personal One Drive.
229
00:11:32,120 --> 00:11:36,480
You can use tenant isolation to say, flows in this tenant cannot send data to tenants we
230
00:11:36,480 --> 00:11:37,480
don't trust.
231
00:11:37,480 --> 00:11:42,400
You can apply more permissive policies in dev and far stricter ones in prod.
232
00:11:42,400 --> 00:11:45,080
Those DLP policies are not theoretical paper statements.
233
00:11:45,080 --> 00:11:49,160
They are enforced by the platform's decision engine at design time and at run time.
234
00:11:49,160 --> 00:11:53,800
When a maker tries to build across a boundary, you declare invalid, the platform stops them.
235
00:11:53,800 --> 00:11:57,800
Finally, compliance.
236
00:11:57,800 --> 00:12:01,920
Power platform inherits Microsoft's broader compliance stack.
237
00:12:01,920 --> 00:12:08,040
Certifications like ISO, SOC, GDPR alignment, HIPAA support, region-specific obligations.
238
00:12:08,040 --> 00:12:12,400
It integrates with Microsoft purview for auditing, so admin, maker and user actions around
239
00:12:12,400 --> 00:12:15,960
apps and flows can be locked and searched in the same compliance portal as your exchange
240
00:12:15,960 --> 00:12:17,880
and SharePoint events.
241
00:12:17,880 --> 00:12:22,560
Dataverse auditing lets you see who changed which field, when and from what to what.
242
00:12:22,560 --> 00:12:27,400
Power automate and power apps events can be surfaced through Microsoft 365 audit logs.
243
00:12:27,400 --> 00:12:32,280
With managed environments and the newer security hub, you also get a security score, a qualitative
244
00:12:32,280 --> 00:12:35,200
view of whether you've actually turned on the controls that exist.
245
00:12:35,200 --> 00:12:37,640
From a platform perspective, this matters.
246
00:12:37,640 --> 00:12:40,160
Identity is centralized and strongly authenticated.
247
00:12:40,160 --> 00:12:44,240
Data addressed and in transit is encrypted with enterprise options for key management.
248
00:12:44,240 --> 00:12:47,800
Guardrails like DLP and tenant isolation exist in our enforced.
249
00:12:47,800 --> 00:12:49,520
Compliance hooks and audit logs are there.
250
00:12:49,520 --> 00:12:53,920
If you're looking for the easy story where a power platform is insecure, you won't find
251
00:12:53,920 --> 00:12:55,880
it in the core architecture.
252
00:12:55,880 --> 00:12:58,480
Enterprise low-code platform security is not the weak link.
253
00:12:58,480 --> 00:13:03,120
The weak link is what you choose to do or not do with the control plane that sits on top
254
00:13:03,120 --> 00:13:04,120
of it.
255
00:13:04,120 --> 00:13:07,400
So if the foundation is this strong, the obvious question becomes, where do things actually
256
00:13:07,400 --> 00:13:08,800
break in production tenants?
257
00:13:08,800 --> 00:13:09,960
They don't break in a zooer.
258
00:13:09,960 --> 00:13:14,640
They break when governance disappears on where security breaks when governance disappears.
259
00:13:14,640 --> 00:13:18,920
If the platform is this strong, why do real tenants still end up with data exfiltration,
260
00:13:18,920 --> 00:13:21,600
audit failures and apps nobody can support?
261
00:13:21,600 --> 00:13:24,640
Because security almost never fails at the cryptography layer.
262
00:13:24,640 --> 00:13:26,160
It fails at the governance layer.
263
00:13:26,160 --> 00:13:29,600
There are three structural failure points that show up in almost every enterprise power
264
00:13:29,600 --> 00:13:30,680
platform review.
265
00:13:30,680 --> 00:13:33,080
The first is the open default environment.
266
00:13:33,080 --> 00:13:35,440
By design, every tenant gets a default environment.
267
00:13:35,440 --> 00:13:40,480
If you've done nothing, every licensed user is effectively an environment maker there.
268
00:13:40,480 --> 00:13:44,720
That means anyone can build apps and flows, connect to whatever your DLP allows and share
269
00:13:44,720 --> 00:13:46,200
with anyone in the tenant.
270
00:13:46,200 --> 00:13:51,160
If you never repurpose that default environment, never constrained it to personal productivity,
271
00:13:51,160 --> 00:13:56,600
never put a tight DLP policy around it, never turned on, monitoring, you've basically created
272
00:13:56,600 --> 00:13:59,800
a global sandbox directly attached to your production data.
273
00:13:59,800 --> 00:14:01,160
People don't do this maliciously.
274
00:14:01,160 --> 00:14:03,400
They just press create where the button appears.
275
00:14:03,400 --> 00:14:07,880
And from an architectural perspective, an ungoverned default environment is an entropy generator.
276
00:14:07,880 --> 00:14:11,600
It's constantly producing new assets that don't map to any operating model.
277
00:14:11,600 --> 00:14:14,920
The second failure point is free for all environment creation.
278
00:14:14,920 --> 00:14:19,240
If anyone or any broad admin group can create environments on demand, you get a different
279
00:14:19,240 --> 00:14:20,840
flavor of chaos.
280
00:14:20,840 --> 00:14:24,040
Project teams spin up a new environment just for this initiative.
281
00:14:24,040 --> 00:14:27,320
Consultants create environments for POCs and never clean them up.
282
00:14:27,320 --> 00:14:30,840
Regional teams create copies of production with slightly tweaked names.
283
00:14:30,840 --> 00:14:33,840
Each of those environments is a new control plane surface.
284
00:14:33,840 --> 00:14:38,440
Its own DLP scope, its own security roles, its own connectors, its own database.
285
00:14:38,440 --> 00:14:41,960
If you don't have a platform team curating those, you end up with dozens or hundreds of
286
00:14:41,960 --> 00:14:45,640
environments whose purpose, owner and risk level are unclear.
287
00:14:45,640 --> 00:14:50,120
At that point, no amount of enter ID or AS256 saves you.
288
00:14:50,120 --> 00:14:52,080
You're running a fleet you don't understand.
289
00:14:52,080 --> 00:14:55,920
The third failure point is the absence of a coherent data loss prevention strategy.
290
00:14:55,920 --> 00:14:58,000
You technically have DLP policies.
291
00:14:58,000 --> 00:15:01,960
Some created test DLP one during a pilot two years ago.
292
00:15:01,960 --> 00:15:04,440
Another admin copied it and tweaked a connector.
293
00:15:04,440 --> 00:15:08,440
A consultant added an environment level policy for a specific project.
294
00:15:08,440 --> 00:15:12,900
Over time you've accumulated a stack of overlapping inconsistent policies whose intent no one
295
00:15:12,900 --> 00:15:13,900
can explain.
296
00:15:13,900 --> 00:15:15,400
In some environments Gmail is blocked.
297
00:15:15,400 --> 00:15:18,840
In others it's quietly allowed because nobody added the policy there.
298
00:15:18,840 --> 00:15:21,640
In dev, HTTP connectors are wide open.
299
00:15:21,640 --> 00:15:24,600
Improved they're blocked but nobody ever tested the migration path.
300
00:15:24,600 --> 00:15:28,920
The default environment sits under a tenant wide policy that looked reasonable before copilot
301
00:15:28,920 --> 00:15:30,480
started generating apps.
302
00:15:30,480 --> 00:15:33,200
This is where architectural erosion becomes visible.
303
00:15:33,200 --> 00:15:36,680
Every exception, bypass and temporary override becomes security dead.
304
00:15:36,680 --> 00:15:39,240
I'll just add Outlook.com to business connectors for now.
305
00:15:39,240 --> 00:15:40,960
We'll remove it after the demo.
306
00:15:40,960 --> 00:15:44,800
We'll clone production into this uncopy environment so the vendor can test.
307
00:15:44,800 --> 00:15:46,360
We'll delete it later.
308
00:15:46,360 --> 00:15:49,480
We'll disable this DLP policy because it's blocking an important flow.
309
00:15:49,480 --> 00:15:50,880
We'll fix it next sprint.
310
00:15:50,880 --> 00:15:54,040
Those next sprints rarely arrive at the exceptions stay.
311
00:15:54,040 --> 00:15:55,400
New ones accumulate.
312
00:15:55,400 --> 00:15:58,600
Your control plane drifts further away from your governance intent.
313
00:15:58,600 --> 00:16:00,640
At small scale you can still reason about it.
314
00:16:00,640 --> 00:16:04,760
At enterprise scale, thousands of makers, tens of thousands of apps and flows across dozens
315
00:16:04,760 --> 00:16:07,800
of environments are no longer in a deterministic security model.
316
00:16:07,800 --> 00:16:09,520
You're in probabilistic territory.
317
00:16:09,520 --> 00:16:13,240
You've moved from we know exactly what's allowed to we think this combination is probably
318
00:16:13,240 --> 00:16:14,240
safe.
319
00:16:14,240 --> 00:16:15,760
That's what I mean by conditional chaos.
320
00:16:15,760 --> 00:16:17,600
On paper you're a zero-trust shop.
321
00:16:17,600 --> 00:16:18,880
You verify explicitly.
322
00:16:18,880 --> 00:16:20,240
You use least privilege.
323
00:16:20,240 --> 00:16:21,320
You assume breach.
324
00:16:21,320 --> 00:16:23,800
In practice, your conditional access rules.
325
00:16:23,800 --> 00:16:27,880
Your DLP policies, your environment roles and your special case environments have grown
326
00:16:27,880 --> 00:16:28,880
organically.
327
00:16:28,880 --> 00:16:34,760
Nobody has an end-to-end map of how a given identity, on a given device in a given location,
328
00:16:34,760 --> 00:16:37,400
interacting with a given app will actually be treated.
329
00:16:37,400 --> 00:16:41,920
At that point, blaming power platform security is convenient but inaccurate.
330
00:16:41,920 --> 00:16:46,200
Most of the risks you'll see at scale, data exfiltration through connectors, shadow IT flows
331
00:16:46,200 --> 00:16:51,800
over regulated data, apps with no clear owner, business critical logic wired through a personal
332
00:16:51,800 --> 00:16:57,520
account are governance failures, masquerading as platform issues.
333
00:16:57,520 --> 00:17:01,000
Power platform shadow IT isn't people sneaking in a new SaaS product.
334
00:17:01,000 --> 00:17:04,520
It's people doing exactly what the platform allows in the absence of guardrails and once
335
00:17:04,520 --> 00:17:09,200
co-pilot and a genetic AI enter that already weak governance model, the risk doesn't just
336
00:17:09,200 --> 00:17:10,200
increase linearly.
337
00:17:10,200 --> 00:17:14,200
It multiplies because now the platform can generate apps and flows faster than your existing
338
00:17:14,200 --> 00:17:16,520
manual controls can classify or review them.
339
00:17:16,520 --> 00:17:19,840
So to make this tangible, let's stop talking in abstractions.
340
00:17:19,840 --> 00:17:22,560
Let's walk through a set of real world patterns.
341
00:17:22,560 --> 00:17:26,360
Manufacturing, financial services, healthcare, retail and professional services.
342
00:17:26,360 --> 00:17:29,280
Different industries, different regulatory pressures, same underlying story.
343
00:17:29,280 --> 00:17:32,560
The platform was secure, governance disappeared in the control plane.
344
00:17:32,560 --> 00:17:36,800
Scenario one, global manufacturing, ERP data leaks through connectors.
345
00:17:36,800 --> 00:17:41,320
Take a global manufacturing company, centralized ERP running in a secure data center.
346
00:17:41,320 --> 00:17:45,320
Regional finance teams scattered across plans in Europe, Asia, North America, tight change
347
00:17:45,320 --> 00:17:47,040
control on the ERP itself.
348
00:17:47,040 --> 00:17:51,040
Audited, segregation of duties, all the classic controls, then someone discovers power
349
00:17:51,040 --> 00:17:52,040
automate.
350
00:17:52,040 --> 00:17:56,560
Original finance analyst is tired of downloading CSVs from ERP, cleaning them in Excel and
351
00:17:56,560 --> 00:17:58,800
emailing them around for reconciliations.
352
00:17:58,800 --> 00:18:03,600
They open power automate from outlook, see automated business process and start experimenting.
353
00:18:03,600 --> 00:18:06,000
The tenant already has a power platform, DLP policy.
354
00:18:06,000 --> 00:18:07,360
It was created during a pilot.
355
00:18:07,360 --> 00:18:11,560
It marks SAP, SQL, SharePoint and Exchange as business connectors.
356
00:18:11,560 --> 00:18:15,480
It leaves things like Dropbox, Gmail and HTTP in the default bucket.
357
00:18:15,480 --> 00:18:17,000
We revisited it after go-life.
358
00:18:17,000 --> 00:18:21,960
In the default environment, with that default policy, our analyst builds something simple,
359
00:18:21,960 --> 00:18:26,800
a scheduled flow that connects to ERP via a premium connector, pulls yesterday's sales
360
00:18:26,800 --> 00:18:31,960
and inventory, writes the data to a SharePoint list and then emails a summary to a distribution
361
00:18:31,960 --> 00:18:32,960
list.
362
00:18:32,960 --> 00:18:35,520
So far, still inside the boundary, still mostly fine.
363
00:18:35,520 --> 00:18:38,520
Then a plant manager says, "I'd love to see this on my personal device.
364
00:18:38,520 --> 00:18:40,720
I don't want to VPN into anything."
365
00:18:40,720 --> 00:18:42,800
Someone suggests, "Just send it to my Gmail as well.
366
00:18:42,800 --> 00:18:44,640
I'll forward it where it needs to go."
367
00:18:44,640 --> 00:18:48,720
The analyst adds a second action to the flow, send an email via the outlook, come connector
368
00:18:48,720 --> 00:18:53,400
to whatever external addresses are needed, attaching the CSV output.
369
00:18:53,400 --> 00:18:56,280
From their perspective, this is a harmless convenience.
370
00:18:56,280 --> 00:18:58,880
From a DLP perspective, something important just happened.
371
00:18:58,880 --> 00:19:03,040
ERP data that used to live only in a tightly controlled SAP landscape is now flowing through
372
00:19:03,040 --> 00:19:08,760
power automate into SharePoint, into Exchange and out through a consumer email service.
373
00:19:08,760 --> 00:19:12,560
All because the original DLP policy never drew a hard boundary between enterprise systems
374
00:19:12,560 --> 00:19:13,760
and consumer services.
375
00:19:13,760 --> 00:19:15,320
Fast forward six months.
376
00:19:15,320 --> 00:19:19,680
The COE starter kit, if it exists, shows a connector inventory with both business and
377
00:19:19,680 --> 00:19:22,360
non-business connectors active in the default environment.
378
00:19:22,360 --> 00:19:26,800
There's a DLP policy definition called ERP pilot that still has outlook, come classified
379
00:19:26,800 --> 00:19:27,800
as business.
380
00:19:27,800 --> 00:19:28,800
Nobody remembers why.
381
00:19:28,800 --> 00:19:33,000
The admin center has usage reports, but nobody's correlating them with data classification.
382
00:19:33,000 --> 00:19:37,160
An internal audit kicks off, not because of power platform, but because of a broader GDPR
383
00:19:37,160 --> 00:19:38,160
review.
384
00:19:38,160 --> 00:19:39,160
Pause here.
385
00:19:39,160 --> 00:19:40,400
This is the part most audits fail on.
386
00:19:40,400 --> 00:19:41,560
They follow the data.
387
00:19:41,560 --> 00:19:45,960
They find SAP tables with custom information, they find the power automate flow that touches
388
00:19:45,960 --> 00:19:46,960
those tables.
389
00:19:46,960 --> 00:19:49,920
They see it pushing data into SharePoint lists with permissive access.
390
00:19:49,920 --> 00:19:55,800
They find email logs showing CSVs with customer IDs being sent to personal inboxes for convenience.
391
00:19:55,800 --> 00:19:59,360
At that moment, every control you built around your ERP is irrelevant.
392
00:19:59,360 --> 00:20:02,440
The effective boundary is now the weakest connector in the chain.
393
00:20:02,440 --> 00:20:05,520
When the auditors ask, where can this ERP data go?
394
00:20:05,520 --> 00:20:10,040
Your diagrams show firewalls, roll-based access and carefully controlled integrations.
395
00:20:10,040 --> 00:20:12,120
Your automate doesn't appear anywhere on the slide.
396
00:20:12,120 --> 00:20:14,200
But in the tenant, the reality is different.
397
00:20:14,200 --> 00:20:19,840
The DLP policy never said data from ERP and data verse in this environment cannot be combined
398
00:20:19,840 --> 00:20:22,240
with consumer email or consumer storage.
399
00:20:22,240 --> 00:20:26,800
Nobody ran a DLP impact analysis when those connectors were moved into business for a one-off
400
00:20:26,800 --> 00:20:27,800
project.
401
00:20:27,800 --> 00:20:29,520
Nobody reviewed connector usage by data domain.
402
00:20:29,520 --> 00:20:30,760
This is not a hacker problem.
403
00:20:30,760 --> 00:20:32,200
This is a DLP design problem.
404
00:20:32,200 --> 00:20:35,200
If you cannot answer with evidence, where can this data go?
405
00:20:35,200 --> 00:20:38,680
Your power platform DLP policies have already failed.
406
00:20:38,680 --> 00:20:41,400
Regardless of how strong your underlying ERP security is.
407
00:20:41,400 --> 00:20:42,720
Notice what didn't fail here.
408
00:20:42,720 --> 00:20:44,560
EntraID still required authentication.
409
00:20:44,560 --> 00:20:45,600
Encryption still worked.
410
00:20:45,600 --> 00:20:48,200
The connectors did exactly what they were designed to do.
411
00:20:48,200 --> 00:20:50,760
The platform honored the policies it was given.
412
00:20:50,760 --> 00:20:52,360
The failure was architectural.
413
00:20:52,360 --> 00:20:56,480
You treated DLP as a checkbox instead of as an expression of data governance.
414
00:20:56,480 --> 00:21:01,440
You allowed business and non-business connectors to coexist in the same environment where regulated
415
00:21:01,440 --> 00:21:03,600
ERP data was being processed.
416
00:21:03,600 --> 00:21:09,080
You never revisited the policy when power platform moved from pilot to production reality.
417
00:21:09,080 --> 00:21:13,640
Multiply that pattern across payroll exports, HR data, supplier pricing, engineering drawings,
418
00:21:13,640 --> 00:21:18,840
and you get the real shadow IT story, not rogue sass, but sanctioned automations quietly
419
00:21:18,840 --> 00:21:21,480
bypassing your original data flow assumptions.
420
00:21:21,480 --> 00:21:25,200
So the lesson from global manufacturing is simple but non-negotiable.
421
00:21:25,200 --> 00:21:29,200
If your DLP strategy doesn't start from data classification and answer, where can
422
00:21:29,200 --> 00:21:32,040
this data go and where can it never go?
423
00:21:32,040 --> 00:21:35,440
You have already accepted data exfiltration as a probabilistic outcome.
424
00:21:35,440 --> 00:21:36,440
This was not a breach.
425
00:21:36,440 --> 00:21:37,520
This was a boundary failure.
426
00:21:37,520 --> 00:21:39,120
The platform was secure.
427
00:21:39,120 --> 00:21:41,240
Governance disappeared in the control plane.
428
00:21:41,240 --> 00:21:45,680
Scenario 2, financial services, audit fails on ownership and shadow IT.
429
00:21:45,680 --> 00:21:48,280
Now shift to a regulated financial services organization.
430
00:21:48,280 --> 00:21:53,080
They have been empowering the business with power apps and power automate for years.
431
00:21:53,080 --> 00:21:56,560
Internal comms, celebrated citizen development, licensing is generous.
432
00:21:56,560 --> 00:21:59,760
Business units can request environments with a one-page form.
433
00:21:59,760 --> 00:22:03,160
In paper, it looks like a successful digital transformation.
434
00:22:03,160 --> 00:22:04,720
What they never built was an ownership model.
435
00:22:04,720 --> 00:22:07,960
There is a center of excellence but it is mostly a reporting function.
436
00:22:07,960 --> 00:22:12,560
It runs the COE starter kit, sends out a quarterly dashboard and hosts an occasional
437
00:22:12,560 --> 00:22:14,200
maker community call.
438
00:22:14,200 --> 00:22:16,480
It does not actually own a governance operating model.
439
00:22:16,480 --> 00:22:18,200
By year three the numbers look impressive.
440
00:22:18,200 --> 00:22:20,680
The COE dashboards show thousands of apps and flows.
441
00:22:20,680 --> 00:22:21,680
Adoption is up.
442
00:22:21,680 --> 00:22:25,720
Every major business line has critical automations sitting on power platform.
443
00:22:25,720 --> 00:22:29,920
Some are IT-built, many are not, nobody can tell at a glance which is which.
444
00:22:29,920 --> 00:22:31,320
Then a regulatory audit arrives.
445
00:22:31,320 --> 00:22:33,080
The scope isn't power platform.
446
00:22:33,080 --> 00:22:37,840
The scope is payment processing, customer onboarding, sanction screening, classic financial
447
00:22:37,840 --> 00:22:39,240
services topics.
448
00:22:39,240 --> 00:22:43,040
But because those processes now depend on low-code automation, power apps and power
449
00:22:43,040 --> 00:22:45,520
automate show up in the process maps.
450
00:22:45,520 --> 00:22:47,720
The auditors ask a simple question.
451
00:22:47,720 --> 00:22:51,960
Which of these automations are in scope and who is accountable for each of them?
452
00:22:51,960 --> 00:22:53,120
The enterprise scrambles.
453
00:22:53,120 --> 00:22:55,040
They open the COE inventory.
454
00:22:55,040 --> 00:22:59,120
They see for example 4000 plus cloud flows across all environments.
455
00:22:59,120 --> 00:23:02,120
Hundreds marked as runs frequently in production environments.
456
00:23:02,120 --> 00:23:07,520
A surprising number where the owner is a user account flagged as a lever in enter ID.
457
00:23:07,520 --> 00:23:11,920
Many apps with descriptions like onboarding V2 or payments helper with no business service
458
00:23:11,920 --> 00:23:12,920
mapping.
459
00:23:12,920 --> 00:23:14,240
They export the list to Excel.
460
00:23:14,240 --> 00:23:16,600
They start filtering by environment name.
461
00:23:16,600 --> 00:23:20,200
Proud payments by team, customer onboarding, risk KYC.
462
00:23:20,200 --> 00:23:21,960
That helps a little but not enough.
463
00:23:21,960 --> 00:23:23,760
Environment naming was never enforced.
464
00:23:23,760 --> 00:23:27,560
Some critical flows still live in a generic shared-proud environment created by a project
465
00:23:27,560 --> 00:23:28,560
years ago.
466
00:23:28,560 --> 00:23:30,640
Per view logs confirm usage.
467
00:23:30,640 --> 00:23:32,640
Flow's tied to lever accounts are still running.
468
00:23:32,640 --> 00:23:36,120
Apps that look like prototypes are being opened hundreds of times a day.
469
00:23:36,120 --> 00:23:40,120
There is clear business dependency but no clear owner in any system of record.
470
00:23:40,120 --> 00:23:42,440
The auditors come back to their original question.
471
00:23:42,440 --> 00:23:46,760
For each automation that touches in scope processes who is the accountable business owner
472
00:23:46,760 --> 00:23:48,400
and what is the life cycle control?
473
00:23:48,400 --> 00:23:49,400
You don't have an answer.
474
00:23:49,400 --> 00:23:53,040
You have an Excel export, a QE dashboard and a lot of tribal knowledge.
475
00:23:53,040 --> 00:23:55,840
For governance perspective three things went wrong here.
476
00:23:55,840 --> 00:23:58,840
First there was no power platform solution ownership model.
477
00:23:58,840 --> 00:23:59,840
Nobody made no owner.
478
00:23:59,840 --> 00:24:01,160
It's a no app a rule.
479
00:24:01,160 --> 00:24:05,080
Nobody required that every production solution have a named business owner.
480
00:24:05,080 --> 00:24:08,880
A technical owner, a mapped business service or process.
481
00:24:08,880 --> 00:24:10,600
A documented life cycle.
482
00:24:10,600 --> 00:24:13,160
When it was last reviewed what happens if the owner leaves.
483
00:24:13,160 --> 00:24:15,840
Second, there was no life cycle management.
484
00:24:15,840 --> 00:24:20,360
Flow's were created as pilots then quietly became production because they worked.
485
00:24:20,360 --> 00:24:21,840
There's left the company.
486
00:24:21,840 --> 00:24:25,840
Their entra idea accounts were disabled but their apps and flows were reassigned to generic
487
00:24:25,840 --> 00:24:28,760
admin accounts without any business review.
488
00:24:28,760 --> 00:24:32,520
Dependency grew but nothing in the control plane reflected that criticality.
489
00:24:32,520 --> 00:24:34,600
Third, the COE was reporting not governing.
490
00:24:34,600 --> 00:24:38,080
It surfaced the existence of assets but didn't drive decisions.
491
00:24:38,080 --> 00:24:42,680
No one had a standing process like every quarter we would identify often apps and flows
492
00:24:42,680 --> 00:24:46,560
in production environments and either assign owners or decommission them.
493
00:24:46,560 --> 00:24:48,800
The COE had telemetry, not authority.
494
00:24:48,800 --> 00:24:53,040
So during the audit phrases like shadow it start appearing in the notes.
495
00:24:53,040 --> 00:24:54,920
But this isn't classic shadow IT.
496
00:24:54,920 --> 00:24:57,000
Rogue SaaS purchased on a credit card.
497
00:24:57,000 --> 00:25:01,080
These are sanctioned tools on a sanctioned platform running inside your tenant, built
498
00:25:01,080 --> 00:25:05,040
with your licenses over your data, under your entra idea.
499
00:25:05,040 --> 00:25:07,000
The only thing missing is ownership.
500
00:25:07,000 --> 00:25:12,080
From the auditors standpoint an often solution that moves money on board's customers or touches
501
00:25:12,080 --> 00:25:13,920
KYC is not a hygiene issue.
502
00:25:13,920 --> 00:25:14,920
It's a control failure.
503
00:25:14,920 --> 00:25:17,520
There is no accountable person to question.
504
00:25:17,520 --> 00:25:21,440
No documented change history that anyone trusts and no guarantee that the logic has ever
505
00:25:21,440 --> 00:25:23,040
been tested against current policy.
506
00:25:23,040 --> 00:25:24,680
This was not a shadow IT problem.
507
00:25:24,680 --> 00:25:26,360
This was a missing ownership problem.
508
00:25:26,360 --> 00:25:28,480
And it's important to see how subtle the path was.
509
00:25:28,480 --> 00:25:33,240
At no point did someone say we choose to run regulated processes on unowned flows.
510
00:25:33,240 --> 00:25:35,760
What happened was the business needed automation.
511
00:25:35,760 --> 00:25:37,320
Power platform made it easy to build.
512
00:25:37,320 --> 00:25:39,480
The COE celebrated adoption.
513
00:25:39,480 --> 00:25:42,840
Nobody hardwired ownership and life cycle into the operating model.
514
00:25:42,840 --> 00:25:45,040
By the time audit arrives it's too late to retrofit.
515
00:25:45,040 --> 00:25:49,280
You can clean up going forward but you can't convincingly reconstruct years of ownership
516
00:25:49,280 --> 00:25:51,360
history for thousands of artifacts.
517
00:25:51,360 --> 00:25:53,560
So the lesson from financial services is this.
518
00:25:53,560 --> 00:25:58,120
If you cannot produce, on demand, a list of production apps and flows with named business
519
00:25:58,120 --> 00:26:00,960
owners and life cycle states, you don't have a governance model.
520
00:26:00,960 --> 00:26:02,200
You have a user report.
521
00:26:02,200 --> 00:26:03,200
This was not shadow it.
522
00:26:03,200 --> 00:26:04,600
Now this was missing ownership.
523
00:26:04,600 --> 00:26:06,120
The platform was secure.
524
00:26:06,120 --> 00:26:09,280
Governance disappeared in the control plane or to put it more bluntly.
525
00:26:09,280 --> 00:26:13,400
If you already have a COE but it doesn't enforce ownership and life cycle you don't have governance.
526
00:26:13,400 --> 00:26:14,960
You have a meeting.
527
00:26:14,960 --> 00:26:18,200
In scenario three, healthcare, PHI in the wrong environment.
528
00:26:18,200 --> 00:26:21,680
Now take a healthcare provider operating under hyper equivalent regulation.
529
00:26:21,680 --> 00:26:24,240
They adopted power platform aggressively during a crisis.
530
00:26:24,240 --> 00:26:25,680
Clinics needed triage apps.
531
00:26:25,680 --> 00:26:27,040
Labs needed intake forms.
532
00:26:27,040 --> 00:26:29,560
Care teams needed lightweight tracking for follow ups.
533
00:26:29,560 --> 00:26:34,240
Traditional build cycles were too slow so power apps and power automate filled the gap.
534
00:26:34,240 --> 00:26:35,840
It did one thing right at the start.
535
00:26:35,840 --> 00:26:37,760
They created multiple environments.
536
00:26:37,760 --> 00:26:41,840
There was clinic apps, back office, research and a generic broadshed.
537
00:26:41,840 --> 00:26:45,600
They even created a PHI restricted environment because someone at least recognized that
538
00:26:45,600 --> 00:26:48,880
protected health information should live somewhere special.
539
00:26:48,880 --> 00:26:51,400
On paper that looks like an environment strategy.
540
00:26:51,400 --> 00:26:53,600
In reality it was just a list of names.
541
00:26:53,600 --> 00:26:55,640
The lesson here should land early.
542
00:26:55,640 --> 00:26:57,840
Environment names are not classification.
543
00:26:57,840 --> 00:27:02,920
If you don't bind environments to concrete data rules you've just created labels, not controls.
544
00:27:02,920 --> 00:27:05,560
Nobody ever mapped those environments to data classification.
545
00:27:05,560 --> 00:27:09,000
Nobody wrote down PHI is only allowed in these environments.
546
00:27:09,000 --> 00:27:12,680
One PHI must never be in them, specific connectors are banned here.
547
00:27:12,680 --> 00:27:15,960
Every app here is automatically in regulatory scope.
548
00:27:15,960 --> 00:27:17,960
The names were suggestive, not authoritative.
549
00:27:17,960 --> 00:27:19,640
A clinic team needs a triage app.
550
00:27:19,640 --> 00:27:22,640
They work with a contractor who has built similar things before.
551
00:27:22,640 --> 00:27:26,000
The contractor is an experienced power app smaker, comfortable with dataverse.
552
00:27:26,000 --> 00:27:28,040
They ask for an environment to build in.
553
00:27:28,040 --> 00:27:31,000
Someone in IT says use clinic apps, that's what the name suggests.
554
00:27:31,000 --> 00:27:33,560
In that environment, dataverse is provisioned.
555
00:27:33,560 --> 00:27:37,280
The contractor creates tables for patients, encounters, symptoms and notes.
556
00:27:37,280 --> 00:27:41,520
They configure a model driven app for staff and a canvas app for quick intake on tablets.
557
00:27:41,520 --> 00:27:44,800
It works, the clinics love it, so far still relatively contained.
558
00:27:44,800 --> 00:27:46,560
Then a new use case emerges.
559
00:27:46,560 --> 00:27:51,200
Tracking patients refer to specialists including diagnoses, medications and lab results.
560
00:27:51,200 --> 00:27:54,800
That dataset is clearly PHI, not just operational metadata.
561
00:27:54,800 --> 00:27:58,560
A security conscious architect suggests we should put that in PHI restricted.
562
00:27:58,560 --> 00:27:59,960
That's why we created it.
563
00:27:59,960 --> 00:28:03,920
Under time pressure the contractor copies the existing dataverse tables and app configuration
564
00:28:03,920 --> 00:28:06,720
from clinic apps into PHI restricted.
565
00:28:06,720 --> 00:28:12,200
They export a solution imported into the PHI environment and then fix up the roles to match.
566
00:28:12,200 --> 00:28:14,560
Here is where the architectural failure happens.
567
00:28:14,560 --> 00:28:19,680
Instead of designing roles from first principles for PHI restricted, they copy the security
568
00:28:19,680 --> 00:28:21,520
roles from clinic apps.
569
00:28:21,520 --> 00:28:25,840
Those roles were designed for a broad set of clinic staff, reception, nurses, doctors and
570
00:28:25,840 --> 00:28:27,360
some back office coordinators.
571
00:28:27,360 --> 00:28:32,160
They granted table level read access to patient and encounter records because in the non-PHI
572
00:28:32,160 --> 00:28:34,320
triage context that was acceptable.
573
00:28:34,320 --> 00:28:38,800
In PHI restricted, that same set of roles now effectively grants large groups of staff access
574
00:28:38,800 --> 00:28:42,880
to diagnosis codes, medication histories and lab values they should never see.
575
00:28:42,880 --> 00:28:46,480
From their perspective nothing seems wrong, users log in with the same accounts.
576
00:28:46,480 --> 00:28:48,640
The app looks similar, they can do their job.
577
00:28:48,640 --> 00:28:49,640
Performance is fine.
578
00:28:49,640 --> 00:28:51,720
Auditing if enabled shows expected activity.
579
00:28:51,720 --> 00:28:55,560
The only hint of a problem appears months later when an internal privacy team performs
580
00:28:55,560 --> 00:28:56,560
a routine check.
581
00:28:56,560 --> 00:28:59,440
They pull an environment inventory, they see PHI restricted.
582
00:28:59,440 --> 00:29:02,960
Good, they see tables with names that clearly contain PHI.
583
00:29:02,960 --> 00:29:06,240
But then they look at the dataverse security roles and their assignments.
584
00:29:06,240 --> 00:29:09,920
They find a generic clinic user role with read access to PHI tables.
585
00:29:09,920 --> 00:29:13,600
That role assigned to large security groups covering wide swaths of staff.
586
00:29:13,600 --> 00:29:17,920
No differentiation between care teams or specialties or minimum necessary access.
587
00:29:17,920 --> 00:29:20,400
No documentation linking roles to drop functions.
588
00:29:20,400 --> 00:29:25,200
They compare that to the role model in the underlying EHR system, which is tightly segmented
589
00:29:25,200 --> 00:29:26,680
by specialty and location.
590
00:29:26,680 --> 00:29:28,480
The gap is obvious.
591
00:29:28,480 --> 00:29:32,000
If you remember one thing from this healthcare example, remember this.
592
00:29:32,000 --> 00:29:36,400
Having a role model from a non-PHI environment into a PHI environment is not reuse.
593
00:29:36,400 --> 00:29:39,560
It's a compliance violation waiting to be discovered.
594
00:29:39,560 --> 00:29:44,680
Functionally PHI in the power platform environment is far more broadly visible than PHI in the primary
595
00:29:44,680 --> 00:29:45,680
clinical system.
596
00:29:45,680 --> 00:29:49,720
Not because anyone overrode encryption or broke authentication, but because they copied
597
00:29:49,720 --> 00:29:55,840
a convenience oriented role model from a non-PHI context into a PHI context without redesign,
598
00:29:55,840 --> 00:29:56,840
auditors dig deeper.
599
00:29:56,840 --> 00:29:59,040
They ask for a field level security matrix.
600
00:29:59,040 --> 00:30:00,040
It doesn't exist.
601
00:30:00,040 --> 00:30:01,720
Field level security was never turned on.
602
00:30:01,720 --> 00:30:06,360
Social security numbers addresses diagnosis descriptions all treated as regular columns.
603
00:30:06,360 --> 00:30:10,400
They ask for a record of who approved this access design for PHI restricted.
604
00:30:10,400 --> 00:30:11,400
There is no record.
605
00:30:11,400 --> 00:30:15,000
There was a project plan, some emails and a deployment ticket that said promote to PHI
606
00:30:15,000 --> 00:30:16,000
restricted.
607
00:30:16,000 --> 00:30:20,360
Nobody with formal privacy accountability signed off on the dataverse security configuration.
608
00:30:20,360 --> 00:30:22,800
From a regulatory standpoint, this is not an edge case.
609
00:30:22,800 --> 00:30:24,680
It's a systematic failure.
610
00:30:24,680 --> 00:30:27,280
Environment strategy without data classification is not neutral.
611
00:30:27,280 --> 00:30:28,280
It's a compliance trap.
612
00:30:28,280 --> 00:30:32,600
You created a PHI environment but you never bound it to a stricter security model.
613
00:30:32,600 --> 00:30:35,680
You allowed roles to be copy-pasted from non-PHI spaces.
614
00:30:35,680 --> 00:30:38,720
You never mandated field level security for sensitive attributes.
615
00:30:38,720 --> 00:30:42,640
You never defined which person has existed in that environment and how least privilege
616
00:30:42,640 --> 00:30:43,840
would be enforced.
617
00:30:43,840 --> 00:30:45,960
So you end up in the worst possible position.
618
00:30:45,960 --> 00:30:50,320
You can't honestly claim ignorance because the environment is literally called PHI restricted,
619
00:30:50,320 --> 00:30:54,240
but you also can't demonstrate that you applied a proportional security design.
620
00:30:54,240 --> 00:30:55,680
This was not an encryption problem.
621
00:30:55,680 --> 00:30:56,920
This was a role design problem.
622
00:30:56,920 --> 00:30:58,080
The platform was secure.
623
00:30:58,080 --> 00:31:02,760
Governance disappeared in the control plane and again, the path was entirely understandable.
624
00:31:02,760 --> 00:31:06,880
Time pressure, reuse of existing patterns, lack of a platform team with authority over
625
00:31:06,880 --> 00:31:11,840
environment design and a deeply human instinct to copy something that already works instead
626
00:31:11,840 --> 00:31:14,040
of designing from scratch.
627
00:31:14,040 --> 00:31:16,200
The lesson from healthcare is straightforward.
628
00:31:16,200 --> 00:31:20,360
If your environment strategy is based on team names instead of data classification,
629
00:31:20,360 --> 00:31:21,800
you haven't reduced risk.
630
00:31:21,800 --> 00:31:24,360
You've just hidden it behind friendly labels.
631
00:31:24,360 --> 00:31:28,920
Mario 4, retail, business critical app dies with its creator.
632
00:31:28,920 --> 00:31:30,160
Now move into retail.
633
00:31:30,160 --> 00:31:34,800
A large retailer with thousands of stores has been modernizing store operations.
634
00:31:34,800 --> 00:31:38,640
Task management, shrink reporting, inventory exceptions, maintenance tickets are all the
635
00:31:38,640 --> 00:31:43,320
small workflows that used to live in binders and email threads are slowly moving onto power
636
00:31:43,320 --> 00:31:45,400
apps and power automate.
637
00:31:45,400 --> 00:31:48,240
One store manager is particularly good with technology.
638
00:31:48,240 --> 00:31:50,720
They start as a classic citizen developer.
639
00:31:50,720 --> 00:31:55,280
Just a simple checklist app, then a basic incident logging tool, then a more sophisticated solution
640
00:31:55,280 --> 00:31:59,680
that wires together inventory data, staffing and maintenance.
641
00:31:59,680 --> 00:32:03,000
Over a couple of years, that side project quietly becomes business critical.
642
00:32:03,000 --> 00:32:05,280
Here's how it happens.
643
00:32:05,280 --> 00:32:08,040
The original app tracks store incidents.
644
00:32:08,040 --> 00:32:13,040
Spills, breakages, equipment issues, over time it grows features, integration with a shared
645
00:32:13,040 --> 00:32:17,360
excel file for tracking costs, a power automate flow that notifies maintenance when freezer
646
00:32:17,360 --> 00:32:19,600
temperatures cross a threshold.
647
00:32:19,600 --> 00:32:23,520
Another flow that sends summaries to regional managers every Monday, a canvas app embedded
648
00:32:23,520 --> 00:32:25,680
in teams that staff use on handhelds.
649
00:32:25,680 --> 00:32:30,120
The app lives in what was originally a department environment called Ops Tools.
650
00:32:30,120 --> 00:32:32,400
Nobody ever reclassified it as production.
651
00:32:32,400 --> 00:32:37,560
Nobody updated the environment strategy when this solution became central to store operations.
652
00:32:37,560 --> 00:32:38,560
Ownership is informal.
653
00:32:38,560 --> 00:32:40,160
The creator is the store manager.
654
00:32:40,160 --> 00:32:43,760
They are the environment admin, the app owner, the person everyone pings when something
655
00:32:43,760 --> 00:32:44,760
looks odd.
656
00:32:44,760 --> 00:32:48,360
It is dimly aware of the solution but happy to see the stores innovating.
657
00:32:48,360 --> 00:32:52,240
There is no race, there is no ticket queue, there is no documented support model, then the
658
00:32:52,240 --> 00:32:53,240
creator leaves.
659
00:32:53,240 --> 00:32:57,480
Maybe they get promoted to a different business unit, maybe they move to a competitor, maybe
660
00:32:57,480 --> 00:33:02,200
they take a sabbatical, their intraid account is disabled as part of the standard HR off-boarding
661
00:33:02,200 --> 00:33:03,200
process.
662
00:33:03,200 --> 00:33:04,880
In intraid, that's the end of the story.
663
00:33:04,880 --> 00:33:07,680
In power platform, it's the start of a slow motion incident.
664
00:33:07,680 --> 00:33:09,920
Initially, nothing obvious breaks.
665
00:33:09,920 --> 00:33:13,280
The app still opens because users have direct share permissions.
666
00:33:13,280 --> 00:33:17,640
Some flows keep running because ownership was quietly reassigned to a generic admin account
667
00:33:17,640 --> 00:33:19,560
when the user was deprovisioned.
668
00:33:19,560 --> 00:33:21,680
From the store's perspective, life goes on.
669
00:33:21,680 --> 00:33:23,320
But entropy is already in motion.
670
00:33:23,320 --> 00:33:25,880
A schema change happens in the underlying data source.
671
00:33:25,880 --> 00:33:29,720
A column is added to the Excel sheet or a new field appears in dataverse because someone
672
00:33:29,720 --> 00:33:32,000
extended the model for a related project.
673
00:33:32,000 --> 00:33:34,000
The app wasn't built with that change in mind.
674
00:33:34,000 --> 00:33:35,600
A formula breaks in one screen.
675
00:33:35,600 --> 00:33:38,360
Staff start seeing errors when they submit certain types of incidents.
676
00:33:38,360 --> 00:33:40,320
They open tickets with the central service desk.
677
00:33:40,320 --> 00:33:42,520
The service desk looks in their ITSM system.
678
00:33:42,520 --> 00:33:44,400
There is no CI record for this app.
679
00:33:44,400 --> 00:33:45,720
No support team.
680
00:33:45,720 --> 00:33:47,160
No documented owner.
681
00:33:47,160 --> 00:33:52,080
The ticket bounces between applications via store operations and infrastructure.
682
00:33:52,080 --> 00:33:53,400
Nobody can answer a simple question.
683
00:33:53,400 --> 00:33:56,000
Who is responsible for fixing this power app?
684
00:33:56,000 --> 00:33:59,880
In parallel, one of the flows that sends weekly summaries starts failing.
685
00:33:59,880 --> 00:34:03,600
The failure shows up in power, automated as a run history full of red exclamation marks.
686
00:34:03,600 --> 00:34:05,200
The notification email stop.
687
00:34:05,200 --> 00:34:08,480
Regional managers assume the stores are just having a quiet week.
688
00:34:08,480 --> 00:34:13,040
After a month, someone notices that incident volumes look suspiciously low, they escalate.
689
00:34:13,040 --> 00:34:15,440
It finally goes into the power platform admin center.
690
00:34:15,440 --> 00:34:16,440
They find the app.
691
00:34:16,440 --> 00:34:17,440
They can see usage patterns.
692
00:34:17,440 --> 00:34:19,120
There are heavy in certain regions.
693
00:34:19,120 --> 00:34:20,960
Daily usage across hundreds of users.
694
00:34:20,960 --> 00:34:25,320
They see that the current owner is a generic admin account with no human tied to it.
695
00:34:25,320 --> 00:34:29,600
They see related flows, some suspended due to errors, some still running.
696
00:34:29,600 --> 00:34:32,960
They ask the COE team who built this and where is the documentation there.
697
00:34:32,960 --> 00:34:37,040
The COE team can tell them that the original creator's UPN was bound to the app.
698
00:34:37,040 --> 00:34:40,200
They can show when an ownership was transferred to the admin account.
699
00:34:40,200 --> 00:34:42,080
They can export the dependency graph.
700
00:34:42,080 --> 00:34:45,600
What they can't do is tell them why the app was designed the way it was, what business
701
00:34:45,600 --> 00:34:48,400
rules it encodes or what the acceptable behavior is.
702
00:34:48,400 --> 00:34:51,240
From the business perspective, this is a production outage.
703
00:34:51,240 --> 00:34:53,280
Store staff revert to manual reporting.
704
00:34:53,280 --> 00:34:54,880
Spread sheets reappear.
705
00:34:54,880 --> 00:34:56,280
Incidents go unlogged.
706
00:34:56,280 --> 00:34:57,280
Maintenance is slower.
707
00:34:57,280 --> 00:35:01,160
There is no official severity one incident in your classic IT systems, but the impact is
708
00:35:01,160 --> 00:35:02,160
real.
709
00:35:02,160 --> 00:35:06,440
From a governance perspective, this is the inevitable outcome of one design choice.
710
00:35:06,440 --> 00:35:10,320
You allow the business critical app to exist in production without a clear ownership and
711
00:35:10,320 --> 00:35:11,640
life cycle model.
712
00:35:11,640 --> 00:35:15,360
There was no rule that said no owner is no app.
713
00:35:15,360 --> 00:35:18,960
There was no requirement that any app with certain usage or impact be onboarded into your
714
00:35:18,960 --> 00:35:20,400
standard support model.
715
00:35:20,400 --> 00:35:25,320
There was no life cycle policy that said if the owner is a lever, the app must be reviewed
716
00:35:25,320 --> 00:35:26,400
or decommissioned.
717
00:35:26,400 --> 00:35:28,360
This was not a platform reliability problem.
718
00:35:28,360 --> 00:35:30,440
This was a life cycle governance problem.
719
00:35:30,440 --> 00:35:34,280
The uncomfortable part is that the platform behaved exactly as designed.
720
00:35:34,280 --> 00:35:36,200
Store apps didn't randomly delete anything.
721
00:35:36,200 --> 00:35:38,960
Power automate didn't spontaneously corrupt your logic.
722
00:35:38,960 --> 00:35:43,120
The admin center even had enough telemetry to warn you if someone had been looking.
723
00:35:43,120 --> 00:35:47,880
Heavy usage tied to a small number of owners, flows failing repeatedly orfant assets.
724
00:35:47,880 --> 00:35:49,160
Governance chose not to act.
725
00:35:49,160 --> 00:35:51,600
So the lesson from retail is blunt.
726
00:35:51,600 --> 00:35:55,000
If an app is important enough that you'd open a severity one incident when it breaks,
727
00:35:55,000 --> 00:35:59,440
it is important enough to have a documented owner, a support model and a life cycle.
728
00:35:59,440 --> 00:36:02,960
Pause on this because it's the only rule that consistently survives incidents.
729
00:36:02,960 --> 00:36:04,680
No owner, X no app.
730
00:36:04,680 --> 00:36:06,600
No owner, X no app is not optional.
731
00:36:06,600 --> 00:36:10,960
It is your only realistic business continuity policy for citizen build solutions.
732
00:36:10,960 --> 00:36:13,040
This was not a platform reliability problem.
733
00:36:13,040 --> 00:36:14,560
The platform was secure.
734
00:36:14,560 --> 00:36:16,560
Governance disappeared in the control plane.
735
00:36:16,560 --> 00:36:18,680
Scenario 5, professional services.
736
00:36:18,680 --> 00:36:20,880
Copilot quietly multiplies risk.
737
00:36:20,880 --> 00:36:22,920
Now let's look at a professional services firm.
738
00:36:22,920 --> 00:36:24,240
Legal consulting tax?
739
00:36:24,240 --> 00:36:25,320
Pick your poison.
740
00:36:25,320 --> 00:36:26,640
The common pattern is the same.
741
00:36:26,640 --> 00:36:31,040
Expensive humans, time and materials billing, and a lot of very sensitive documents.
742
00:36:31,040 --> 00:36:33,760
Co-pilot's ownership is under pressure to do something with AI.
743
00:36:33,760 --> 00:36:35,960
They see Microsoft copilot everywhere.
744
00:36:35,960 --> 00:36:39,680
Slide decks promise productivity gains, so they make the predictable move.
745
00:36:39,680 --> 00:36:44,640
Turn on copilot capabilities in power platform to increase efficiency for knowledge workers.
746
00:36:44,640 --> 00:36:45,720
There is just one problem.
747
00:36:45,720 --> 00:36:48,920
They do this before they can even govern human build apps properly.
748
00:36:48,920 --> 00:36:52,720
In the tenant, there is already a mix of power apps and power automate flows.
749
00:36:52,720 --> 00:36:54,200
Matter intake forms.
750
00:36:54,200 --> 00:36:56,720
Conflict check automations, document review trackers.
751
00:36:56,720 --> 00:36:58,640
Simple time entry helpers tied into billing.
752
00:36:58,640 --> 00:36:59,880
Ownership is patchy.
753
00:36:59,880 --> 00:37:04,560
Some live in IT owned environments, others in team spaces, many in a generic apps prod environment
754
00:37:04,560 --> 00:37:05,960
created during an early pilot.
755
00:37:05,960 --> 00:37:08,760
The COE has inventory but not much classification.
756
00:37:08,760 --> 00:37:11,800
DLP policies exist but they were written with classic connectors in mind.
757
00:37:11,800 --> 00:37:16,120
SharePoint, Exchange, SQL, a handful of line of business APIs.
758
00:37:16,120 --> 00:37:20,800
When copilot studio and copilot features in power apps and power automate light up, the
759
00:37:20,800 --> 00:37:22,720
makers don't get a new governance story.
760
00:37:22,720 --> 00:37:24,240
They just get a new button.
761
00:37:24,240 --> 00:37:25,600
Describe what you want to build.
762
00:37:25,600 --> 00:37:30,680
A senior associate types create an app that tracks matters with fields for client jurisdiction,
763
00:37:30,680 --> 00:37:34,040
practice area, lead partner and current status.
764
00:37:34,040 --> 00:37:36,920
Add a screen that lists open matters by deadline.
765
00:37:36,920 --> 00:37:39,920
Copilot scaffolds a dataverse table, some screens a couple of views.
766
00:37:39,920 --> 00:37:42,680
It's not perfect but it's good enough to iterate on.
767
00:37:42,680 --> 00:37:46,040
They tweak it, wire in some flows for notifications and publish.
768
00:37:46,040 --> 00:37:49,880
In a day they've shipped what would have taken weeks to get through traditional IT.
769
00:37:49,880 --> 00:37:52,080
Repeat that pattern across dozens of teams.
770
00:37:52,080 --> 00:37:57,320
HR builds a feedback tracker, tax builds a workflow for extension requests, risk builds a conflicts
771
00:37:57,320 --> 00:37:58,320
review helper.
772
00:37:58,320 --> 00:38:02,560
All of them use copilot to accelerate schema design, formulas and expressions.
773
00:38:02,560 --> 00:38:04,880
Architecturally something quiet and important changes.
774
00:38:04,880 --> 00:38:09,000
You no longer have a need division between IT build apps and business build apps.
775
00:38:09,000 --> 00:38:13,840
You have a fast growing set of AI assisted assets whose intent is only partially visible
776
00:38:13,840 --> 00:38:15,240
in human minds.
777
00:38:15,240 --> 00:38:18,000
The people who built them didn't write every line.
778
00:38:18,000 --> 00:38:20,040
They accepted and tweaked suggestions.
779
00:38:20,040 --> 00:38:21,920
Now look at this from the governance side.
780
00:38:21,920 --> 00:38:23,480
The admin center inventory grows.
781
00:38:23,480 --> 00:38:25,640
You see new apps, new flows, new connections.
782
00:38:25,640 --> 00:38:27,680
Many of them were created via copilot.
783
00:38:27,680 --> 00:38:31,960
But there is no mandatory tagging that says AI generated versus human authored.
784
00:38:31,960 --> 00:38:35,960
There is no required owner metadata beyond the basic maker identity.
785
00:38:35,960 --> 00:38:40,160
There is no prompt logging that says these were the natural language instructions that shaped
786
00:38:40,160 --> 00:38:41,240
this asset.
787
00:38:41,240 --> 00:38:43,240
The CUE dashboards show adoption going up.
788
00:38:43,240 --> 00:38:44,440
There is internal excitement.
789
00:38:44,440 --> 00:38:48,840
Leaders see demos of copilot surfacing key clauses from contracts stored in SharePoint
790
00:38:48,840 --> 00:38:51,120
or summarizing status from dataverse tables.
791
00:38:51,120 --> 00:38:52,400
It looks like innovation.
792
00:38:52,400 --> 00:38:54,280
Then risk and compliance start asking questions.
793
00:38:54,280 --> 00:38:57,280
They pull a list of apps and flows that touch client data.
794
00:38:57,280 --> 00:39:01,360
They want to know which of these were built with copilot, what prompts were used.
795
00:39:01,360 --> 00:39:05,480
Did anyone ask copilot to summarize or transform client documents that contain privileged or
796
00:39:05,480 --> 00:39:06,760
regulated information?
797
00:39:06,760 --> 00:39:09,280
Where are those prompts and intermediate output stored?
798
00:39:09,280 --> 00:39:10,760
You don't have answers.
799
00:39:10,760 --> 00:39:14,920
Copilot usage logs exist at a platform level, but you never wired them into your governance
800
00:39:14,920 --> 00:39:15,920
story.
801
00:39:15,920 --> 00:39:19,480
There is no standard that says every AI assisted asset must be registered with the platform
802
00:39:19,480 --> 00:39:23,320
team, tagged with its risk level and linked to a business owner.
803
00:39:23,320 --> 00:39:27,920
There is no AI specific DLP model that says copilot cannot read from these repositories
804
00:39:27,920 --> 00:39:29,120
or write to those.
805
00:39:29,120 --> 00:39:31,480
So you end up with the worst of both worlds.
806
00:39:31,480 --> 00:39:35,600
On the one hand, you have all the classic low-code risks, unclear ownership, weak environment
807
00:39:35,600 --> 00:39:38,000
strategy, inconsistent DLP.
808
00:39:38,000 --> 00:39:41,800
On the other hand, you've just attached an acceleration engine to that weak governance
809
00:39:41,800 --> 00:39:42,800
model.
810
00:39:42,800 --> 00:39:43,800
Copilot is not misbehaving.
811
00:39:43,800 --> 00:39:46,760
It's doing exactly what it was asked to do.
812
00:39:46,760 --> 00:39:50,440
It's a flow that copies documents from this library to that one.
813
00:39:50,440 --> 00:39:53,640
Suggest columns based on this description of a client matter system.
814
00:39:53,640 --> 00:39:57,280
Write an expression to filter records where status is active and deadline is in the next
815
00:39:57,280 --> 00:39:58,680
14 days.
816
00:39:58,680 --> 00:40:03,080
The trouble is that nobody is systematically reviewing what it produced, where it connected,
817
00:40:03,080 --> 00:40:05,280
or how it changed the shape of data movement.
818
00:40:05,280 --> 00:40:09,320
An internal investigation eventually finds a copilot generated flow that listens to a
819
00:40:09,320 --> 00:40:13,480
SharePoint library where draft contracts are stored sends some of those contracts to
820
00:40:13,480 --> 00:40:15,880
a shared mailbox for a review group.
821
00:40:15,880 --> 00:40:19,280
Logs those summaries in a dataverse table called contract summaries.
822
00:40:19,280 --> 00:40:20,600
The review mailbox is fine.
823
00:40:20,600 --> 00:40:24,560
The dataverse table lives in an environment with Slack DLP rules and broad membership.
824
00:40:24,560 --> 00:40:29,160
Junior staff who should never see the substance of certain deals can now browse summaries.
825
00:40:29,160 --> 00:40:31,920
Again, nothing here breached the core security model.
826
00:40:31,920 --> 00:40:33,920
Entra ID authenticated everyone.
827
00:40:33,920 --> 00:40:35,680
SharePoint permissions were respected.
828
00:40:35,680 --> 00:40:37,920
Dataverse dutifully stored what it was told.
829
00:40:37,920 --> 00:40:42,760
DLP never complained because from its perspective, everything stayed inside business connectors.
830
00:40:42,760 --> 00:40:44,560
This was not an AI safety failure.
831
00:40:44,560 --> 00:40:47,520
This was a governance failure that copilot multiplied.
832
00:40:47,520 --> 00:40:49,160
And that's the pattern to pay attention to.
833
00:40:49,160 --> 00:40:52,960
If you cannot govern human build apps and flows today, if you don't have environment,
834
00:40:52,960 --> 00:40:57,760
strategy, DLP guardrails, ownership, life cycle and metrics, you are not ready to govern
835
00:40:57,760 --> 00:40:59,520
AI generated ones.
836
00:40:59,520 --> 00:41:02,520
Copilot and agente AI are accelerants.
837
00:41:02,520 --> 00:41:07,040
For whatever governance posture you already have, good or bad, most copilot failures will
838
00:41:07,040 --> 00:41:08,640
not look like AI failures.
839
00:41:08,640 --> 00:41:11,840
They will look like ordinary governance failures, just faster.
840
00:41:11,840 --> 00:41:14,880
So the lesson from professional services is simple and uncomfortable.
841
00:41:14,880 --> 00:41:19,600
If your low-code governance framework cannot handle humans, it will not handle agents.
842
00:41:19,600 --> 00:41:22,680
Governance is not a PDF, defining a real operating model.
843
00:41:22,680 --> 00:41:25,120
By this point, the pattern should be obvious.
844
00:41:25,120 --> 00:41:29,720
Manufacturing leaked data because DLP was a one-time configuration, not a living system.
845
00:41:29,720 --> 00:41:33,200
Financial services failed audit because ownership was a slide, not a practice.
846
00:41:33,200 --> 00:41:37,480
Healthcare exposed PHI because environment names pretended to be classification.
847
00:41:37,480 --> 00:41:40,960
Retail broke because life cycle was implicit, not enforced.
848
00:41:40,960 --> 00:41:44,920
Social services multiplied risk because copilot landed on top of all of that.
849
00:41:44,920 --> 00:41:47,560
All of those are symptoms of the same root cause.
850
00:41:47,560 --> 00:41:52,280
You don't have a governance operating model, you have governance documents.
851
00:41:52,280 --> 00:41:55,960
Architecturally, governance has to behave like an operating system, not a PDF.
852
00:41:55,960 --> 00:41:57,960
An operating system does three things.
853
00:41:57,960 --> 00:42:03,840
It defines decision rights, it implements feedback loops, it has enforcement mechanisms.
854
00:42:03,840 --> 00:42:06,320
Decision rights answer, who decides?
855
00:42:06,320 --> 00:42:09,920
At every key boundary, who decides which environments are allowed to exist, who decides
856
00:42:09,920 --> 00:42:14,000
what DLP patterns are acceptable for finance versus HR versus R&D?
857
00:42:14,000 --> 00:42:17,720
Who decides when something is production and must meet stricter criteria?
858
00:42:17,720 --> 00:42:21,400
Who decides which connectors are allowed into a regulated environment?
859
00:42:21,400 --> 00:42:25,640
If the answer to all of those is a committee or it depends, you don't have decision rights,
860
00:42:25,640 --> 00:42:29,920
you have diffusion of responsibility, feedback loops answer, how do we know reality still
861
00:42:29,920 --> 00:42:31,240
matches intent?
862
00:42:31,240 --> 00:42:35,360
That means you're not just setting policies once, you're measuring adherence.
863
00:42:35,360 --> 00:42:37,240
You have metrics for orphaned apps and flows.
864
00:42:37,240 --> 00:42:39,040
You watch DLP violations over time.
865
00:42:39,040 --> 00:42:42,120
You track environment growth relative to actual usage.
866
00:42:42,120 --> 00:42:45,360
You look at the ratio of citizen build assets to incidents.
867
00:42:45,360 --> 00:42:47,760
When thresholds are crossed, something happens.
868
00:42:47,760 --> 00:42:52,120
Enforcement mechanisms answer what actually changes when the system drifts.
869
00:42:52,120 --> 00:42:53,560
Not in theory in practice.
870
00:42:53,560 --> 00:42:57,240
If often flows exceed 2%, who triggers remediation?
871
00:42:57,240 --> 00:43:01,360
If a non-approved connector appears in a production environment who has the authority
872
00:43:01,360 --> 00:43:03,720
to block it and force a review.
873
00:43:03,720 --> 00:43:07,600
If an app crosses a usage threshold that makes it business critical, who can insist
874
00:43:07,600 --> 00:43:10,040
it be onboarded into A-LAM and support?
875
00:43:10,040 --> 00:43:13,640
If you can't answer those questions with concrete names and actions, you don't have an
876
00:43:13,640 --> 00:43:14,880
operating model.
877
00:43:14,880 --> 00:43:16,360
You have governance theatre.
878
00:43:16,360 --> 00:43:20,760
This is where a lot of organisations misunderstand the role of a power platform centre of excellence.
879
00:43:20,760 --> 00:43:22,720
The QE starter kit is a set of tools.
880
00:43:22,720 --> 00:43:24,520
It is not by itself an operating model.
881
00:43:24,520 --> 00:43:28,960
You can have beautiful dashboards, usage reports and maker statistics and still have no
882
00:43:28,960 --> 00:43:30,200
real control.
883
00:43:30,200 --> 00:43:34,640
If you already have a COE but it doesn't look like an operating system, with decision rights,
884
00:43:34,640 --> 00:43:37,560
feedback loops and enforcement, you don't have a governance model.
885
00:43:37,560 --> 00:43:38,560
You have a meeting.
886
00:43:38,560 --> 00:43:41,640
So what does a real power platform governance operating model look like?
887
00:43:41,640 --> 00:43:43,200
First, it is platform team led.
888
00:43:43,200 --> 00:43:45,440
You stand up a platform team whose mandate is clear.
889
00:43:45,440 --> 00:43:47,440
Own standards and guardrails, not every app.
890
00:43:47,440 --> 00:43:48,640
They're not a dev factory.
891
00:43:48,640 --> 00:43:51,360
They don't become a bottleneck for every citizen build form.
892
00:43:51,360 --> 00:43:54,320
Their job is to design and operate the control plane.
893
00:43:54,320 --> 00:43:59,120
Environments, DLP, identity patterns, ALM pipelines, monitoring and metrics.
894
00:43:59,120 --> 00:44:01,520
Second, it organizes policy along three axes.
895
00:44:01,520 --> 00:44:04,760
Scale, how many makers and assets are we talking about?
896
00:44:04,760 --> 00:44:07,440
Sensitivity, what class of data is involved?
897
00:44:07,440 --> 00:44:12,600
Digital internal, confidential regulated, criticality, what is the impact if this app or flow fails?
898
00:44:12,600 --> 00:44:16,960
Annoyance, local disruption, enterprise wide outage, regulatory breach.
899
00:44:16,960 --> 00:44:19,400
Every solution lives somewhere on those three axes.
900
00:44:19,400 --> 00:44:24,480
A personal productivity flow in the default environment is low sensitivity, low criticality,
901
00:44:24,480 --> 00:44:25,480
small scale.
902
00:44:25,480 --> 00:44:31,000
A payments approval app in finance broad is high sensitivity, high criticality and potentially
903
00:44:31,000 --> 00:44:32,000
large scale.
904
00:44:32,000 --> 00:44:34,080
Your operating model doesn't treat those the same.
905
00:44:34,080 --> 00:44:36,080
It defines policy tiers.
906
00:44:36,080 --> 00:44:37,360
Low tier.
907
00:44:37,360 --> 00:44:41,920
Permissive environments with strict DLP around external connectors, limited sharing, lightweight
908
00:44:41,920 --> 00:44:42,920
ownership.
909
00:44:42,920 --> 00:44:48,400
Medium tier, departmental solutions within forced ALM, stronger DLP, clear rakey, high tier,
910
00:44:48,400 --> 00:44:53,200
enterprise or regulated solutions with dedicated environments, locked down connectors, mandatory
911
00:44:53,200 --> 00:44:55,560
life cycle processes and formal sign off.
912
00:44:55,560 --> 00:44:57,520
Third, the operating model runs every day.
913
00:44:57,520 --> 00:45:01,560
It has routines, day to day monitoring of flows, failing in production, weekly reviews
914
00:45:01,560 --> 00:45:05,200
of new production tagged apps crossing usage thresholds.
915
00:45:05,200 --> 00:45:10,440
Currently checks on often assets and DLP violations, quarterly reviews with security and compliance
916
00:45:10,440 --> 00:45:13,160
on regulated environments and AI agents.
917
00:45:13,160 --> 00:45:16,680
The point is simple, governance is not what's written down, governance is what runs.
918
00:45:16,680 --> 00:45:20,080
Once you think of it as an operating system, you can start to design it intentionally.
919
00:45:20,080 --> 00:45:25,600
With a platform team charter, a clear rakey, an environment strategy that maps to data classification
920
00:45:25,600 --> 00:45:31,360
and a time bound plan, day, day 30, day 90, to get from chaos to something you can defend
921
00:45:31,360 --> 00:45:33,560
in front of its seesaw.
922
00:45:33,560 --> 00:45:38,840
Medium team led operating model, charter, rakey, environments, day 30, 90.
923
00:45:38,840 --> 00:45:40,080
So let's make this concrete.
924
00:45:40,080 --> 00:45:44,040
If governance is an operating system, the platform team is the kernel.
925
00:45:44,040 --> 00:45:48,480
Everything else is user land, the platform team charter is simple and non-negotiable.
926
00:45:48,480 --> 00:45:50,160
They own the platform, not every app.
927
00:45:50,160 --> 00:45:51,920
They own standards, patterns and guardrails.
928
00:45:51,920 --> 00:45:55,440
They do not become a ticket queue for please build my form.
929
00:45:55,440 --> 00:45:59,400
Architecturally their responsibilities fall into four buckets, first control plane design.
930
00:45:59,400 --> 00:46:03,120
They define the environment strategy, which environments exist, what they're called,
931
00:46:03,120 --> 00:46:07,560
which security groups map to each one, what data classifications are allowed where,
932
00:46:07,560 --> 00:46:10,440
which DLP policies apply, which regions are used.
933
00:46:10,440 --> 00:46:14,520
They own the baseline conditional access patterns for power platform surfaces.
934
00:46:14,520 --> 00:46:19,040
They decide what managed environment means in your tenant, second patterns in ALM.
935
00:46:19,040 --> 00:46:20,880
They provide reference architectures.
936
00:46:20,880 --> 00:46:24,960
If you're building a departmental approval app, here's the template, here's the pipeline,
937
00:46:24,960 --> 00:46:27,920
here's how you move from dev to test to prod.
938
00:46:27,920 --> 00:46:33,360
They standardize on a small set of ALM patterns, native pipelines, Azure DevOps or GitHub,
939
00:46:33,360 --> 00:46:35,160
and make those the default parts to production.
940
00:46:35,160 --> 00:46:39,000
They don't handcraft every solution, but they define how solutions should behave.
941
00:46:39,000 --> 00:46:40,920
Third, monitoring and metrics.
942
00:46:40,920 --> 00:46:42,360
They own the dashboards.
943
00:46:42,360 --> 00:46:48,440
CoeInventory, DLP Impact Analysis, Environment Health, Flow Failure Rates, often asset percentages,
944
00:46:48,440 --> 00:46:50,600
adoption versus incident ratios.
945
00:46:50,600 --> 00:46:52,440
They set thresholds and wire alerts.
946
00:46:52,440 --> 00:46:55,400
They are the first ones to see when governance starts to drift.
947
00:46:55,400 --> 00:46:57,400
Fourth, enablement and escalation.
948
00:46:57,400 --> 00:47:01,520
They run the maker on boarding experience, the documentation of guard rails, the internal
949
00:47:01,520 --> 00:47:03,040
power platform hub.
950
00:47:03,040 --> 00:47:07,440
They provide guidance sessions, pattern reviews for higher risk solutions, and they act as
951
00:47:07,440 --> 00:47:11,520
the escalation point when something crosses a risk threshold and needs to be pulled into
952
00:47:11,520 --> 00:47:13,040
a stricter regime.
953
00:47:13,040 --> 00:47:16,480
To make that work, you need a clear rarity, business owns data and outcomes.
954
00:47:16,480 --> 00:47:21,040
The platform team owns the platform and patterns, security and compliance own control objectives,
955
00:47:21,040 --> 00:47:24,480
IT operations own support for infrastructure and core services.
956
00:47:24,480 --> 00:47:26,480
So for a given app.
957
00:47:26,480 --> 00:47:29,280
IT is responsible for defining what it does and why it matters.
958
00:47:29,280 --> 00:47:31,520
Business is accountable for the risk of using it.
959
00:47:31,520 --> 00:47:35,560
Platform team is consulted on architecture, environment and DLP fit.
960
00:47:35,560 --> 00:47:38,680
Security and compliance are consulted on regulated scenarios.
961
00:47:38,680 --> 00:47:41,760
IT jobs is informed about support, impact and dependencies.
962
00:47:41,760 --> 00:47:46,200
If your current model makes IT accountable for every low-code asset, you've already lost.
963
00:47:46,200 --> 00:47:49,560
You will either block everything or silently accept risk you don't own.
964
00:47:49,560 --> 00:47:50,560
Now, environments.
965
00:47:50,560 --> 00:47:54,920
You need a minimum viable environment, tearing that aligns to data sensitivity and criticality,
966
00:47:54,920 --> 00:47:55,920
not org chart.
967
00:47:55,920 --> 00:48:00,120
At the bottom, a lockdown default environment scope to personal productivity.
968
00:48:00,120 --> 00:48:01,440
Tied DLP.
969
00:48:01,440 --> 00:48:02,840
No premium connectors.
970
00:48:02,840 --> 00:48:05,120
No business critical data.
971
00:48:05,120 --> 00:48:08,240
Think tell me when my manager emails me, not run payroll.
972
00:48:08,240 --> 00:48:12,720
Then non-regulated dev test prod tiers for departmental and enterprise apps.
973
00:48:12,720 --> 00:48:14,280
Names that actually mean something.
974
00:48:14,280 --> 00:48:18,280
Depth dev, depth test, depth prod, enterprise prod.
975
00:48:18,280 --> 00:48:22,120
Each with its own DLP policy, security groups and ALM pipelines.
976
00:48:22,120 --> 00:48:23,160
Production is invitation only.
977
00:48:23,160 --> 00:48:25,360
You don't accidentally land there.
978
00:48:25,360 --> 00:48:28,440
Alongside that, restricted or regulated environments.
979
00:48:28,440 --> 00:48:32,080
Finance reg, PHI restricted, client sensitive.
980
00:48:32,080 --> 00:48:34,880
These are mapped explicitly to data classifications.
981
00:48:34,880 --> 00:48:36,520
Only certain connectors are allowed.
982
00:48:36,520 --> 00:48:38,120
Only certain roles exist.
983
00:48:38,120 --> 00:48:41,680
Every asset there is, by definition, in scope for audit.
984
00:48:41,680 --> 00:48:43,120
Environment creation is not a free for all.
985
00:48:43,120 --> 00:48:47,440
It's a controlled operation run by the platform team, ideally automated with requests and approvals
986
00:48:47,440 --> 00:48:50,480
that capture purpose owner and expect a data class.
987
00:48:50,480 --> 00:48:51,680
That's the steady state.
988
00:48:51,680 --> 00:48:53,320
How do you get there from where you are?
989
00:48:53,320 --> 00:48:55,560
You use a day, day 30, day 90 plan.
990
00:48:55,560 --> 00:48:56,560
Day is the freeze.
991
00:48:56,560 --> 00:48:57,560
You don't fix everything.
992
00:48:57,560 --> 00:48:58,560
You stop it getting worse.
993
00:48:58,560 --> 00:49:02,480
You freeze ad hoc environment creation and switch it to admin only.
994
00:49:02,480 --> 00:49:06,560
You define at least roughly which existing environments are prod, which are dev test and
995
00:49:06,560 --> 00:49:08,120
which are unknown.
996
00:49:08,120 --> 00:49:12,360
You deploy a baseline tenant-wide DLP policy that blocks the worst consumer connectors in
997
00:49:12,360 --> 00:49:14,080
all but the default environment.
998
00:49:14,080 --> 00:49:15,840
You turn on audit logging where it's off.
999
00:49:15,840 --> 00:49:19,080
You identify the top end production looking environments by usage.
1000
00:49:19,080 --> 00:49:20,480
The goal for day is simple.
1001
00:49:20,480 --> 00:49:21,720
Reduce the rate of new entropy.
1002
00:49:21,720 --> 00:49:22,880
Day 30 is structure.
1003
00:49:22,880 --> 00:49:24,880
You stand up or formalize the platform team.
1004
00:49:24,880 --> 00:49:29,440
You publish a first pass environment strategy and map existing environments into it.
1005
00:49:29,440 --> 00:49:34,120
You define and socialize the right C and the rule no owner is no app in prod.
1006
00:49:34,120 --> 00:49:38,720
You deploy at least one standard ALM pattern and apply it to net new high-criticality solutions.
1007
00:49:38,720 --> 00:49:41,160
You get the COE or equivalent telemetry running.
1008
00:49:41,160 --> 00:49:44,760
If it isn't already, you don't have all the answers by day 30 but you've drawn the map.
1009
00:49:44,760 --> 00:49:46,560
Day 90 is enforcement.
1010
00:49:46,560 --> 00:49:50,000
You start enforcing lifecycle management for production environments.
1011
00:49:50,000 --> 00:49:52,480
Review often assets, decommission or reassign.
1012
00:49:52,480 --> 00:49:56,960
You apply DLP policies per environment tier instead of one giant inconsistent blob.
1013
00:49:56,960 --> 00:50:01,200
You publish metrics, often flow percentage DLP violations environment growth.
1014
00:50:01,200 --> 00:50:02,920
You wire alerts to real people.
1015
00:50:02,920 --> 00:50:08,120
You also make your first firm decision on AI governance, which environments can use co-pilot.
1016
00:50:08,120 --> 00:50:12,520
What tagging, logging and review are mandatory for AI assisted assets.
1017
00:50:12,520 --> 00:50:15,520
How prompts are treated from a privacy perspective.
1018
00:50:15,520 --> 00:50:17,440
By day 90 you're not done.
1019
00:50:17,440 --> 00:50:21,400
But you've moved from accidental behavior to an operating model.
1020
00:50:21,400 --> 00:50:23,760
You can stand in front of a CISO and defend.
1021
00:50:23,760 --> 00:50:26,360
And the rule that underpins all of it stays simple.
1022
00:50:26,360 --> 00:50:30,720
If the platform matters enough to worry about its security, it matters enough to have a platform
1023
00:50:30,720 --> 00:50:33,880
team running a real operating model.
1024
00:50:33,880 --> 00:50:37,400
Metrics that matter, turning governance into a measurable system.
1025
00:50:37,400 --> 00:50:39,440
At this point there's a predictable objection.
1026
00:50:39,440 --> 00:50:43,800
Okay, platform team, environments, DLP, ownership, day 3090.
1027
00:50:43,800 --> 00:50:46,200
How do we know if any of this is actually working?
1028
00:50:46,200 --> 00:50:49,400
If you can't answer that with numbers, you're not running governance.
1029
00:50:49,400 --> 00:50:50,760
You're running theatre.
1030
00:50:50,760 --> 00:50:53,400
Metrics without metrics is just well phrased intent.
1031
00:50:53,400 --> 00:50:57,160
So what does it mean to treat power platform governance as a measurable system?
1032
00:50:57,160 --> 00:50:59,880
If you remember one thing from this section, make it this.
1033
00:50:59,880 --> 00:51:01,520
Metrics only matter if they drive action.
1034
00:51:01,520 --> 00:51:03,120
It starts with one principle.
1035
00:51:03,120 --> 00:51:06,400
You cannot steer what you do not measure and you should not measure what you're not prepared
1036
00:51:06,400 --> 00:51:07,400
to act on.
1037
00:51:07,400 --> 00:51:11,040
So the first job of the platform team is not to build pretty a dashboards.
1038
00:51:11,040 --> 00:51:15,280
It's to define a small brutal set of metrics that connect directly to control.
1039
00:51:15,280 --> 00:51:16,520
Think of three categories.
1040
00:51:16,520 --> 00:51:18,640
Hygiene.risk.scale.
1041
00:51:18,640 --> 00:51:21,280
Hygiene metrics tell you whether the basics are under control.
1042
00:51:21,280 --> 00:51:23,760
The most important one is often assets.
1043
00:51:23,760 --> 00:51:26,920
Apps and flows in production environments with no valid business owner.
1044
00:51:26,920 --> 00:51:30,880
You measure it as a percentage of total production assets and you set a hard threshold.
1045
00:51:30,880 --> 00:51:35,960
For example, if more than 2% of production flows or apps are often remediation is mandatory.
1046
00:51:35,960 --> 00:51:38,680
Mandatory means three things actually happen.
1047
00:51:38,680 --> 00:51:40,600
Platform team initiates remediation.
1048
00:51:40,600 --> 00:51:44,480
They generate the list, open tickets and drive the process.
1049
00:51:44,480 --> 00:51:45,880
Business owner resolves.
1050
00:51:45,880 --> 00:51:50,920
They either accept ownership, nominate a new owner or approve decommissioning.
1051
00:51:50,920 --> 00:51:51,920
Security validates.
1052
00:51:51,920 --> 00:51:55,840
They confirm that anything decommissioned or reassigned doesn't leave residual access or
1053
00:51:55,840 --> 00:51:56,840
data behind.
1054
00:51:56,840 --> 00:51:57,840
That chain matters.
1055
00:51:57,840 --> 00:52:02,560
Metrics without a clear who moves first, who closes, who checks, degrade into noise.
1056
00:52:02,560 --> 00:52:04,920
The second hygiene metric is DLP violations.
1057
00:52:04,920 --> 00:52:08,720
How many flows or apps attempt to use blocked connector combinations and how quickly are
1058
00:52:08,720 --> 00:52:09,720
those violations resolved?
1059
00:52:09,720 --> 00:52:11,200
You don't just count violations.
1060
00:52:11,200 --> 00:52:12,480
You put an SLA on them.
1061
00:52:12,480 --> 00:52:15,680
For example, critical DLP violations in production.
1062
00:52:15,680 --> 00:52:20,960
Anything involving regulated data or high-risk connectors must be triaged within 4 hours
1063
00:52:20,960 --> 00:52:24,400
and either remediated or formally accepted within 24.
1064
00:52:24,400 --> 00:52:27,440
Again, with ownership, platform team detects and classifies.
1065
00:52:27,440 --> 00:52:31,000
Business owner decides whether the attempted pattern is legitimate.
1066
00:52:31,000 --> 00:52:34,440
Security approves or rejects the pattern and updates policy if needed.
1067
00:52:34,440 --> 00:52:35,440
Now risk metrics.
1068
00:52:35,440 --> 00:52:38,960
Here you care less about raw counts and more about ratios and trends.
1069
00:52:38,960 --> 00:52:42,120
One useful metric is adoption versus incident ratio.
1070
00:52:42,120 --> 00:52:46,160
For a given time period, how many net new production apps and flows went live and how many governance
1071
00:52:46,160 --> 00:52:47,800
incidents occurred?
1072
00:52:47,800 --> 00:52:51,640
Incidents meaning unauthorized data movement access escalation audit findings tied to power
1073
00:52:51,640 --> 00:52:54,640
platform or material outages from low-code assets.
1074
00:52:54,640 --> 00:53:00,200
If your ratio is say 200 new production solutions and one minor incident per quarter, that's
1075
00:53:00,200 --> 00:53:01,200
one story.
1076
00:53:01,200 --> 00:53:04,760
If it's 50 solutions and five significant incidents, that's another.
1077
00:53:04,760 --> 00:53:09,440
You're measuring not just how much you build but how safely you're operating at that speed.
1078
00:53:09,440 --> 00:53:11,920
Another risk metric is environment growth rate.
1079
00:53:11,920 --> 00:53:17,160
How many environments do you have by tier, personal departmental enterprise regulated and how fast
1080
00:53:17,160 --> 00:53:18,640
is that number changing?
1081
00:53:18,640 --> 00:53:22,360
You might set a guardrail like net growth in production and regulated environments should
1082
00:53:22,360 --> 00:53:25,200
not exceed 10% per quarter without review.
1083
00:53:25,200 --> 00:53:30,040
Above that, the platform team and security sit down and ask, are we seeing environment proliferation
1084
00:53:30,040 --> 00:53:31,960
as a proxy for missing patterns?
1085
00:53:31,960 --> 00:53:34,720
Again, the metric is only useful if it triggers action.
1086
00:53:34,720 --> 00:53:38,920
A growth spike might mean you need new standardized environment types or that a particular
1087
00:53:38,920 --> 00:53:42,560
business unit is treating environments as disposable sandboxes.
1088
00:53:42,560 --> 00:53:44,560
Finally, scale metrics.
1089
00:53:44,560 --> 00:53:48,680
You want to understand where citizen development is actually happening and whether it's distributed
1090
00:53:48,680 --> 00:53:49,680
in the same way.
1091
00:53:49,680 --> 00:53:54,280
The COE dashboards can show you makers by business unit, asset counts by environment and usage
1092
00:53:54,280 --> 00:53:55,280
by app.
1093
00:53:55,280 --> 00:53:58,720
You can convert that into something actionable, percentage of business units with at least
1094
00:53:58,720 --> 00:54:03,200
one active maker, top 10 environments by usage and their own equality.
1095
00:54:03,200 --> 00:54:04,960
Distribution of makers versus apps.
1096
00:54:04,960 --> 00:54:09,360
Do you have a healthy maker community or a handful of heroes carrying everything?
1097
00:54:09,360 --> 00:54:12,920
You combine those with your hygiene and risk metrics to decide where to invest in ablment
1098
00:54:12,920 --> 00:54:14,680
versus where to tighten controls.
1099
00:54:14,680 --> 00:54:17,240
All of this is easily built with existing tools.
1100
00:54:17,240 --> 00:54:20,440
The COE starter kit already collects most of the raw data.
1101
00:54:20,440 --> 00:54:24,680
You can build power BI reports that show inventory by environment, risk heat maps across
1102
00:54:24,680 --> 00:54:29,120
sensitivity, owner quality and usage and trend lines over time.
1103
00:54:29,120 --> 00:54:30,520
The trick is restrained.
1104
00:54:30,520 --> 00:54:31,960
You do not need 40 metrics.
1105
00:54:31,960 --> 00:54:36,160
You need a short list that an executive can understand on one slide and that your platform
1106
00:54:36,160 --> 00:54:37,840
team can drive every week.
1107
00:54:37,840 --> 00:54:43,440
For example, a minimal governance scorecard might be "offent production assets" - 1, 2%,
1108
00:54:43,440 --> 00:54:45,560
target, 2%.
1109
00:54:45,560 --> 00:54:50,440
Critical DLP violations resolved within 24 hours - 96% target, 100%.
1110
00:54:50,440 --> 00:54:55,560
Net production regulated environment growth - 7% target, intuous and 10% - adoption versus
1111
00:54:55,560 --> 00:55:00,160
incident ratio - 150.1, target, 1, 101.
1112
00:55:00,160 --> 00:55:04,920
Business units with active makers - 80%, target, and 70%.
1113
00:55:04,920 --> 00:55:08,880
Each of those has a named owner and a defined next step when it drifts.
1114
00:55:08,880 --> 00:55:13,720
When the offent percentage crosses 2%, platform opens remediation, business resolves, security
1115
00:55:13,720 --> 00:55:14,720
validates.
1116
00:55:14,720 --> 00:55:19,680
When DLP-SLA drops, platform reviews the patterns, business justifies or retires, security
1117
00:55:19,680 --> 00:55:21,880
titans or just policy.
1118
00:55:21,880 --> 00:55:26,720
When environment growth spikes platform freezes new creation in that tier until they understand
1119
00:55:26,720 --> 00:55:27,720
the driver.
1120
00:55:27,720 --> 00:55:30,280
This means to turn governance into a measurable system.
1121
00:55:30,280 --> 00:55:33,760
You're no longer arguing about whether you feel in control of power platform.
1122
00:55:33,760 --> 00:55:37,960
You can point to a small set of numbers, that track hygiene, risk and scale, and to the
1123
00:55:37,960 --> 00:55:41,160
routines that move those numbers in the right direction.
1124
00:55:41,160 --> 00:55:44,520
And once you have that, you can finally have the same conversation about zero trust in
1125
00:55:44,520 --> 00:55:48,400
low-code because you're no longer guessing how the system behaves, you're measuring
1126
00:55:48,400 --> 00:55:49,720
how it drifts.
1127
00:55:49,720 --> 00:55:53,000
Zero trust meets low-code, designing for conditional chaos.
1128
00:55:53,000 --> 00:55:56,160
Zero trust gets thrown around so much it's almost background noise.
1129
00:55:56,160 --> 00:55:57,160
Verify explicitly.
1130
00:55:57,160 --> 00:55:58,440
Use least privilege.
1131
00:55:58,440 --> 00:55:59,920
Assume breach.
1132
00:55:59,920 --> 00:56:00,920
Pause here.
1133
00:56:00,920 --> 00:56:04,880
This is where most zero trust slideware falls apart when it hits a low-code platform.
1134
00:56:04,880 --> 00:56:09,880
The problem is that most zero trust conversations are about network edges and classic applications,
1135
00:56:09,880 --> 00:56:14,640
not about a distributed citizen-driven, low-code platform that can change shape every day.
1136
00:56:14,640 --> 00:56:15,800
Power platform is exactly that.
1137
00:56:15,800 --> 00:56:20,360
A distributed decision engine that keeps evolving, which means if you don't design for zero
1138
00:56:20,360 --> 00:56:21,960
trust here, you don't have it anywhere.
1139
00:56:21,960 --> 00:56:25,680
So let's translate those three principles into the reality of apps, flows, environments
1140
00:56:25,680 --> 00:56:26,960
and connectors.
1141
00:56:26,960 --> 00:56:29,680
And into the conditional chaos we talked about earlier.
1142
00:56:29,680 --> 00:56:32,760
Start with verify explicitly.
1143
00:56:32,760 --> 00:56:35,160
In the power platform world, that means two things.
1144
00:56:35,160 --> 00:56:36,960
Entra conditional access and environment routing.
1145
00:56:36,960 --> 00:56:40,880
And you're not just deciding whether a user can sign in, you're deciding from where, on
1146
00:56:40,880 --> 00:56:44,720
what, into which environment and with what blast radius.
1147
00:56:44,720 --> 00:56:46,480
So you establish clear patterns.
1148
00:56:46,480 --> 00:56:50,400
Personal productivity lives in the default or personal dev environments behind stricter
1149
00:56:50,400 --> 00:56:53,680
DLP and with no access to regulated data.
1150
00:56:53,680 --> 00:56:58,440
And enterprise apps live in named dev test, prod environments, each backed by
1151
00:56:58,440 --> 00:56:59,800
andro security groups.
1152
00:56:59,800 --> 00:57:03,800
Regulated workloads live only in restricted environments where access requires compliant
1153
00:57:03,800 --> 00:57:07,920
devices, strong MFA and maybe even network location controls.
1154
00:57:07,920 --> 00:57:11,440
Environment routing and groups turn that into a deterministic pattern instead of an honor
1155
00:57:11,440 --> 00:57:12,440
system.
1156
00:57:12,440 --> 00:57:15,280
When a maker shows up, they don't land in the global sandbox.
1157
00:57:15,280 --> 00:57:17,520
They land where their persona says they belong.
1158
00:57:17,520 --> 00:57:20,000
Then use least privilege.
1159
00:57:20,000 --> 00:57:24,320
In low code, least privilege is less about individual tables and more about patterns.
1160
00:57:24,320 --> 00:57:28,960
You avoid maker as owner of everything designs where the same human account owns the
1161
00:57:28,960 --> 00:57:33,280
dataverse environment, the apps, the flows, the custom connectors and the azure bits.
1162
00:57:33,280 --> 00:57:36,880
You push ownership to service principles and managed identities where appropriate.
1163
00:57:36,880 --> 00:57:41,000
You design dataverse roles per persona instead of everyone gets basic user plus a few
1164
00:57:41,000 --> 00:57:42,120
random grounds.
1165
00:57:42,120 --> 00:57:45,120
You also implement least privilege at the connector level.
1166
00:57:45,120 --> 00:57:48,720
That means standard DLP sets like a core business set.
1167
00:57:48,720 --> 00:57:52,520
Serververse, SharePoint, Exchange, First Party, Line of Business APIs.
1168
00:57:52,520 --> 00:57:54,000
A collaboration set.
1169
00:57:54,000 --> 00:57:57,480
Teams, planner, certain external SaaS apps that have been risk assessed.
1170
00:57:57,480 --> 00:58:01,520
A high-risk set, consumer email, personal storage, generic HDDP.
1171
00:58:01,520 --> 00:58:04,640
You don't let a single app or flow span all three sets.
1172
00:58:04,640 --> 00:58:09,000
If a solution truly needs to bridge them, it becomes an exception with explicit review.
1173
00:58:09,000 --> 00:58:10,000
Not a default.
1174
00:58:10,000 --> 00:58:11,480
Now the uncomfortable one.
1175
00:58:11,480 --> 00:58:12,480
Assume breach.
1176
00:58:12,480 --> 00:58:14,160
Assume a connector is compromised.
1177
00:58:14,160 --> 00:58:16,120
Assume a maker account is fished.
1178
00:58:16,120 --> 00:58:17,600
Assume flow is misconfigured.
1179
00:58:17,600 --> 00:58:18,600
What happens?
1180
00:58:18,600 --> 00:58:20,600
Zero trust-aware power platform design.
1181
00:58:20,600 --> 00:58:22,680
DLP is not just a compliance box.
1182
00:58:22,680 --> 00:58:24,360
It's your containment boundary.
1183
00:58:24,360 --> 00:58:28,920
If a compromised maker account can only build in a departmental dev environment with no
1184
00:58:28,920 --> 00:58:32,840
access to finance or PHI connectors, your blast radius is small.
1185
00:58:32,840 --> 00:58:36,200
If the only place that talks to external SaaS is a dedicated integration environment with
1186
00:58:36,200 --> 00:58:40,080
tightly-scoped service principles, you've limited exfiltration paths.
1187
00:58:40,080 --> 00:58:42,720
Audit logging and monitoring become your forensic backbone.
1188
00:58:42,720 --> 00:58:46,840
You make sure every regulated environment has dataverse auditing turned on for key tables
1189
00:58:46,840 --> 00:58:48,000
and fields.
1190
00:58:48,000 --> 00:58:52,080
You root power apps and power automate events into purview or your CM.
1191
00:58:52,080 --> 00:58:56,120
You use the COE telemetry not just for adoption metrics but for anomaly detection.
1192
00:58:56,120 --> 00:58:58,080
Sudden spikes in connector usage.
1193
00:58:58,080 --> 00:59:01,720
Flow is calling unusual endpoints, new environments with strange naming.
1194
00:59:01,720 --> 00:59:04,200
And here's where conditional chaos comes back.
1195
00:59:04,200 --> 00:59:08,080
Zero trust collapses if your patents are opaque, bespoke and constantly changing.
1196
00:59:08,080 --> 00:59:11,800
Too many one-off conditional access rules, too many custom security roles, too many special
1197
00:59:11,800 --> 00:59:15,640
environments, and you've built a system no human can reason about.
1198
00:59:15,640 --> 00:59:18,640
So the real zero trust move in low code is simplification.
1199
00:59:18,640 --> 00:59:20,240
Fewer clearer environment types.
1200
00:59:20,240 --> 00:59:22,240
Fewer standardized DLP sets.
1201
00:59:22,240 --> 00:59:24,720
Fewer well-defined role bundles and make up personas.
1202
00:59:24,720 --> 00:59:27,120
You trade some flexibility for predictability.
1203
00:59:27,120 --> 00:59:31,680
That might mean you say no to yet another special environment and instead refine an existing
1204
00:59:31,680 --> 00:59:32,680
pattern.
1205
00:59:32,680 --> 00:59:36,240
It might mean you collapse a sprawl of subtly different roles into three or four well-designed
1206
00:59:36,240 --> 00:59:37,240
ones.
1207
00:59:37,240 --> 00:59:41,320
It might mean you route all regulated workloads through a small number of heavily instrumented
1208
00:59:41,320 --> 00:59:45,160
managed environments instead of sprinkling sensitivity everywhere.
1209
00:59:45,160 --> 00:59:48,040
This is designed philosophy, not configuration trivia.
1210
00:59:48,040 --> 00:59:51,120
You're not trying to memorize every toggle in the admin center.
1211
00:59:51,120 --> 00:59:54,560
You're trying to enforce a small number of architectural truths.
1212
00:59:54,560 --> 00:59:57,320
Identities are verified and segmented by persona.
1213
00:59:57,320 --> 00:59:59,480
Data parts are controlled by environment and DLP.
1214
00:59:59,480 --> 01:00:02,200
Blast radius is limited by design, not by luck.
1215
01:00:02,200 --> 01:00:06,200
Behavior is observable enough that when, not if something odd happens, you can see it
1216
01:00:06,200 --> 01:00:07,440
and respond.
1217
01:00:07,440 --> 01:00:11,320
Once you understand that, adding co-pilot and AI into the mix stops being magic and
1218
01:00:11,320 --> 01:00:15,640
starts being just another category of identity and data flow you have to constrain.
1219
01:00:15,640 --> 01:00:20,640
And that's the point you need to reach before you start treating AI as just more productivity
1220
01:00:20,640 --> 01:00:23,040
on top of conditional chaos.
1221
01:00:23,040 --> 01:00:25,760
Co-pilot AI and the next wave of governance pressure.
1222
01:00:25,760 --> 01:00:29,280
Everything we've talked about so far was already true before AI showed up in Power Platform.
1223
01:00:29,280 --> 01:00:31,240
Co-pilot doesn't change the laws of this system.
1224
01:00:31,240 --> 01:00:34,400
It just removes the friction that was slowing those laws down.
1225
01:00:34,400 --> 01:00:37,640
So you have to start with a simple, slightly brutal assumption.
1226
01:00:37,640 --> 01:00:39,760
Whatever your governance posture is today.
1227
01:00:39,760 --> 01:00:42,400
Data-based and agentic AI will accelerate it.
1228
01:00:42,400 --> 01:00:46,960
If your control plane is clear, measured and enforced, co-pilot accelerates value.
1229
01:00:46,960 --> 01:00:51,440
If your control plane is opaque, ad hoc and full of entropy generators, co-pilot accelerates
1230
01:00:51,440 --> 01:00:56,480
failure, architecturally co-pilot adds three new pressures, first, asset creation speed.
1231
01:00:56,480 --> 01:01:00,960
Makers no longer have to understand every nuance of power effects or dataverse schema design.
1232
01:01:00,960 --> 01:01:05,040
They can say, "Build me a case management app with these fields and co-pilot scaffold something
1233
01:01:05,040 --> 01:01:10,120
workable." They can say, "Generator flow that notifies me when X happens and the platform
1234
01:01:10,120 --> 01:01:14,600
fills in the steps." That means the rate at which new apps and flows appear in your tenant
1235
01:01:14,600 --> 01:01:17,400
increases even if the number of human makers doesn't.
1236
01:01:17,400 --> 01:01:21,520
The traditional signals you relied on, who's in the maker community, who's requesting
1237
01:01:21,520 --> 01:01:26,320
environments, become lagging indicators, second, opaque intent.
1238
01:01:26,320 --> 01:01:30,680
With human build solutions, however messy you can at least ask the maker what they intended.
1239
01:01:30,680 --> 01:01:34,800
With AI assisted solutions, the intent is split across a human prompt and an AI models
1240
01:01:34,800 --> 01:01:35,800
interpretation.
1241
01:01:35,800 --> 01:01:39,720
If you don't log prompts, if you don't tag AI generated assets, if you don't capture
1242
01:01:39,720 --> 01:01:44,240
which co-pilots were used where, you lose the ability to reason about why a given app or
1243
01:01:44,240 --> 01:01:46,600
flow exists and what it was meant to do.
1244
01:01:46,600 --> 01:01:48,480
Third, blended authorship.
1245
01:01:48,480 --> 01:01:53,680
In most enterprises you will not have pure AI solutions or pure human solutions.
1246
01:01:53,680 --> 01:01:54,680
You will have hybrids.
1247
01:01:54,680 --> 01:01:57,200
A human starts something, co-pilot suggests formulas.
1248
01:01:57,200 --> 01:01:58,600
The human tweaks them.
1249
01:01:58,600 --> 01:02:00,880
Another co-pilot refactors a flow later.
1250
01:02:00,880 --> 01:02:03,960
Over time the boundary between human and AI authorship blurs.
1251
01:02:03,960 --> 01:02:07,560
That's why treating AI as a novelty feature is dangerous.
1252
01:02:07,560 --> 01:02:11,800
Governance has to treat AI as a new category of identity and behavior in the system.
1253
01:02:11,800 --> 01:02:15,080
So what does a sane co-pilot governance stance look like?
1254
01:02:15,080 --> 01:02:16,360
First, default restrict.
1255
01:02:16,360 --> 01:02:18,000
Don't default allow.
1256
01:02:18,000 --> 01:02:21,920
Co-pilot capabilities in power apps, power automate and co-pilot studio should be enabled
1257
01:02:21,920 --> 01:02:24,960
first in a small set of well understood environments.
1258
01:02:24,960 --> 01:02:28,960
Ideally non-regulated, dev test tiers with good telemetry.
1259
01:02:28,960 --> 01:02:33,080
You do not start by sprinkling AI across every environment where you already struggle to
1260
01:02:33,080 --> 01:02:34,080
see what's happening.
1261
01:02:34,080 --> 01:02:36,480
Second, mandatory tagging and logging.
1262
01:02:36,480 --> 01:02:39,160
Every AI assisted asset needs to declare itself.
1263
01:02:39,160 --> 01:02:43,160
That can be as simple as a solution level flag or a naming convention that's enforced by
1264
01:02:43,160 --> 01:02:45,680
the platform team, but it must exist.
1265
01:02:45,680 --> 01:02:49,440
You should be able to answer from the admin center or your COE dashboards, which apps,
1266
01:02:49,440 --> 01:02:53,280
flows and agents were created or significantly modified with co-pilot.
1267
01:02:53,280 --> 01:02:54,800
In which environments do they live?
1268
01:02:54,800 --> 01:02:56,600
Who is the accountable business owner for each?
1269
01:02:56,600 --> 01:02:59,560
On top of that, prompt logging becomes part of your forensic toolkit.
1270
01:02:59,560 --> 01:03:02,000
No, you don't need to hold every prompt forever.
1271
01:03:02,000 --> 01:03:06,280
And for regulated workloads, you do need an audit trail that shows what kinds of instructions
1272
01:03:06,280 --> 01:03:09,080
were given to AI when building or operating a solution.
1273
01:03:09,080 --> 01:03:10,840
That's not about spying on makers.
1274
01:03:10,840 --> 01:03:14,400
It's about being able to explain behavior after the fact.
1275
01:03:14,400 --> 01:03:18,240
Third, AI-specific DLP and connector rules.
1276
01:03:18,240 --> 01:03:22,520
Co-pilot is just another client of your data, but it's a client that can connect things
1277
01:03:22,520 --> 01:03:24,120
humans wouldn't think to connect.
1278
01:03:24,120 --> 01:03:28,080
You need to be explicit about where AI can read from and where it can write to.
1279
01:03:28,080 --> 01:03:31,880
For example, co-pilot can read from internal knowledge bases, approved
1280
01:03:31,880 --> 01:03:35,720
SharePoint sites and data verse tables tagged as internal.
1281
01:03:35,720 --> 01:03:40,200
Co-pilot cannot read directly from PHI or high sensitivity financial data without going
1282
01:03:40,200 --> 01:03:43,640
through a controlled agent in a restricted environment.
1283
01:03:43,640 --> 01:03:48,280
Co-pilot cannot write to external mailboxes, consumer storage or public facing lists
1284
01:03:48,280 --> 01:03:50,080
without a human in the loop review.
1285
01:03:50,080 --> 01:03:51,400
Those aren't product checkboxes.
1286
01:03:51,400 --> 01:03:53,800
They're DLP patterns and environment choices.
1287
01:03:53,800 --> 01:03:56,480
Finally, treat AI agents as non-human identities.
1288
01:03:56,480 --> 01:04:00,880
From an Entra and Power Platform perspective, an agent is just another principle-making
1289
01:04:00,880 --> 01:04:02,720
decisions and calling APIs.
1290
01:04:02,720 --> 01:04:07,080
So you give it the same rigor you would a service principle, least privilege access, clear
1291
01:04:07,080 --> 01:04:11,760
scoping to specific environments and data classes, auditable activity trails, explicit
1292
01:04:11,760 --> 01:04:14,400
life cycle, how it's created, reviewed, retired.
1293
01:04:14,400 --> 01:04:18,120
If you're not doing that, you're effectively giving root access to an opaque piece of logic
1294
01:04:18,120 --> 01:04:21,840
that can act faster than any human and hide inside normal traffic.
1295
01:04:21,840 --> 01:04:25,040
And keep this sentence in mind when the AI hype gets loud.
1296
01:04:25,040 --> 01:04:27,760
Most co-pilot failures will not look like AI failures.
1297
01:04:27,760 --> 01:04:30,760
They will look like ordinary governance failures or just faster.
1298
01:04:30,760 --> 01:04:35,840
The wrong environment, the wrong connectors, no owner, no life cycle, no metrics.
1299
01:04:35,840 --> 01:04:38,880
Co-pilot just gets you to the failure state in days instead of months.
1300
01:04:38,880 --> 01:04:43,200
So if your low-code governance framework cannot handle humans, it will not handle agents.
1301
01:04:43,200 --> 01:04:48,040
Fix the framework first, then let AI amplify something you're willing to scale.
1302
01:04:48,040 --> 01:04:49,720
The blunt answer and the real risk.
1303
01:04:49,720 --> 01:04:51,040
So here's the blunt answer.
1304
01:04:51,040 --> 01:04:54,480
Yes, Microsoft Power Platform is secure enough for serious enterprise use.
1305
01:04:54,480 --> 01:04:57,400
The real risk lives in your governance, not in the platform.
1306
01:04:57,400 --> 01:04:59,160
The Power Platform doesn't create risk.
1307
01:04:59,160 --> 01:05:02,360
It reveals whether your enterprise is governable at speed.
1308
01:05:02,360 --> 01:05:07,120
If you want that answer to be yes, treat Power Platform as a product with a platform team,
1309
01:05:07,120 --> 01:05:11,600
implement a 90-day governance plan, wire in metrics, and stop enabling co-pilot in production
1310
01:05:11,600 --> 01:05:14,320
without clear environments, DLP, ownership and review.