3 Simple Power Automate Workflows to Automatically Identify and Terminate Unused Cloud Resources

Tanya Wetson-Catt • 12 January 2026

The cloud makes it easy to create virtual machines, databases, and storage accounts with just a few clicks. The problem is, these resources are often left running long after they’re needed. This “cloud sprawl,” the unmanaged growth of cloud resources, can quietly drain your budget every month. According to Hashi Corp’s State of Cloud Strategy Survey 2024, the top reasons for this waste are lack of skills, idle or underused resources, and overprovisioning, which together drive up costs for businesses of all sizes.


Why Should I Care About Cloud Resources?


The business benefit is tangible and dramatic. While organisations struggle with cloud budgets exceeding limits by an estimated 17%, automation offers a clear path to control.

 

For example, a VLink saved a significant amount of money on its non-production cloud spend by implementing a rigorous cloud shutdown automation policy. This policy automatically powered down all development and test environments that were not explicitly tagged as 'Production' outside of normal business hours (8 AM to 6 PM). The savings from just this single automated action accounted for 40% off their non-production cloud spend, freeing up that budget for new growth initiatives.


3 Power Automate Workflows


Finding these unused cloud resources feels like hunting for ghosts. But what if you could automate the hunt? Microsoft Power Automate is a powerful tool for this exact task. Let’s look at three straightforward workflows to identify and terminate waste automatically.


1. Automate the Shutdown of Development VMs


Development and test environments are the worst offenders for cloud waste. A team needs a virtual machine for a short-term project. The project ends, but the VM continues to run, costing money. You can build a workflow that stops this waste. Create a Power Automate flow that triggers daily and queries Azure for all virtual machines with a specific tag, like “Environment: Dev.”


The flow then checks the machine’s performance metrics. If the CPU utilisation has been below 5% for the last 72 hours, it executes a command to shut down the VM. This simple Azure automation does not delete anything, it simply turns off the power, slashing costs immediately. Your developers can still start it if needed, but you are no longer paying for idle time.


2. Identify and Report Orphaned Storage Disks


When you delete an Azure virtual machine, you are often given an option to delete its associated storage disk. This step is frequently missed, and the orphaned disks continue to incur storage charges month after month. You can create a flow to find them.


Build a Power Automate schedule that runs weekly. The flow will list all unattached managed disks in your subscription and will then compose a detailed email report that lists the disk names, their sizes, and the estimated monthly cost. The report acts as a clear, actionable list that could be used for cleanup purposes, and you can send it using the “Send an email” action to your IT manager or finance team for further evaluation on whether to keep or delete the disks.


3. Terminate Expired Temporary Resources


Some business projects require temporary cloud resources, like a blob storage container for a file transfer or a temporary database for data analysis. Since these resources have a finite lifespan, you need to directly integrate build expiration dates into your deployment process. For this, you can use a Power Automate flow that is triggered by a custom date field. This means that whenever you create a temporary resource, you add a descriptive tag such as “Deletion Date.”


After implementing this best practice, i.e., adding descriptive tags to cloud resources, set the flow to run daily and check for all resources that bear the “Deletion Date” tag. For each resource the flow finds, it should check whether the current date matches or is later than the “Deletion Date” property. If this condition is met, the flow deletes the resource automatically. This hands-off cleanup ensures that temporary items do not become permanent expenses. This approach not only eliminates the risk of human oversight but also uses automation to enforce financial discipline.


Troubleshoot Your Automated Workflows


Using Power Automate to build these workflows is a great start, but you also need to implement them safely. Automations that delete resources are powerful and need controls in place. To be safe, always launch these flows in report-only mode, which lets you test and simulate automations without enforcing them. For example, you can modify the “Terminate Expired Temporary Resources” flow to send an email alert instead of deleting resources for the first couple of weeks as you observe. This helps validate whether your flow logic is sound and gives you an opportunity to fix errors and oversights.


