Как использовать AWS sign v4 API для создания подписанного файла cookie? - PullRequest
0 голосов
/ 12 июня 2019

Я получил электронное письмо от Amazon, в котором говорится, что срок действия API Sign v2 истекает до конца месяца.

Но в документации по Cloudfront нет упоминаний о том, как использовать API sign v4.(https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-setting-signed-cookie-canned-policy.html)

В настоящее время я подписываю пользовательскую политику с секретом облачного фронта и устанавливаю cookie с этим значением.

Пример:

Set-Cookie: 
Domain=optional domain name; 
Path=/optional directory path; 
Secure; 
HttpOnly; 
CloudFront-Signature=hashed and signed version of the policy statement

ПодробнееВы можете проверить этот ответ: https://stackoverflow.com/a/29636496/58129

Я не уверен, как я могу вписать пользовательскую политику в запрос Canonical. (https://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html)

Он ожидает, что я упакую запрос Canonicalв качестве первого шага.

CanonicalRequest =
  HTTPRequestMethod + '\n' +
  CanonicalURI + '\n' +
  CanonicalQueryString + '\n' +
  CanonicalHeaders + '\n' +
  SignedHeaders + '\n' +
  HexEncode(Hash(RequestPayload))

Я полагаю, что политика должна присутствовать где-то в запросе, верно?

Как я могу сконструировать этот канонический запрос для cookie-файла, подписанного облачным фронтом?

1 Ответ

0 голосов
/ 12 июня 2019

URL-адрес / файлы cookie, подписанные CloudFront, отличаются от запросов Sigv4. Sigv4 предназначен для выполнения API-вызовов к ресурсам AWS, например: для подключения к различным конечным точкам AWS EC2, S3 и т. Д. Для получения списка, внесения любых изменений и т. Д., В то время как подписанный URL-адрес CloudFront создается с использованием пары ключей RSA (Public-private) и не имеет ничего общего с Sigv4.

...