我想在Amazon S3上启用SSE-S3。我单击属性并检查AES-256的加密框。它说加密,然后完成。但我仍然可以在不提供密钥的情况下读取文件,当我再次检查属性时,它会显示未选中的单选按钮。我这样做了吗?它加密了吗?太混乱了。
答案 0 :(得分:2)
您正在查看S3控制台中显示多个文件的存储桶视图,或者只显示一个文件但该文件未被选中。单选按钮允许您将所选项目设置为您在单选按钮中选择的值,但是只要显示多个文件,单选按钮就会保持空白,因为它们只会在那里让您进行更改 - 而不是向您展示现有对象的值。
单击单个文件并查看其属性,您将看到该文件与server-side-encryption = AES256一起存储。
是的,您可以下载该文件而无需解密,因为此功能是静态数据的服务器端加密 - 文件在存储到物理介质之前由S3加密S3继续运行。这通常是出于合规目的而进行的,其中监管限制或其他合同义务要求数据在静止时加密。
加密密钥与S3分开存储,并由S3管理。事实上,加密密钥实际上由S3存储,加密。 (它们为每个对象生成一个密钥,并使用主密钥以加密形式存储该密钥)。
加密数据的解密不需要您付出任何努力。当您
GET
加密对象时,我们会获取并解密密钥,然后使用它来解密您的数据。https://aws.amazon.com/blogs/aws/new-amazon-s3-server-side-encryption/
对于传输中的数据 ,S3会在您使用HTTPS时对其进行加密。
与控制台中可用的功能S3 also supports server-side AES-256 encryption with keys you manage不同。在这种情况下,称为SSE-C,您仍然不负责实际的加密/解密,因为S3仍然为您做到这一点。不同之处在于S3不存储密钥,您必须使用GET
请求向S3提供密钥,以便S3获取对象,解密并将其返回给您。如果您没有提供正确的密钥,S3将无法回复该对象 - 即使是加密形式也是如此。 S3知道您是否使用GET
请求发送了正确的密钥,因为S3存储密钥的盐渍HMAC以及对象,以验证您在尝试获取对象时发送的密钥,后来。
此功能 - 您管理自己的密钥 - 需要HTTPS(否则您将在未加密的情况下通过Internet发送加密密钥),并且只能通过API访问,而不能通过控制台访问。
您无法使用Amazon S3控制台上传对象并请求SSE-C。您也无法使用控制台更新(例如,更改存储类或添加元数据)使用SSE-C存储的现有对象。
http://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html
当然,如果您没有可靠的密钥管理基础架构,这种方法(使用客户管理的密钥)会特别危险,因为如果您丢失了用于上传文件的密钥,出于所有实际目的,该文件丢失了。