You can also consider adding a manual approval requirement for certain high-risk actions, such as the deletion of very large storage disks. This ensures that your automations work to your benefit and not against you.


Take Control of Your Cloud Spend


These three Power Automate workflows are a good starting point for businesses using Microsoft Azure. They help you shift from a reactive to a proactive position, ensuring you only pay for the resources you actively use.



Stop overspending on idle cloud resources. To take control of your cloud environment and start saving, contact us today to implement these Power Automate workflows and optimise your Azure spend.

Let's Talk Tech

More from our blog

by Tanya Wetson-Catt 25 May 2026
Browser add-ons have a funny reputation. They feel “small”. A quick install. A tiny productivity boost. A harmless little helper that lives in your toolbar. But in practice, a browser extension is more like a micro-SaaS vendor sitting inside your browser session. It can see what you see, interact with the pages you open, and sometimes access the same cloud apps your business runs on all day. That’s why a browser extension security check matters. Not because every extension is bad, but because it only takes one over-permissioned add-on or one bad update to turn “helpful” into exposure. The good news is you don’t need a 40-page policy to reduce the risk. A simple five-minute check can prevent most extension problems before they start. Why Browser Extensions Are a High-Leverage Risk Browser extensions sit in the most sensitive place in modern work: the browser tab where your staff live all day. That matters because extensions aren’t just “apps”. They’re granted special authorisations inside the browser. That makes them attractive targets and gives them leverage that’s disproportionate to how “small” they feel. UC Berkeley’s guidance says extensions get “special authorisations,” and the more you install, the bigger the attack surface becomes. The risk is often permission-based. OWASP calls out “permissions overreach” as a core problem. Extensions can request more access than they need, including access to “all tabs, browsing history, and even sensitive user data.” When an extension can read and modify what happens in the browser, it can potentially see data in cloud tools, capture what’s typed into forms, or alter content on a page. It’s also a “change over time” risk. A useful extension today can become a different extension tomorrow. The 5-Minute Browser Extension Security Check This browser extension security check is designed to be fast, repeatable, and realistic. It helps staff make safe decisions in minutes without turning every extension into a big IT ticket. Vet the developer like a real vendor If you wouldn’t give a random supplier access to your customer records, don’t give a random extension access to your browser. Start with the basics: Confirm the developer has a real website, support details, and a consistent name across listings Look for a track record (other products, a clear company presence, updates that look normal) Prefer official stores and trusted sources over “download this .zip” links
by Tanya Wetson-Catt 22 May 2026
A fake recruiter message is one of the cleanest social engineering tricks around because it doesn’t look like a trick. That’s why LinkedIn recruitment scams work so well inside real businesses. They don’t arrive as malware. They arrive as a normal conversation that nudges someone toward one small action: click this link, open this file, “verify” this detail, move the chat to a different app. A few simple checks, a couple of hard-stop rules, and an easy way to report suspicious outreach can shut these scams down without slowing anyone down. LinkedIn Recruitment Scams LinkedIn recruitment scams artfully blend into normal professional behaviour. The message doesn’t look like a “cyber attack.” It looks like networking, and it borrows credibility from recognisable brands, polished profiles, and familiar hiring language. At platform scale, the volume is also hard to wrap your head around. Rest of World reports that LinkedIn said it “identified and removed 80.6 million fake accounts” at registration from July to December 2024. A LinkedIn spokesperson claimed “over 99%” of the fake accounts they remove are detected proactively before anyone reports them. Even with that level of detection, enough scam activity still leaks through to reach real employees. That’s especially true when scammers tailor their approach to what looks credible in a specific industry and location. The other reason these scams succeed is that they follow a predictable persuasion pattern: urgency, authority, and a quick push to “do the next step.” The FTC describes scammers impersonating well-known companies and then steering targets toward actions that create leverage. These actions include handing over sensitive personal information or sending money for “equipment” or other upfront costs. Once someone is rushed into treating the process as real, the scam doesn’t need to be technically sophisticated. It just needs the victim to keep moving. The Scam Pattern Most Teams Miss 1. A polished approach on LinkedIn The profile looks credible enough, the role sounds plausible, and the message is written in a professional tone. The job post itself may still be oddly generic, though. Amoria Bond notes that fake job postings often “lack details” and lean on broad language to catch as many people as possible. 2. A quick push off-platform The conversation shifts to email, WhatsApp/Telegram, or a “recruitment portal” link. That shift is important because it removes the built-in friction of LinkedIn’s environment and makes it easier to send links, files, and instructions.

