Настройка списка ACL общего доступа
Операция Set Share ACL
задает хранимую политику доступа для использования с подписанными URL-адресами. Дополнительные сведения о настройке политик доступа см. в статье Предоставление ограниченного доступа к ресурсам службы хранилища Azure с помощью подписанных URL-адресов.
Доступность протокола
Включенный протокол общей папки | Доступно |
---|---|
SMB | |
NFS |
Запрос
Запрос можно создать Set Share ACL
следующим образом. Рекомендуется использовать ПРОТОКОЛ HTTPS. Замените myaccount именем своей учетной записи хранения.
Метод | Универсальный код ресурса (URI) запроса | параметр "Версия HTTP" |
---|---|---|
PUT | https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl |
HTTP/1.1 |
Параметры универсального кода ресурса (URI)
В запросе URI можно указать следующие дополнительные параметры.
Параметр | Описание |
---|---|
timeout |
Необязательный элемент. Параметр timeout указывается в секундах. Дополнительные сведения см. в статье Установка времени ожидания для Файлы Azure операций. |
Заголовки запросов
В следующей таблице описаны обязательные и необязательные заголовки запросов:
Заголовок запроса | Описание |
---|---|
Authorization |
Обязательный. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure. |
Date или x-ms-date |
Обязательный. Задает время запроса в формате UTC. Дополнительные сведения см. в статье Авторизация запросов к Службе хранилища Azure. |
x-ms-version |
Требуется для всех авторизованных запросов. Задает версию операции, используемой для этого запроса. Эта операция доступна только в версии 2015-02-21 и более поздних. Дополнительные сведения см. в разделе Управление версиями для служб хранилища Azure. |
x-ms-client-request-id |
Необязательный элемент. Предоставляет созданное клиентом непрозрачное значение с ограничением в 1 кибибайт (КиБ), которое записывается в журналы Аналитика Службы хранилища при настройке ведения журнала. Мы настоятельно рекомендуем использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером. Дополнительные сведения см. в разделе Мониторинг Хранилище BLOB-объектов Azure. |
x-ms-lease-id:<ID> |
Требуется, если в целевой общей папке есть активная аренда. Доступно для версии 2020-02-10 и более поздних версий. Если запрос не содержит идентификатор аренды или он недопустим, операция завершается ошибкой с кодом состояния 412 (сбой условия). Если этот заголовок указан и в общей папке назначения сейчас нет активной аренды, операция завершается ошибкой с кодом состояния 412 (сбой условия). |
Текст запроса
Можно указать хранимую политику доступа, предоставив уникальный идентификатор и политику доступа в тексте запроса для операции Set Share ACL
.
Элемент SignedIdentifier
содержит уникальный идентификатор, указанный в элементе Id
.
SignedIdentifier
также включает сведения о политике доступа, как указано в элементе AccessPolicy
. Максимальная длина уникального идентификатора составляет 64 знака.
Поля Start
и Expiry
должны быть выражены через время по Гринвичу (UTC) и соответствовать действительному формату ISO 8061. Поддерживаемые форматы ISO 8061:
YYYY-MM-DD
YYYY-MM-DDThh:mmTZD
YYYY-MM-DDThh:mm:ssTZD
YYYY-MM-DDThh:mm:ss.fffffffTZD
Для части даты таких форматов YYYY
— представление года из четырех цифр, MM
— представление месяца из двух цифр, а DD
— представление дня из двух цифр. Для части hh
времени — представление часов в 24-часовой нотации, mm
двухзначное минутное представление, ss
двухзначное представление секунды и fffffff
семизначное миллисекундное представление. Конструктор времени T
отделяет части строки от даты и времени. В конструкторе TZD
часовых поясов указывается часовой пояс.
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>unique-64-character-value</Id>
<AccessPolicy>
<Start>start-time</Start>
<Expiry>expiry-time</Expiry>
<Permission>abbreviated-permission-list</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Пример запроса
Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare?restype=share&comp=acl HTTP/1.1
Request Headers:
x-ms-version: 2015-02-21
x-ms-date: <date>
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=
Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
<SignedIdentifier>
<Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
<AccessPolicy>
<Start>2015-07-01T08:49:37.0000000Z</Start>
<Expiry>2015-07-02T08:49:37.0000000Z</Expiry>
<Permission>rwd</Permission>
</AccessPolicy>
</SignedIdentifier>
</SignedIdentifiers>
Ответ
Ответ включает код состояния HTTP и набор заголовков ответа.
Код состояния
Успешная операция возвращает код состояния 200 (ОК).
Заголовки ответов
Ответ для этой операции включает следующие заголовки. Ответ также может включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.
Заголовок ответа | Описание |
---|---|
ETag |
Возвращает дату и время последнего изменения контейнера. Дата в формате согласно RFC 1123. Дополнительные сведения см. в разделе Представление значений даты и времени в заголовках. |
Last-Modified |
Любая операция, которая изменяет общую папку, ее свойства или метаданные, обновляет время последнего изменения, включая настройку разрешений файла. Операции с файлами не влияют на время последнего изменения общего ресурса. |
x-ms-request-id |
Уникально идентифицирует выполненный запрос и может использоваться для устранения неполадок с запросом. Дополнительные сведения см. в статье Устранение неполадок с операциями API. |
x-ms-version |
Указывает версию Файлы Azure, которая использовалась для выполнения запроса. |
Date или x-ms-date |
Значение даты и времени в формате UTC, указывающее время отправки ответа службой. |
x-ms-client-request-id |
Может использоваться для устранения неполадок запросов и соответствующих ответов. Значение этого заголовка равно значению заголовка x-ms-client-request-id , если он присутствует в запросе и содержит не более 1024 видимых символов ASCII. Если заголовок x-ms-client-request-id отсутствует в запросе, этот заголовок не будет присутствовать в ответе. |
Пример ответа
Response Status:
HTTP/1.1 200 OK
Response Headers:
Transfer-Encoding: chunked
Date: <date>
ETag: "0x8CB171613397EAB"
Last-Modified: <date>
x-ms-version: 2015-02-21
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0
Авторизация
Только владелец учетной записи может вызвать эту операцию.
Комментарии
Только владелец учетной записи может получить доступ к ресурсам в определенной общей папке, если не выполняется одно из следующих условий:
- Владелец указал, что ресурсы общего доступа доступны для общего доступа, задав разрешения на общий ресурс.
- Владелец выдал подписанный URL-адрес для ресурса в общей папке.
При установке разрешений для контейнера существующие разрешения заменяются. Чтобы обновить разрешения контейнера, вызовите Get Share ACL для получения всех политик доступа, связанных с контейнером. Измените политику доступа, которую вы хотите изменить, а затем вызовите Set Share ACL
с полным набором данных для выполнения обновления.
Установка политик доступа на уровне общего доступа
Хранимая политика доступа может указать время начала, срок действия и разрешения для подписанных url-адресов, с которыми она связана. В зависимости от того, как вы хотите управлять доступом к общей папке или файлу ресурса, вы можете:
- Укажите все эти параметры в хранимой политике доступа и опустите их в URL-адресе подписанного URL-адреса. Это позволяет изменить поведение связанной сигнатуры или отозвать его в любое время.
- Укажите один или несколько параметров политики доступа в хранимой политике доступа и укажите другие параметры в URL-адресе.
- Укажите все параметры в URL-адресе. В этом случае можно использовать хранимую политику доступа для отзыва подписи, но не для изменения ее поведения.
Дополнительные сведения о настройке политик доступа см. в статье Предоставление ограниченного доступа к ресурсам службы хранилища Azure с помощью подписанных URL-адресов.
Вместе подписанный URL-адрес и хранимая политика доступа должны включать все поля, необходимые для авторизации подписи. Если какие-либо обязательные поля отсутствуют, то запрос завершится ошибкой. Аналогично, если поле указано и в подписанном URL-адресе, и в хранимой политике доступа, запрос завершится ошибкой с кодом состояния 400 (неправильный запрос). Дополнительные сведения о полях, составляющих подписанный URL-адрес, см. в разделе Использование подписанного URL-адреса.
Вы можете задать не более пяти отдельных политик доступа к общей папке в любое время. Если в тексте запроса передается более пяти политик доступа, служба возвращает код состояния 400 (недопустимый запрос).
Подписанный URL-адрес может быть выдан в общей папке или файле независимо от того, доступны ли данные контейнера для анонимного доступа на чтение. Подписанный URL-адрес обеспечивает больший контроль над тем, как, когда и кому предоставляется доступ к ресурсу.
Вы не можете задать или получить политику доступа для snapshot общей папки. При попытке задать политику доступа служба возвращает код состояния 400 (InvalidQueryParameterValue).
Примечание
При создании хранимой политики доступа в контейнере может потребоваться до 30 секунд. В течение этого интервала подписанный URL-адрес, связанный с хранимой политикой доступа, будет завершаться ошибкой с кодом состояния 403 (запрещено), пока политика доступа не станет активной.