Java 密码保护的图像文件
我想创建或更新具有密码保护的图像文件。场景是,我们的infra团队将向AWS S3上传一个图像文件。稍后,我们想用java的密码保护这个图像文件。密码将自动生成,不会向任何人透露。如果有人试图直接从AWS S3下载映像,则不应打开该映像。我在AWS S3中尝试了Java 密码保护的图像文件,java,amazon-web-services,amazon-s3,passwords,Java,Amazon Web Services,Amazon S3,Passwords,我想创建或更新具有密码保护的图像文件。场景是,我们的infra团队将向AWS S3上传一个图像文件。稍后,我们想用java的密码保护这个图像文件。密码将自动生成,不会向任何人透露。如果有人试图直接从AWS S3下载映像,则不应打开该映像。我在AWS S3中尝试了服务器端加密 CopyObjectRequest request = new CopyObjectRequest(bucket, key, bucket, key); ObjectMetadata objectMetadata = new
服务器端加密
CopyObjectRequest request = new CopyObjectRequest(bucket, key, bucket, key);
ObjectMetadata objectMetadata = new ObjectMetadata();
objectMetadata.setServerSideEncryption(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
request.setNewObjectMetadata(objectMetadata);
s3client.copyObject(request)
但我还是能打开它。还有其他方法吗。服务器端加密只加密存储在磁盘上的数据。它不是一种保护数据访问的方法 相反,您的要求似乎是:
- 在Amazon S3上存储一些数据(如图像),并保持其私密性
- 有选择地允许用户在获得授权后下载
- 对单个对象的访问控制列表权限
- Bucket策略(基于路径、IP地址、引用方等授予广泛访问权限)
- IAM用户和组(向具有AWS凭据的用户授予权限)
- 预签名URL
- 它正确地验证用户(通过您的代码),而不仅仅是信任任何知道密码的人
- 它允许您记录访问,以便您知道谁正在访问对象
- 您的后端应用程序可以生成一个HTML页面,其中包含许多预先签名的URL,您的用户只需单击链接即可访问对象,而无需为他们希望下载的每个对象提供密码