A migration is the cheapest moment to clean up.
We start by reviewing the starting state — what you are moving, what should stay in place, and what is worth switching off along the way, because moving dead systems costs twice. We design the target environment as code: the split into zones, identities, network and access are created before the first resource, not after it. During the migration we work side by side with your team or provider and guard the security layer that is usually left for last. After the move we revoke temporary permissions and lock in the configuration, so a state born of haste does not become the target.