See some prior discussion in D10176.
Some organizations have compliance requirements which require data to be stored encrypted at rest. S3 has a magic header which claims to do this, but it's impossible to prove that it does anything and there is no specific threat it seems clearly capable of mitigating or defusing.
We can put the keys on the Phabricator webserver and do encryption at the Files level instead, which will let us prove that compromising S3 (or any other file data store) alone is no longer sufficient to compromise file data, and that an attacker who stole S3 drives alone would be unable to extract anything useful from them.
This reduces the problem to a different problem of where and how we store the master keys. Naively, putting them on disk on the webserver nodes is only marginally better. You do need to steal two different disks now, which is a bit better, but an attacker who can steal S3 disks can plausibly steal EC2 disks too. There is a narrow range of threat scenarios where this is obviously an improvement (e.g., webservers are first-party and S3 is a blind third-party datastore) but relatively few users are likely covered here.
We don't really need to resolve this since master key storage is clearly a better problem to have, but it would be nice to have a more obvious pathway forward here.