Определение хранимой политики доступа
Хранимая политика доступа обеспечивает дополнительный уровень управления подписанными URL-адресами (SAS) на стороне сервера. Задание хранимой политики доступа обеспечивает группирование подписей общего доступа и создает дополнительные ограничения для подписей, привязанных к политике.
С помощью хранимой политики доступа можно изменить время начала, срок действия или разрешения для подписи. Вы также можете использовать хранимую политику доступа для отзыва подписи после ее выдачи.
Хранимые политики доступа поддерживают следующие ресурсы хранилища.
- контейнеров BLOB-объектов;
- общих папок;
- очередей;
- Таблицы
Примечание
Хранимая политика доступа в контейнере может быть связана с подписанным URL-адресом, который предоставляет разрешения самому контейнеру или содержащимся в нем большим двоичным объектам. Аналогичным образом хранимая политика доступа к общей папке может быть связана с подписанным URL-адресом, который предоставляет разрешения для самой общей папки или для содержащихся в ней файлов.
Хранимые политики доступа не поддерживаются в случае SAS для делегирования пользователей или SAS для учетной записи.
Создание или изменение хранимой политики доступа
Политика доступа для подписанного URL-адреса состоит из времени начала, даты истечения срока действия и разрешений для подписи. Вы можете указать один из следующих параметров или объединить их:
- Все эти параметры в URI подписи и отсутствуют в хранимой политике доступа.
- Все эти параметры в хранимой политике доступа и нет в URI.
Однако нельзя указать параметр как для маркера SAS, так и для хранимой политики доступа.
Для создания или изменения хранимой политики доступа вызовите операцию Set ACL
для ресурса (см. Set Container ACL, Set Queue ACL, Set Table ACL или Set Share ACL) с текстом запроса, который указывает условия политики доступа. Текст запроса содержит уникальный подписанный идентификатор длиной до 64 символов. Текст запроса также включает необязательные параметры политики доступа, как показано ниже.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-char-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Можно задать не более пяти политик доступа к контейнеру, таблице, очереди или общей папке одновременно. Каждое поле SignedIdentifier
со своим уникальным полем Id
соответствует одной политике доступа. Попытка одновременно задать более пяти политик доступа приводит к тому, что служба возвращает код состояния 400 (недопустимый запрос).
Примечание
При создании или обновлении хранимой политики доступа к контейнеру, таблице, очереди или общей папке изменение может занять до 30 секунд. В течение этого интервала запросы к сигнатуре общего доступа, связанной с хранимой политикой доступа, могут завершиться ошибкой с кодом состояния 403 (запрещено), пока политика доступа не станет активной.
Вы не можете указать ограничения диапазона для сущностей таблиц (startpk
, startrk
, endpk
и endrk
) в хранимой политике доступа.
Изменение или отмена хранимой политики доступа
Чтобы изменить параметры хранимой политики доступа, можно вызвать операцию списка управления доступом (ACL) для типа ресурса, чтобы заменить существующую политику. В этой операции укажите новое время начала, время истечения срока действия или набор разрешений.
Например, если существующая политика предоставляет разрешения на чтение и запись в ресурсе, вы можете изменить ее так, чтобы всем последующим запросам предоставлялись только разрешения на чтение. В этом случае подписанный идентификатор новой политики, как указано в ID
поле , будет идентичен подписанному идентификатору политики, которую вы заменяете.
Чтобы отозвать хранимую политику доступа, ее можно удалить, переименовать, изменив подписанный идентификатор, или изменить время истечения срока действия на значение в прошлом. При изменении подписанного идентификатора связь между существующими подписями и хранимой политикой доступа нарушается. Изменение времени окончания срока действия на значение в прошлом приводит к истечению срока действия всех связанных подписей. Удаление или изменение хранимой политики доступа немедленно влияет на все подписанные url-адреса, связанные с ней.
Чтобы удалить одну политику доступа, вызовите операцию ресурса Set ACL
. Передайте набор подписанных идентификаторов, которые необходимо сохранить в контейнере. Чтобы удалить все политики доступа для ресурса, вызовите операцию Set ACL
с пустым текстом запроса.