向 Amazon CloudFront 发布失效请求时 CallerReference 有何用途?

发布于 2024-11-17 12:47:45 字数 311 浏览 3 评论 0原文

Amazon CloudFront 文档 没有提及“CallerReference”的用途或我的用途应该填写它,我在其他网站上看到的示例使用 guid 或当前日期。

AWS SDK for .NET 工具提示说它是为了防止重放攻击,但这就是日期标头的用途。

The Amazon CloudFront documentation doesn't mention what the "CallerReference" is for or what I should fill it with, the examples I have seen on other sites use a guid or the current date.

The AWS SDK for .NET tooltip says it's to prevent replay attacks, but that's what the date header is for.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦中的蝴蝶 2024-11-24 12:47:45

Amazon CloudFront 文档(同时?!)指出CallerReference 是确保请求无法重播的唯一名称,请参阅InvalidationBatch 复杂类型了解详细信息:

如果 CallerReference 是您在之前发送的值
失效批量请求,如果每个Path元素的内容是
与原始请求相同,响应包含相同的内容
返回原始请求的信息。

如果 CallerReference 是您在之前发送的值
失效批量请求但任意Path的内容不同
根据原始请求,CloudFront 返回一个
InvalidationBatchAlreadyExists 错误。

对象失效中的调用者参考部分也证实了这一点,并提供了如何在实践中处理它的提示:

CallerReference 是您提供的唯一值,CloudFront
用于防止重播您的请求。您必须提供新的呼叫者
请求中的参考值和其他新信息
CloudFront 创建新的失效请求。你可以用一个时间
呼叫者参考标记(例如 20100801090000)。

尽管示例也使用时间戳,但处理重放攻击的专用值据称比依赖日期标头提供了更大的灵活性,因此可能提高安全性(如果需要的话)。

The Amazon CloudFront Documentation (meanwhile?!) states that CallerReference is A unique name that ensures the request can't be replayed indeed, see InvalidationBatch Complex Type for details:

If the CallerReference is a value you already sent in a previous
invalidation batch request, and if the content of each Path element is
identical to the original request, the response includes the same
information returned to the original request.

If the CallerReference is a value you already sent in a previous
invalidation batch request but the content of any Path is different
from the original request, CloudFront returns an
InvalidationBatchAlreadyExists error.

Section Caller Reference within Object Invalidation confirms this as well and provides a hint how to handle it in practice:

CallerReference is a unique value that you provide and that CloudFront
uses to prevent replays of your request. You must provide a new caller
reference value and other new information in the request for
CloudFront to create a new invalidation request. You could use a time
stamp for the caller reference (such as 20100801090000).

Despite the sample using a time stamp as well, a dedicated value to handle replay attacks supposedly provides more flexibility and thus potentially increased security (if so desired) than relying on a date header.

时光沙漏 2024-11-24 12:47:45

我的 2 美分给在未来读到这篇文章的人:

CallerReference 对于复杂且自动化的基于云的设置也很有用。想象一下部署设置,其中来自不同主机的许多脚本独立运行以验证和创建 CloudFront 分发。在这种情况下,您只希望一个创建请求成功。您可以使用固定的 CallerReference 来确保不会意外创建重复的分配。

my 2 cents for someone reading this in futuer:

CallerReference is also useful with complex and automated cloud based setup. Think of a deployment setup with many scripts from different hosts are running independently to verifying and creating CloudFront distribution. In such case you want only one create request to be successful. You can use fixed CallerReference to make sure you don't create duplicate distribution accidentally.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文