Se você está certo em usar o Amazon S3 como sua configuração base, você pode tentar escrever seu próprio serviço para ele, o que permite criar chaves temporárias para baixar um arquivo. Ou você pode usar o Dropbox (criado sobre o Amazon S3) que permite compartilhar arquivos com amigos, mas eles precisam ter contas no Dropbox.
Eu sugeriria isso para você. Mantenha-o na caixa de depósito / S3 depois de criptografar o arquivo com uma chave de criptografia 1024 e compartilhe a chave de descriptografia com os usuários com os quais você deseja compartilhar.