База знаний LinxCloud Services

Подписанные URL

Заранее подписанный URL-адрес дает доступ к объекту, указанному в URL-адресе, но только, если пользователь, который создал предварительно подписанный URL-адрес имеет доступ к этому объекту.

Заранее подписанные URL-адреса чаще всего используются, когда пользователю нужна возможность загрузки определенного объекта в бакет, но не нужны учетные данные или разрешения безопасности LinxCloud.

С помощью заранее подписанных URL любой пользователь может выполнять операции в Объектном хранилище.

Для создания заранее подписанного URL-адреса нужно предоставить:

  • Учетные данные безопасности ( ключи доступа )
  • Имя бакета
  • Ключ объекта
  • Метод HTTP
  • Дату
  • Время истечения срока действия

Заранее подписанные URL-адреса можно использовать несколько раз, однако только до указанного срока.

Примечание

Программно сгенерировать заранее подписанный URL-адрес можно используя REST API, интерфейс командной строки AWS и AWS SDK для Java, .NET, Ruby, PHP, Node.js и Python.

В SDK AWS по умолчанию используется подпись версии 4 для аутентификации запросов. При использовании пакетов SDK AWS с подписью версии 3, может потребоваться запросить у сервиса версию подписи 4.

 

Общий вид подписанного URL

https://hb.bizmrg.com/<имя_бакета>/<имя_ключа>?
     X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Expires=<интервал времени в секундах>
    &X-Amz-SignedHeaders=<список заголовков разделенный символами ";">
    &X-Amz-Signature=<подпись>
    &X-Amz-Date=<время в формате ISO 8601>
    &X-Amz-Credential=<access-key-id>/<YYYYMMDD>/ru-msk/s3/aws4_request

Где

  • X-Amz-Algorithm — Указание версии подписи и алгоритм ее вычисления. Значение — AWS4-HMAC-SHA256.
  • X-Amz-Expires — Срок действия ссылки в секундах. Максимальное значение — 604800 секунд (7 дней).
  • X-Amz-SignedHeaders — Заголовки запроса, которые необходимо подписать. Обязательно подписывать заголовок host и все заголовки x-amz-*, которые используются в запросе.
  • X-Amz-Signature — Подпись запроса.
  • X-Amz-Date — Время в формате ISO8601, например 20180719T000000Z. Дата должна по значению совпадать с датой в параметре X-Amz-Credential.
  • X-Amz-Credential — Идентификатор для подписи формата //ru-msk/s3/aws4_request, где должна совпадать с датой, установленной в заголовке X-Amz-Date.

 

Составление подписанного URL

Чтобы получить заранее подписанный URL-адрес нужно:

  1. Вычислить подпись: составить строку и вычислить подпись с помощью алгоритма подписи строк.
  2. Составить подписанный URL для своего запроса.

Примечание

Чтобы составить подписанный URL-адрес нужны статические ключи доступа.

 

Примеры получения подписанной ссылки

При помощи S3 CLI можно сгенерировать заранее подписанную ссылку, используя команду:

aws s3 presign s3://<имя_бакета>/<название_ключа> --endpoint-url https://hb.bizmrg.com --expires-in <время_в_секундах>
Что вас интересует?
Получить демо-доступ

Спасибо за ваш запрос, мы свяжемся с вами в ближайшее время!