Экспорт (0) Печать
Развернуть все

Задание списка управления доступом для контейнера

Обновлено: Февраль 2015 г.

Операция Set Container ACL задает разрешения для указанного контейнера. Разрешения показывают, имеется ли общий доступ к BLOB-объектам контейнера.

Начиная с версии 2009-09-19, разрешения контейнера предоставляют следующие возможности для управления доступом к контейнеру.

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

  • Открытый доступ для чтения только для больших двоичных объектов. Данные большого двоичного объекта в этом контейнере могут считываться через анонимный запрос, но данные контейнера доступны не будут. Клиенты не могут перечислять большие двоичные объекты в контейнере через анонимный запрос.

  • Нет публичного доступа для чтения. Контейнер и данные большого двоичного объекта могут быть прочитаны только владельцем учетной записи.

Set Container ACL также задает хранимую политику доступа для использования с подписанным URL-адресом. Дополнительные сведения см. в Использование хранимой политики доступа.

Весь общий доступ к контейнеру анонимен, как и доступ с использованием подписанного URL-адреса.

Запрос Set Container ACL можно составить следующим образом. Рекомендуется использовать протокол HTTPS. Замените myaccount именем нужной учетной записи хранения.

 

Метод URI запроса Версия HTTP

PUT

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=acl

HTTP/1.1

При построении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт службы BLOB-объектов как 127.0.0.1:10000, затем укажите имя эмулированной учетной записи хранилища.

 

Метод URI запроса Версия HTTP

PUT

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=acl

HTTP/1.1

Дополнительные сведения см. в Использование эмулятора хранилища Azure для разработки и тестирования.

В URI запроса могут быть заданы следующие дополнительные параметры.

 

Параметр Описание

timeout

Необязательно. Параметр timeout указывается в секундах. Дополнительные сведения см. в Задание времени ожидания для операций службы BLOB-объектов.

В следующей таблице перечислены обязательные и необязательные заголовки запросов.

 

Заголовок запроса Описание

Authorization

Обязательно. Указывает схему проверки подлинности, имя учетной записи и подпись. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

Date или x-ms-date

Обязательно. Задает время в формате UTC для запроса. Дополнительные сведения см. в Проверка подлинности для служб хранения Azure.

x-ms-version

Необязательно. Задает версию операции, используемой для этого запроса. Дополнительные сведения см. в Управление версиями для служб хранилища Azure.

x-ms-blob-public-access

Необязательно. Определяет, можно ли получить общий доступ к данным контейнера, а также уровень доступа. Возможные значения.

  • container: определяет полный общий доступ для чтения для контейнера и данных больших двоичных объектов. Клиенты могут перечислять большие двоичные объекты в контейнере с помощью анонимного запроса, но не могут перечислять контейнеры в пределах учетной записи хранения.

  • blob: Определяет общий доступ на чтение для BLOB-объектов. Данные большого двоичного объекта в этом контейнере могут считываться через анонимный запрос, но данные контейнера доступны не будут. Клиенты не могут перечислять большие двоичные объекты в контейнере через анонимный запрос.

Если этот заголовок не включен в запрос, то данные контейнера доступны только владельцу учетной записи.

Обратите внимание, что не допускается установка общего доступа к контейнеру в учетной записи хранилища Azure Premium.

x-ms-lease-id: <ID>

Необязательно, версия 2012-02-12 и более поздняя. Если задано, то Set Container ACL успешно завершится только в том случае, если аренда контейнера активна и совпадает с данным идентификатором. Если отсутствует активная аренда или идентификатор не совпадает, то будет возвращена ошибка 412 (не выполнено необходимое условие).

x-ms-client-request-id

Необязательно. Предоставляет сформированное клиентом непрозрачное значение с ограничением в 1 КБ, которое записывается в журналы аналитики, когда включено ведение журналов аналитики хранилища. Этот заголовок настоятельно рекомендуется использовать для соотнесения действий, выполняемых на стороне клиента, с запросами, получаемыми сервером. Дополнительные сведения см. в разделах Сведения о ведении журнала службы аналитики хранилища и Ведение журналов в Azure: использование журналов для отслеживания запросов к хранилищу.

Эта операция также поддерживает использование условных заголовков для выполнения операции при выполнении определенного условия. Дополнительные сведения см. в Указание условных заголовков для операций службы BLOB-объектов.

Можно указать хранимую политику доступа, предоставив уникальный идентификатор и политику доступа в тексте запроса для операции Set Container ACL.

Элемент SignedIdentifier включает уникальный идентификатор, как указано в элементе Id, и подробности политики доступа, как указано в элементе 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.blob.core.windows.net/mycontainer?restype=container&comp=acl HTTP/1.1

Request Headers:
x-ms-version: 2011-08-18
x-ms-date: Sun, 25 Sep 2011 00:42:49 GMT
x-ms-blob-public-access: container
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=

