Маркер SAS делегирования пользователя более безопасен, поскольку он не полагается только на разрешения, включенные в маркер SAS. Также учитываются разрешения RBAC пользователя, создавшего этот токен SAS. Маркер SAS, созданный с использованием общего ключа доступа, просто учитывает разрешения, включенные в маркер SAS.
Например, предположим, что пользователь, создающий SAS с делегированием пользователя, имеет только Read
разрешения на контейнер больших двоичных объектов (т.е. он может только перечислять или загружать большие двоичные объекты в контейнере больших двоичных объектов). Теперь предположим, что пользователь создает маркер SAS с разрешением Write
. Когда этот маркер SAS используется для отправки большого двоичного объекта, операция завершится ошибкой, поскольку у пользователя нет Write
разрешений на этот контейнер больших двоичных объектов, тогда как операция загрузки завершилась бы успешно, если бы маркер SAS был создан с использованием общего ключа доступа.
Дополнительную информацию об этом можно найти на _ 4_ (выделено мной):
Когда клиент обращается к ресурсу хранилища BLOB-объектов с помощью SAS делегирования пользователя, запрос к хранилищу Azure авторизуется с учетными данными Azure AD, которые использовались для создания SAS. Разрешения на управление доступом на основе ролей (RBAC), предоставленные этой учетной записи Azure AD, вместе с разрешениями, явно предоставленными на SAS, определяют доступ клиента к ресурсу. Такой подход обеспечивает дополнительный уровень безопасности и позволяет избежать необходимости хранить ключ доступа к вашей учетной записи вместе с кодом приложения. По этим причинам создание SAS с использованием учетных данных Azure AD является лучшей практикой безопасности.
Разрешения, предоставленные клиенту, обладающему SAS, являются пересечением разрешений, предоставленных участнику безопасности, который запросил ключ делегирования пользователя, и разрешениям, предоставленным ресурсу в токене SAS с использованием поля signedPermissions (sp) сильный>. Если разрешение, предоставленное участнику безопасности через RBAC, также не предоставляется для маркера SAS, то это разрешение не предоставляется клиенту, который пытается использовать SAS для доступа к ресурсу. При создании SAS делегирования пользователей убедитесь, что разрешения, предоставленные через RBAC, и разрешения, предоставленные через маркер SAS, соответствуют уровню доступа, требуемому клиентом.
person
Gaurav Mantri
schedule
04.05.2021