Everyone tells you to migrate first and secure later. That's wrong. The conventional wisdom says you can lift-and-shift your apps to the cloud and patch security after the move. But that approach leaves your data exposed and your compliance posture in shambles. The truth is, security and compliance should drive every migration decision from day one—not be bolted on after the fact. If you don't believe me, look at the shared responsibility model: you own your data, your endpoints, and your access management no matter what cloud you choose (Microsoft Learn (security)). That burden doesn't disappear just because you moved to AWS or Azure. So stop treating security as a checklist item and start treating it as the foundation of your migration strategy.
Why the Shared Responsibility Model Changes Everything
Here's the uncomfortable fact: the cloud provider is not responsible for your data. Under the AWS shared responsibility model, AWS protects the infrastructure—hardware, software, networking, facilities—but you're on the hook for what you put in the cloud (AWS Shared Responsibility). For example, with Amazon EC2, you manage the guest operating system, security patches, and the security group firewall. With S3, you handle data classification, encryption decisions, and IAM permissions. That's not a small task. It means every security decision—from encryption to access control—is yours to make and yours to get wrong.
Most teams underestimate this. They assume the cloud is inherently secure because the provider is. That's a dangerous assumption. The reality is that your security posture in the cloud is only as strong as the controls you implement. And if you're migrating a legacy app with years of accumulated technical debt, you're carrying that debt into a new environment where the rules are different. The shared responsibility model isn't just a legal disclaimer—it's a call to action. You need to know exactly what you're responsible for before you sign the contract, not after.
Why 'Lift and Shift' Is a Security Trap
Rehosting—or lift and shift—is the fastest way to get to the cloud. It moves applications as-is without code changes (DigitalOcean). AWS rehost allows you to migrate large numbers of machines from physical, virtual, or other clouds quickly (AWS Prescriptive Guidance). But speed comes at a cost. Rehosted apps aren't cloud-native, and they're harder to scale (DigitalOcean). More importantly, they often carry old security flaws that don't translate well to the cloud. You're not fixing anything; you're just relocating the problem.
Consider a typical legacy app with a monolithic architecture and weak authentication. Lift it to the cloud, and you've got the same weak authentication, now exposed to a wider attack surface. You haven't improved security; you've just changed the location. And if you're planning to rehost a large number of apps, you might be tempted to skip security assessments to save time. That's a recipe for disaster. AWS recommends rehost for large migrations, but it also warns that refactor is too complex for large-scale moves (AWS Prescriptive Guidance). So you're stuck with rehost, but you need to make it secure.
The solution is to apply the shared responsibility model to every rehosted workload. Before you move anything, map out what data it handles, what compliance requirements apply, and what security controls you need to implement in the cloud. That's not optional—it's the price of admission. And if you can't secure a workload, maybe you should retain it on-premises until you can. AWS lists retain as a valid strategy for data residency compliance, high-risk apps needing assessment, and unresolved physical dependencies (AWS Prescriptive Guidance). Don't be afraid to say no to a migration if security isn't ready.
Retain and Retire: The Underappreciated Security Moves
Most migration strategies focus on moving things to the cloud. But sometimes the most secure move is to leave an app where it is—or shut it down entirely. Retire is a strategy that decommissions applications no longer needed (DigitalOcean). AWS defines 'zombie applications' as those with average CPU and memory usage below 5% and 'idle applications' as those with 5-20% usage over 90 days; both are candidates for retirement (AWS Prescriptive Guidance). If you have apps that are barely used, why migrate them at all? They're security risks—unpatched, unmaintained, and forgotten. Retiring them reduces your attack surface and saves money.
Retain is equally important. Sometimes you can't move a workload because of compliance or technical reasons. AWS retain use cases include data residency compliance, high-risk apps needing assessment, and mainframe systems like IBM AS/400 (AWS Prescriptive Guidance). Keeping those on-premises isn't a failure—it's a smart risk decision. You're avoiding the risk of moving something that could break or violate regulations. The key is to document why you're retaining and to minimize the time workloads operate across both environments (Microsoft CAF). That split-environment operation is a security nightmare—data flows between on-premises and cloud, and you need to secure both sides.
So, as you plan your migration, don't just ask what to move. Ask what to retire and what to retain. That's not just a cost play—it's a security play. Fewer workloads mean fewer vulnerabilities. And in a world where 84% of organizations say managing cloud spend is their top challenge (Flexera 2025), retiring unused apps also saves money. Security and cost optimization go hand in hand.
Security-First Migration: Practical Steps
So how do you operationalize a security-first migration? Start with the assessment phase. The Azure migration framework uses four stages: Assess, Migrate, Optimize, Monitor (Microsoft Learn). In the Assess stage, you create a full inventory and dependency map of servers, services, and apps, and estimate cost savings using the TCO calculator (Microsoft Learn). But you must also assess security. For each workload, identify data classification, compliance requirements, and current vulnerabilities. That's not just a nice-to-have—it's essential.
Next, use the shared responsibility model to define your security controls. For each workload, decide who's responsible for what. AWS's shared responsibility model gives you a clear framework (AWS Shared Responsibility). For IaaS, you manage the OS and app; for PaaS, you manage data and access. Map those responsibilities to your team. Then, implement security controls using infrastructure as code (IaC). IBM defines IaC as a DevOps practice that automates infrastructure provisioning using configuration files (IBM (infrastructure as code)). With IaC, you can version, test, and deploy security policies just like application code. That's how you avoid configuration drift and misconfigured resources.
Finally, monitor everything post-migration. The Monitor phase isn't an afterthought—it's where you catch security issues before they become breaches. Use cloud-native tools like Azure Migrate for assessments (Azure Migrate) or AWS Well-Architected for reviews (AWS Well-Architected Framework). But don't stop there. Continuously review your security posture against the shared responsibility model. As Flexera 2026 reports, security and compliance is the top scaling challenge for 53% of organizations running AI (Flexera 2026). That tells you it's hard. But it's not impossible.
Sources
- Microsoft Learn (security) - https://learn.microsoft.com/en-us/azure/security/fundamentals/shared-responsibility
- AWS Shared Responsibility - https://aws.amazon.com/compliance/shared-responsibility-model/
- DigitalOcean - https://www.digitalocean.com/resources/articles/cloud-migration-strategy
- AWS Prescriptive Guidance - https://docs.aws.amazon.com/prescriptive-guidance/latest/large-migration-guide/migration-strategies.html
- Microsoft Learn - https://learn.microsoft.com/en-us/training/modules/design-migrations/3-describe-azure-migration-framework
- Flexera 2025 - https://www.flexera.com/about-us/press-center/new-flexera-report-finds-84-percent-of-organizations-struggle-to-manage-cloud-spend
Comments (0)
Please sign in to post a comment.
Don't have an account? Create one
No comments yet. Be the first to comment!