我的S3对象是否在静止时被加密?

时间:2018-09-28 17:28:56

标签: 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"
                }
            }
        }
    ]
}

AND

上传的存储桶对象的属性表明它们已加密

image properties indicate encrypted

如何

我的“存储桶属性”表明我没有使用默认加密:

bucket encryption settings

并且我能够从控制台下载这些“加密的”图像并在下载后在本地查看它们,我希望如果它们真的被加密了,就不可能。

那么...我是否实现了“静态加密”?

1 个答案:

答案 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来实现。