We never send anything unencrypted to S3. I have no clue why someone would not want to encrypt their data before putting it in the cloud…
I get hashing it and providing hashes, but encrypting public files seems excessive.
I've seen a pattern of: drop raw data into an S3 bucket that has a very restrictive policy with a long retention policy. Then, process that data asynchronously (encrypt, transform, filter, etc) and drop it into a different bucket/area that is accessed by other consumers.
Then, if any part of your ETL fails (encryption included), you can fix your bug and reprocess from your raw data without writers seeing any impact.