Request Body:
<?xml version="1.0" encoding="utf-8"?>
<SignedIdentifiers>
  <SignedIdentifier> 
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>
    <AccessPolicy>
      <Start>2009-09-28T08:49:37.0000000Z</Start>
      <Expiry>2009-09-29T08:49:37.0000000Z</Expiry>
      <Permission>rwd</Permission>
    </AccessPolicy>
  </SignedIdentifier>
</SignedIdentifiers>

Ответ включает код состояния HTTP и набор заголовков ответа.

Успешная операция возвращает код состояния 200 (ОК).

Сведения о кодах состояния см. в разделе Коды состояний и ошибок.

Ответ для этой операции включает следующие заголовки. Ответ может также включать дополнительные стандартные заголовки HTTP. Все стандартные заголовки соответствуют спецификации протокола HTTP/1.1.

 

Заголовок ответа Описание

ETag

ETag для контейнера. Если версия запроса 2011-08-18 или более поздняя, то значение ETag будет указано в кавычках.

Last-Modified

Возвращает дату и время последнего изменения контейнера. Дата в формате согласно RFC 1123. Дополнительные сведения см. в разделе Представление значений даты и времени в заголовках.

Любая операция, изменяющая контейнер, его свойства или метаданные, включая установку разрешений для контейнера, обновляет время последнего изменения. Операции с BLOB-объектами не влияют на время последнего изменения контейнера.

x-ms-request-id

Этот заголовок однозначно определяет выполненный запрос, его также можно использовать для устранения связанных с запросом неполадок. Дополнительные сведения см. в разделе Устранение неполадок при API-операциях.

x-ms-version

Указывает версию службы BLOB-объектов, используемую для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 и более поздним версиям.

Date

Значение даты и времени в формате UTC, сформированное службой и указывающее время, когда был инициирован ответ.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Transfer-Encoding: chunked
Date: Sun, 25 Sep 2011 22:42:55 GMT
ETag: "0x8CB171613397EAB"
Last-Modified: Sun, 25 Sep 2011 22:42:55 GMT
x-ms-version: 2011-08-18
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

Вызов этой операции доступен только владельцу учетной записи.

Только владелец учетной записи имеет доступ к ресурсам в определенном контейнере, если только владелец не задал для ресурсов этого контейнера общий доступ путем установки разрешений для контейнера или не сформировал подписанный URL-адрес для ресурса в этом контейнере.

При установке разрешений для контейнера существующие разрешения заменяются. Чтобы обновить разрешения контейнера, следует вызвать Получение списка управления доступом для контейнера для выборки всех политик доступа, сопоставленных с контейнером, изменить те политики доступа, ��акие требуется, а затем вызвать Set Container ACL с полным набором данных для обновления.

Разрешение анонимного общего доступа для данных контейнера

Чтобы включить анонимный общий доступ на чтение для данных контейнера, вызовите метод Set Container ACL с заданным для заголовка x-ms-blob-public-access значением container или blob. Для отключения анонимного доступа вызовите метод Set Container ACL без указания заголовка x-ms-blob-public-access.

Если задать для x-ms-blob-public-access значение blob, клиенты смогут анонимно вызывать следующие операции:

Если задать для x-ms-blob-public-access значение container, клиенты смогут анонимно вызывать следующие операции:

Установка политик доступа на уровне контейнера

Хранимая политика доступа может задавать время начала, время окончания и разрешения для подписей коллективного доступа, с которыми она сопоставлена. В зависимости от того, как требуется управлять доступом к ресурсу контейнера или BLOB-объекта, можно указать все эти параметры в рамках хранимой политики доступа и исключить их из URL-адреса для подписи коллективного доступа. Это позволяет изменить поведение связанной подписи в любое время, а также отменить ее. Или же вы можете указать один или несколько параметров в политике доступа, а остальные указать в URL-адресе. И наконец, вы можете указать все параметры в URL-адресе. В этом случае хранимую политику доступа можно использовать для отмены подписи, но не для изменения поведения подписи. См. дополнительные сведения о задании политик доступа в разделе Использование хранимой политики доступа.

Подпись общего доступа и хранимая политика доступа должны включать все поля, необходимые для проверки подлинности подписи. Если какие-либо обязательные поля отсутствуют, то запрос завершится ошибкой. Аналогично, если поле указано и в подписанном URL-адресе, и в хранимой политике доступа, запрос завершится ошибкой с кодом состояния 400 (неправильный запрос).

Для заданного контейнера в любое время можно установить самое большее 5 отдельных политик доступа. Если в тексте запроса передается больше 5 политик доступа, служба возвращает код состояния 400 (неправильный запрос).

Подписанный URL-адрес может быть сформирован для контейнера или BLOB-объекта независимо от того, доступны ли данные контейнера для анонимного доступа на чтение. Подписанный URL-адрес предоставляет больший контроль над тем, как, когда и кому будет доступен ресурс.

noteПримечание
Для ввода в действие хранимой политики доступа в контейнере после настройки может потребоваться до 30 секунд. В этот промежуток времени попытка применения подписанного URL-адреса, связанного с хранимой политикой доступа, будет завершаться ошибкой с кодом состояния 403 (запрещено), пока политика доступа не станет активной.

Показ:
© 2015 Microsoft