Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 使用cloudfront在S3上传输服务器端加密视频_Amazon S3_Video Streaming_Amazon Cloudfront - Fatal编程技术网

Amazon s3 使用cloudfront在S3上传输服务器端加密视频

Amazon s3 使用cloudfront在S3上传输服务器端加密视频,amazon-s3,video-streaming,amazon-cloudfront,Amazon S3,Video Streaming,Amazon Cloudfront,我正在使用AmazonS3存储以及服务器端加密和客户提供的密钥(SSE-C)来存储视频文件。我使用Django作为后端服务器,并已将数据库中与每个文件关联的所有名称密钥和密钥存储在EC2容器中 我想使用amazon cloudfront服务流式传输这些视频。我已经创建并配置了一个带有S3存储的cloudfront发行版。我可以很容易地为非加密视频提供服务,但我无法访问加密视频,因为它需要名称密钥和密钥才能访问服务器端加密数据 在这方面我找不到任何帮助。甚至可以使用cloudfront为服务器端加

我正在使用AmazonS3存储以及服务器端加密和客户提供的密钥(SSE-C)来存储视频文件。我使用Django作为后端服务器,并已将数据库中与每个文件关联的所有名称密钥和密钥存储在EC2容器中

我想使用amazon cloudfront服务流式传输这些视频。我已经创建并配置了一个带有S3存储的cloudfront发行版。我可以很容易地为非加密视频提供服务,但我无法访问加密视频,因为它需要名称密钥和密钥才能访问服务器端加密数据

在这方面我找不到任何帮助。甚至可以使用cloudfront为服务器端加密(SSE-C)媒体文件提供服务吗

如果可能,请指导我找到最佳解决方案。 我们将非常感谢在这方面提供的任何帮助。谢谢

它需要名称密钥和密钥才能访问服务器端加密数据

这不是问题的全部;然而。将透明地对请求进行重新签名,以便当CloudFront断定请求已被授权时,S3将允许访问这些对象,但您无法创建与SSE-C兼容的CloudFront签名URL

这又是因为S3中的SSE-C不支持在查询字符串中向S3传递必要的参数

使用预先签名的URL上载新对象、检索现有对象或仅检索对象元数据时,必须在客户端应用程序中提供所有加密头

加密参数必须使用SSE-C作为标头发送,而不是作为查询参数发送

而且,如果您仔细想想,似乎没有什么目的可以使用密钥加密对象,这些密钥在每次请求时都会被显示和记录——这些密钥将在查询字符串中

SSE-S3与CloudFront透明地工作。SSE-KMS,我也希望得到支持(因为根据S3API文档,
GET
请求不需要(或允许)与加密相关的头)

如果对象使用AWS KMS托管加密密钥(SSE-KMS)的服务器端加密或Amazon S3托管加密密钥(SSE-S3)的服务器端加密,则不应为GET请求发送加密请求头,如x-amz-server-side-Encryption


谢谢迈克尔的回复。但我还是有点不清楚。如果你能再详细一点,我将不胜感激。这就是我从你的回答中理解的(如果我错了,请纠正我):如果想要通过cloudfront流式传输内容,SSE-C类型的加密是不合适的。为了通过cloudfront提供数据并在S3上对其进行加密,必须使用一种服务器端加密,其中密钥由amazon自己管理,而不是像SSE-KMS这样的客户端。或者,我仍然可以通过在请求头中传递密钥和名称密钥来流式传输SSE-C加密的视频吗?我认为CloudFront不会将必要的头传递给S3,即使您的应用程序可以将它们注入到要求事实上,仔细想想,我也不确定CloudFront是否会与SSE-KMS一起使用,至少在一些S3地区是这样。较新的地区,如伦敦,可能会这样做,但较老的地区,如俄勒冈州,几乎肯定不会这样做,因为一些现有的设计特点需要改变,从而破坏一些现有的用途。你能解释一下你用这种方式控制加密的动机吗?也许你解决了错误的问题?我投票结束这个问题,因为它与编程无关