我指定了以下存储桶策略以对PUT实施加密:
{
"Version": "2012-10-17",
"Id": "PutObjPolicy",
"Statement": [
{
"Sid": "DenyUnEncryptedObjectUploads",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::com.my.bucket/*",
"Condition": {
"StringNotEquals": {
"s3:x-amz-server-side-encryption": "aws:kms"
}
}
}
]
}
AND
上传的存储桶对象的属性表明它们已加密
如何
我的“存储桶属性”表明我没有使用默认加密:
并且我能够从控制台下载这些“加密的”图像并在下载后在本地查看它们,我希望如果它们真的被加密了,就不可能。
那么...我是否实现了“静态加密”?
答案 0 :(得分:2)
当您上传的对象将加密显示为aws-kms时,表示它在静止时已明确加密。您直接从s3 UI进行上传,默认情况下加密为none。上传后,您将看到加密为空。静态加密意味着,您的数据以加密形式存储在s3磁盘/存储基础结构上。但是,这并不意味着它将以加密格式显示在UI上或下载后。通过sdk下载时,它会自动解密数据。您总是会得到解密的数据。类似地,s3 UI显示解密的内容。您要实现的是客户端加密。服务器端加密是静态加密。完成客户端加密后,数据将以加密格式进入s3。再次下载时,它的客户端必须解密数据。
https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html
注意:“静止”一词是指数据处于静止状态(数据传输至s3时不处于过渡状态)。 服务器端加密-便于静态加密。
客户端加密-这有助于过渡和静态加密。
单独使用过渡加密也可以通过使用ssl来实现。