我根本不了解这个领域。我试图了解如果在请求访问文件时自动解密,S3 加密的实际用途是什么。
任何有权限访问该文件的人都可以获取该文件。
没有权限的其他人首先无法访问该文件。
基本上这就是我的看法。
如果没有 S3 存储桶的访问权限,怎么能获取该文件呢?
编辑:这个问题来自阅读有关 hipaa 合规性的白皮书。
如果 S3 存储桶未加密,并且只有在相应 aws 账户内运行的服务才可以访问该存储桶,则该 S3 存储桶是否被视为符合 hipaa 标准。
答案1
假设一下,如果一个不法的亚马逊员工绕过正常的访问限制,获得了对 S3 存储介质的物理访问权。他们将可以访问您的明文数据。我能想到的各种不幸情况都可能使您的未加密数据面临暴露风险。这就是为什么如果您觉得您的数据非常敏感,S3 静态加密是一个非常好的主意。通过不加密静态数据,您基本上是对任何与您的数据进行物理接触的人给予绝对信任。您不应该相信任何人。
话虽如此,如果你真的在处理存储在 S3 中的敏感数据,你不应该完全以明文传输这些数据。如果你想真正做到尽可能安全,你应该实现客户端在将数据发送到 S3 之前,对数据进行加密。除此之外,我还将使用 TLS 加密与 S3 的连接。此时,您的数据在到达 S3 之前就已加密,您可以选择是否打开 S3服务器端加密,再加一层加密,为什么不呢?这样做是免费的,对吧?
我承认我不是 HIPPA 专家——这不是我个人需要处理的事情,但我确实了解保护敏感客户数据的性质。如果你有能力负责这些事情,那么我不知道你为什么不默认使用尽可能多的安全层。只尝试做最低限度的事情,这就是公司因“意外”(疏忽)数据泄露而登上新闻头条的原因。不要成为公司坏消息头条的负责人。尽可能多地保护你的敏感数据,当然要尽可能多地保护。
答案2
S3 加密在很大程度上符合 PCI / HIPPA 和类似标准的合规性要求。它可以防止任何能够访问物理媒体的人访问您的数据,尽管这种情况可能存在,但可能性极小,因为AWS 使用的物理控制和媒体处置。
如果持有您数据的同一家公司也持有加密密钥,那么他们就可以解密您的数据。AWS 无疑拥有严格的控制措施,可以防止员工访问加密密钥和数据,但没有什么是完美的,所有软件都有缺陷。
正如 @guzzijason 所说,如果您的数据至关重要,那么您应该在将数据发送到 S3 之前对其进行加密。如果您在 EC2 中运行服务器,它们仍然受 AWS 控制,但至少这是另一层加密,也是攻击者访问数据需要跨越的另一个环节。
没有理由不在 S3 中加密您的数据,因为它确实提高了安全性 - 唯一的问题是提高多少。
2021 年更新 - 加密也会产生 KMS 费用,但使用S3 存储桶键可以降低这一成本。