Поделиться через


Настройка списка 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 (запрещено), пока политика доступа не станет активной.

См. также раздел

Операции с ресурсами общей папки (Файлы Azure)