将失效请求发布到Amazon CloudFront时,CallerReference是什么?

Mys*_*ter 8 amazon-web-services amazon-cloudfront

亚马逊的CloudFront的文件没有提到什么"CallerReference"是还是什么,我应该有,我已经看到了在其他网站的例子中使用GUID或当前日期填充它.

AWS SDK用于.NET工具提示说,这是为了防止重放攻击,但是这是日头是什么.

Ste*_*pel 10

亚马逊的CloudFront的文档(同时?)指出,CallerReference是确保该请求不能被重播的唯一名称的确,看到InvalidationBatch复杂类型的详细信息:

如果CallerReference是您在先前的失效批处理请求中已发送的值,并且如果每个Path元素的内容与原始请求相同,则响应包括返回到原始请求的相同信息.

如果CallerReference是您在先前的失效批处理请求中已发送的值,但任何Path的内容与原始请求不同,则CloudFront将返回InvalidationBatchAlreadyExists错误.

Object Invalidation中的Section Caller Reference也确认了这一点,并提供了如何在实践中处理它的提示:

CallerReference是您提供的唯一值,CloudFront用于阻止重播您的请求.您必须在CloudFront请求中提供新的呼叫者参考值和其他新信息,以创建新的失效请求.您可以使用时间戳作为呼叫者参考(例如20100801090000).

尽管样本也使用时间戳,但是处理重放攻击的专用值据称提供了更大的灵活性,因此可能提高安全性(如果需要),而不是依赖于日期标题.