繁体   English   中英

带有客户端加密的预签名 S3 URL

[英]Presigned S3 URL with client side encryption

我已经搜索了很长时间,但看到没有人有以下情况,所以如果有人能提供帮助,我将不胜感激。

我们想使用 S3 预签名 URL 下载大文件,但出于安全原因,我们使用 KMS 进行客户端加密来上传文件。

一种选择是使用 AWS 加密 SDK 在浏览器中加密文件,在后端上传到 S3,然后在从预签名 URL 获取文件后在浏览器中解密。但我担心用户浏览器中的凭据暴露。 在 AWS 文档https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/js-examples.html()

首先向浏览器提供您的凭据。 AWS 加密 SDK for JavaScript 示例使用 webpack.DefinePlugin,它将凭证常量替换为您的实际凭证。 但是您可以使用任何方法来提供您的凭据。 然后,使用凭证创建 AWS KMS 客户端。

  1. 你对此有什么解决办法吗?
  2. 如果使用 AWS SDK,无论如何要避免用户使用 F12 时的凭据泄露?

但我担心用户浏览器中的凭据暴露。

使用客户端加密,假设加密的秘密是随机的并且是唯一的/特定于内容(使用信封加密)。

因此,如果客户端有权访问内容(要下载),则可以向客户端提供解密内容的密钥(您可以将密钥视为内容的一部分)。 密钥(数据密钥)不得用于解密其他任何内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM