CFL*_*eff 4 encryption amazon-s3
我已指定以下存储桶策略来强制对 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"
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
和
上传的bucket对象的属性表明它们是加密的
然而
我的“存储桶属性”表明我没有使用默认加密:
我可以从控制台下载这些“加密”的图像并在下载后在本地查看它们,如果它们真的被加密,我希望这是不可能的。
那么......我是否实现了“静态加密”?
由于您上传的对象将加密显示为 aws-kms,这意味着它在静态时已明确加密。您直接从 s3 UI 上传,默认情况下不加密。上传后,您将看到加密为 none。静态加密意味着,您的数据以加密形式存储在 s3 磁盘/存储基础设施上。但是,这并不意味着它会以加密格式显示在用户界面/或下载后。当您通过 sdk 下载时,它会自动解密数据。你总是得到解密的数据。同样,s3 UI 显示解密的内容。您要实现的是客户端加密。服务器端加密是静态加密。当您进行客户端加密时,数据以加密格式进入 s3。再次下载时,客户端必须解密数据。
https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingEncryption.html
注意:术语“休息”是指数据正在休息时(不是在数据正在传输到 s3 的过渡中)。服务器端加密 - 这有助于静态加密。
客户端加密 - 这有助于在过渡和静止时进行加密。
单独使用 ssl 也可以实现过渡中的加密。