3. A credibility wrapper: “assessment”, “interview pack”, or “onboarding”

Airswift flags link/attachment requests and urgency tactics as common red flags. The story is usually something like: “Download this assessment,” “Review these onboarding steps,” or “Log in here to schedule.” Tag Apps Make decisions visible and repeatable by tagging apps. Microsoft explicitly calls tagging apps as sanctioned or unsanctioned an important step, because it lets you filter, track progress, and drive consistent action over time. 4. The pivot: money, sensitive info, or account takeover Scammers impersonate well-known companies and then ask for things legitimate employers typically don’t: payment for “equipment” or early requests for personal information. Another variation is more subtle: “verification” steps that are really designed to steal identity details or compromise accounts. 5. Pressure to keep moving If someone hesitates, the scam leans on urgency: “limited slots,” “fast-track hiring,” “complete this today.” That’s why Forbes frames the key skill as slowing down and checking details, because the scam depends on momentum. Red Flags Checklist for Staff Here are the red flags to look out for. Red flags in the job posting The role is oddly vague or overly broad. Generic responsibilities, unclear reporting lines, and “we’ll share details later” language are common in fake listings. The company's presence doesn’t match the brand name. Thin company pages, inconsistent logos/branding, or a web presence that feels incomplete are worth pausing on. The process is “too easy, too fast.” If the listing implies immediate hiring with minimal steps, treat it as suspicious. Red flags in recruiter behaviour They push you off LinkedIn quickly. Moving to WhatsApp/Telegram or personal email early is a common tactic. They use a personal email address or unusual contact details. Be specifically cautious of recruiters using free webmail accounts instead of a company domain. They avoid verification. If they dodge basic questions, treat that as a signal, not a scheduling issue Hard-stop requests Any request for money or fees. Application fees, equipment purchases, “training costs”, gift cards, crypto, that’s a hard stop. Requests for sensitive personal info early. Bank details, identity documents, tax forms, or “background checks” before a real interview process is established. Requests for verification codes. If anyone asks you to read back a one-time code sent to your phone/email, assume they’re trying to take over an account. Requests for non-public company information like org charts, internal system details, client lists, invoice processes and security tools. Look out for requisitions for anything beyond what a recruiter would reasonably need. Stop Scams With Simple Defaults LinkedIn recruitment scams don’t succeed because staff are careless. They succeed because the outreach looks normal, the process feels familiar, and the next step is always framed as urgent. The fix isn’t turning everyone into an investigator. It’s setting simple defaults that make scams harder to complete: slow down before clicking, verify the recruiter and role through official channels, keep conversations on-platform until identity checks out, and treat money requests, code requests, and early personal data demands as hard stops.  When those habits are standardised, the scam loses its leverage.
by Tanya Wetson-Catt 18 May 2026
The most dangerous thing in a server room is often the phrase, “Don’t touch that.” It’s usually said with a half-joke and a grimace. It refers to the old box that “still works”, runs something important, and has survived so many fixes and workarounds that nobody feels confident changing it anymore. That’s legacy debt. Not just “old tech”, but old tech that’s become a dependency. It’s the kind that quietly accumulates risk until it turns into downtime, security exposure, or an emergency upgrade at the worst possible time. A legacy debt audit is the fast way to bring that risk back into the light. What Legacy Debt Really Looks Like Legacy debt isn’t “old gear”. It’s old gear that has become normal. It’s the server that runs a critical app, the edge device nobody remembers buying, the workaround that turned into a dependency. Over time, that debt stacks up quietly. Infinite Lambda describes legacy debt as something that “happens even to the best systems,” “silently accruing costs and constraints,” and it can “accumulate basically unnoticed until it is too costly to ignore.” That’s why a legacy debt audit isn’t a theoretical exercise. It’s a visibility exercise to bring the oldest, highest-leverage risks back onto the list of things you actively manage. The security problem shows up when “old” becomes “unpatchable.” The UK’s NCSC guidance on obsolete products says, “Ideally, once out of date, technology should not be used,” and “the only fully effective way to mitigate this risk is to stop using the obsolete product.” If something can’t be updated, weaknesses don’t age out. They sit there, waiting for the wrong day. Legacy debt also looks like basic server hygiene slipping. NIST SP 800-123 frames secure server operations as an ongoing process: “Maintaining the secure configuration through application of appropriate patches and upgrades, security testing, monitoring of logs, and backups…” It also calls out foundational hardening steps like “Patch and upgrade the operating system” and “Remove or disable unnecessary services, applications, and network protocols.” When those basics become inconsistent, legacy debt turns into a reliability and incident-response problem, not just a security one. Finally, legacy debt often hides at the edge. If you have end-of-support internet-facing devices, you’ve got high-leverage risk in the most exposed place. The 3 Oldest Risks to Find First These three categories are where “old” most often turns into outsized risk, because they combine age with leverage: they either sit at the front door, can’t be fixed anymore, or have quietly drifted out of a safe baseline. Risk #1: End-of-support edge devices If you’re looking for high-leverage legacy debt, start at the edge. Firewalls, VPN gateways, routers, and other internet-facing devices are the front door to your environment. When they reach end-of-support (EOS), they don’t just become outdated. They become harder to defend because security fixes stop arriving. What to check in your audit List every edge device (firewall, VPN, router) and the support status for each one Confirm which ones are internet-facing and which services are exposed Identify devices that can’t run the current firmware or no longer receive updates. Risk #2: Obsolete products that can’t be fixed anymore Obsolete products are the purest form of legacy debt: things that are still operating but no longer receive security updates. That means every new vulnerability becomes permanent. In other words, there’s no clever workaround that makes an unsupported system “safe”. There are only risk reductions until you can replace it. What to check in your audit Identify anything past support: server OS versions, appliances, old hypervisors, and line-of-business apps Flag systems that require exceptions, like the ones with old protocols, weak auth, and special firewall rules Find the “business-critical but unsupported” systems. Risk #3: “It still works” servers with neglected basics This is the sneakiest risk because it looks normal. The server is supported. The hardware runs. Nobody’s complaining. But the basics have drifted: patching is inconsistent, unnecessary services are still running, and backups haven’t been proven under pressure. SP 800-123 Guide to General Server Security frames secure server operations as an ongoing discipline, including “patches and upgrades,” “monitoring of logs,” and “backups.” It also calls out core hardening steps like “Patch and upgrade the operating system” and “Remove or disable unnecessary services, applications, and network protocols.” Those are the unglamorous fundamentals that stop small problems from turning into long outages. What to check in your audit Patch reality: what’s the current patch level and how often do updates slip? Service sprawl: what’s running that doesn’t need to be running? Admin and service accounts: where are the broad permissions and shared credentials? Backup confidence: when was the last restore test and did it succeed? Change control: who can make changes, and how are they tracked? Stop Carrying Silent Risk Legacy debt doesn’t announce itself. It sits quietly in the background until the day it becomes downtime, exposure, or an emergency upgrade you didn’t plan for. A legacy debt audit gives you control back by turning “we should deal with that someday” into a shortlist you can act on. Start with the highest-leverage risks: end-of-support edge devices, obsolete products that can’t be patched, and servers where the basics have drifted. Then assign owners, set dates, and move one item at a time from “too scary to touch” to “handled”.  Contact us for help running your next legacy debt audit.