尝试获取使用Javascript工作的Amazon S3客户端加密。Amazon S3客户端加密Javascript
为桶内的特定S3对象建立SSE是 可选,并且可以很容易地在单个对象级别建立。 也可以设置“一揽子”策略,要求将所有发送到S3 存储桶的数据加密。这样的策略的示例如下:
{
"Version":"2013-05-17",
"Id":"PutObjPolicy",
"Statement":[{
"Sid":"DenyUnEncryptedObjectUploads",
"Effect":"Deny",
"Principal":{
"AWS":"*"
},
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::SensitiveBucket/*",
"Condition":{
"StringNotEquals":{
"s3:x-amz-server-side-encryption":"AES256"
}
}
}
]
}
为了成功地将任何数据到这个S3桶,该请求将 需要包括“X-AMZ-服务器端加密”头。
既然是客户端,我得到这个JSON策略设置:
{
"expiration": "2020-01-01T00:00:00Z",
"conditions": [
{"bucket": "angular-file-upload"},
["starts-with", "$key", ""],
{"acl": "private"},
{ "x-amz-server-side-encryption": "AES256"},
{"x-amz-server-side-encryption-customer-key": "ABC1234835784375349754857893"},
{"x-amz-server-side-encryption-customer-key-MD5": "d0259989a64a9234457dbc51d5202c24"},
["starts-with", "$Content-Type", ""],
["starts-with", "$filename", ""],
["content-length-range", 0, 524288000]
]
}
发送文件CORS-的方式S3(POST)和我还发送X-AMZ-服务器端加密上传期间的标题。
尝试与两个JSON政策,但他们都扔了相同的结果。
回应如下:
<Error><Code>AccessDenied</Code>
<Message>Invalid according to Policy: Extra input fields: x-amz-server-side-encryption-customer-key</Message><RequestId>...</RequestId><HostId>...</HostId></Error>
有人知道这是怎么回事呢? 最近我甚至很好奇是否甚至有可能用JS & Cors加密客户端。
干杯。
不要发送头。 –