From my experience I hardly need the "real data" to investigate a bug. Most of the times I can understand the problem and reproduce the bug in the test environment based on production logs (like exceptions and stack traces).
If you really need more context to reproduce a bug, you can always try to anonimize the data before moving it out of the production environment, and delete the anonimized data from the test environment once the investigation finishes just to be on the safe side.
Comments
"Ensure non-production environments do not contain production data"
Yeah right, so how can you reproduce some bugs that only appear on production data, on other environment that is not production?
From my experience I hardly need the "real data" to investigate a bug. Most of the times I can understand the problem and reproduce the bug in the test environment based on production logs (like exceptions and stack traces).
If you really need more context to reproduce a bug, you can always try to anonimize the data before moving it out of the production environment, and delete the anonimized data from the test environment once the investigation finishes just to be on the safe side.