Создание подписанных URL-адресов

Завершено

Подписанный URL-адрес (SAS) — это универсальный идентификатор ресурса (URI), который предоставляет доступ к ресурсам службы хранилища Azure с ограниченным доступом. SAS — это безопасный способ предоставления общего доступа к ресурсам хранилища без опасности для ключей учетной записи.

Вы можете предоставлять подписанные URL-адреса (SAS) клиентам, у которых не должно быть доступа к ключу вашей учетной записи хранения. Распространяя URI SAS среди этих клиентов, вы предоставляете им доступ к ресурсу в течение определенного периода времени. Типичным сценарием использования SAS является служба, где пользователи считывают и записывают свои данные в вашей учетной записи хранения.

  • SAS для делегирования пользователя защищается с помощью учетных данных Microsoft Entra, а также разрешений, установленных для SAS. SAS делегирования пользователей поддерживается для хранилища BLOB-объектов и Data Lake Storage.

  • SAS уровня учетной записи, разрешающий доступ ко всему, что SAS уровня обслуживания может разрешать, и другим ресурсам и возможностям. Например, SAS уровня учетной записи можно использовать, чтобы разрешить создание файловых систем.

  • SAS на уровне сервиса, чтобы предоставить доступ к определенным ресурсам в учетной записи хранения. Этот тип SAS можно использовать, например, чтобы разрешить приложению получить список файлов в файловой системе или скачать файл.

  • Хранимая политика доступа может обеспечить другой уровень управления при использовании SAS уровня обслуживания на стороне сервера. Вы можете группировать SAS и предоставлять другие ограничения с помощью хранимой политики доступа.

Рекомендации по управлению рисками

Рассмотрим некоторые рекомендации, которые помогут снизить риски при работе с SAS.

Рекомендация Описание
Всегда используйте HTTPS для создания и распространения Если SAS передается по протоколу HTTP и перехватывается, злоумышленник может перехватывать и использовать SAS. Эти атаки злоумышленника в середине могут скомпрометировать конфиденциальные данные или разрешить повреждение данных злоумышленником.
Ссылка на хранимые политики доступа по возможности Хранимые политики доступа предоставляют возможность отзыва разрешений без повторного создания ключей учетной записи хранения Azure. Задайте дату окончания срока действия ключа учетной записи хранения в будущем.
Установка ближайшего срока действия для незапланированного SAS Если SAS скомпрометирован, вы можете устранить атаки, ограничив срок действия SAS коротким временем. Это важно в случаях, когда нельзя ссылаться на хранимую политику доступа. Небольшой срок также позволяет ограничить объем данных, который может быть записан в большой двоичный объект, путем ограничения времени на отправку этих данных.
Требовать автоматическое продление SAS клиентами Требуется, чтобы клиенты обновляли SAS до истечения срока действия. При продлении до начала вы можете разрешить время повторных попыток, если служба, предоставляющая SAS, недоступна.
Тщательно планируйте время начала SAS Если задать время начала для SAS сейчас, то из-за отклонений часов (различия в текущем времени в соответствии с разными компьютерами) могут наблюдаться периодические сбои в течение первых нескольких минут. Как правило, задайте время начала не менее 15 минут в прошлом. Или не устанавливайте определенное время начала, что приводит к тому, что SAS будет действительным немедленно во всех случаях. Те же условия обычно применяются к времени истечения срока действия. По любому запросу можно наблюдать до 15 минут часов. Для клиентов, использующих версию REST API ранее 2012-02-12, максимальная длительность SAS, которая не ссылается на хранимую политику доступа, составляет 1 час. Любые политики, указывающие длительный сбой.
Определение минимальных разрешений доступа для ресурсов Из соображений безопасности рекомендуется предоставить пользователю минимально необходимый набор прав. Если пользователю требуется только доступ для чтения к отдельной сущности, предоставьте доступ на чтение к этой сущности, а не доступ на чтение, запись и удаление для всех сущностей. Эта практика также помогает уменьшить ущерб, если SAS скомпрометирован, так как SAS имеет меньше мощности в руках злоумышленника.
Проверка данных, записанных с помощью SAS Когда клиентское приложение записывает данные в учетную запись хранения Azure, учтите, что с данными могут возникнуть проблемы. Если приложению требуются проверенные или авторизованные данные, проверьте данные после записи, но прежде чем использовать. Такой подход также обеспечивает защиту от поврежденных или вредоносных данных, записываемых в вашу учетную запись как пользователем, который получил подпись правомерно, так и пользователем, использующим подпись после ее утечки.
Не предполагайте, что SAS всегда является правильным выбором В некоторых сценариях риски, связанные с определенной операцией с учетной записью хранения Azure, перевешивают преимущества использования SAS. Для таких операций создавайте службу среднего уровня, которая записывает данные в вашу учетную запись хранения после выполнения проверки, проверки подлинности и аудита на основании бизнес-правил. Кроме того, иногда проще управлять доступом другими способами. Если вы хотите сделать все большие двоичные объекты в контейнере общедоступным для чтения, можно сделать контейнер общедоступным, а не предоставлять SAS каждому клиенту для доступа.