Написать в техподдержку Позвонить нам
Админпанель Выход

Содержание статьи:

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

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

    Предварительно подписанные URL-адреса полезны, если необходимо чтобы пользователь / клиент мог загружать определенный объект в бакет, но не требуется, чтобы у них были учетные данные или разрешения безопасности MCS.

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

    • Скачать объект
    • Загрузить объект
    • Создать бакет

    При создании предварительно подписанного URL-адреса необходимо предоставить :

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

    Предварительно подписанные URL-адреса действительны только в течение указанного срока. Возможно использование предварительно подписанного 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>%2F<YYYYMMDD>%2Fru-msk%2Fs3%2Faws4_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 - Идентификатор для подписи формата <access-key-id>/<YYYYMMDD>/ru-msk/s3/aws4_request, где <YYYYMMDD> должна совпадать с датой, установленной в заголовке X-Amz-Date.

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

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

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

    Примечание

    Для составления подписанного URL необходимо владеть статическими ключами доступа.

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

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

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


    Полезна ли была эта статья?