我正在从应用程序中保存aws s3存储桶中的一些图像/对象。首先,我从nodejs服务api获取签名URL,并使用jquery ajax将图像或文件上传到singed url。我可以使用属性(https://s3.amazonaws.com/bucketname/objectname)中提供的链接打开图像或对象。
我想为每个上传的对象提供安全性。即使有任何匿名用户在某个地方获得链接(https://s3.amazonaws.com/bucketname/objectname),他也应该无法打开它。应该访问它们(对象)并仅打开例如请求具有一些标题键值等的情况。我通过在请求中指定标题键值来尝试服务器端加密,如下所示。
var file = document.getElementById('fileupload').files[0];
$.ajax({
url: signedurl,
type: "PUT",
data: file,
header:{'x-amz-server-side-encryption':'AES256'},
contentType: file.type,
processData: false,
success: function (result) {
var res = result;
},
error: function (error) {
alert(error);
}
不加密侧加密是否在s3存储桶上保留加密对象?它是否仅在保存s3存储之前进行传输和解密时加密?
如果它将加密对象存储在s3存储上,那么我该如何使用属性中显示的链接打开它。
答案 0 :(得分:1)
服务器端加密(SSE)会加密对象静止(存储在磁盘上),但会在检索对象时对其进行解密。因此,它是一种透明的加密形式。
如果您希望将Amazon S3中的对象保密,但将其提供给特定的授权用户,我建议您使用预签名网址。
这可以让您的应用程序生成一个URL,该URL提供对Amazon S3中特定对象的限时访问。否则,对象将保密,因此无法访问它们。