Для чего нужен CallerReference при публикации запроса на аннулирование в Amazon CloudFront? - PullRequest
8 голосов
/ 29 июня 2011

В документации Amazon CloudFront не упоминается, для чего предназначена "CallerReference" или чем я должен ее заполнить, в примерах, которые я видел на других сайтах, используется guid или текущая дата.

В подсказке AWS SDK для .NET говорится, что она предотвращает атаки воспроизведения, но для этого и нужен заголовок даты.

Ответы [ 2 ]

10 голосов
/ 17 февраля 2012

Документация Amazon CloudFront (между тем ?!) гласит, что CallerReference - Уникальное имя, которое гарантирует, что запрос не может быть воспроизведен действительно, см. Сложный тип InvalidationBatch для деталей:

Если CallerReference - это значение, которое вы уже отправили в предыдущем пакетный запрос аннулирования, и если содержимое каждого элемента Path идентичен исходному запросу, ответ включает в себя информация возвращена в исходный запрос.

Если CallerReference - это значение, которое вы уже отправили в предыдущем Пакетный запрос недействительности, но содержимое любого пути отличается из исходного запроса CloudFront возвращает Ошибка InvalidationBatchAlreadyExists.

Раздел Справочник вызывающего абонента в Invalidation Object также подтверждает это и дает подсказку, как с этим справляться на практике:

CallerReference - это уникальное значение, которое вы предоставляете и которое CloudFront используется для предотвращения повторов вашего запроса. Вы должны предоставить нового абонента эталонное значение и другая новая информация в запросе на CloudFront для создания нового запроса на аннулирование. Вы могли бы использовать время штамп для ссылки на вызывающего абонента (например, 20100801090000).

Несмотря на пример, в котором также используется отметка времени, выделенное значение для обработки атак воспроизведения предположительно обеспечивает большую гибкость и, следовательно, потенциально повышает безопасность (если это необходимо), чем использование заголовка даты.

0 голосов
/ 07 августа 2013

мои 2 цента для тех, кто читает это в будущем:

CallerReference также полезен при сложной и автоматической настройке на основе облака. Подумайте о настройке развертывания, в которой многие сценарии с разных хостов выполняются независимо для проверки и создания дистрибутива CloudFront. В таком случае вы хотите, чтобы только один запрос на создание был успешным. Вы можете использовать фиксированную CallerReference, чтобы убедиться, что вы случайно не создаете дублирующийся дистрибутив.

...