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


Настройка ACL таблицы

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

Заметка

Операция Set Table ACL доступна в версии 2012-02-12 и более поздних версиях.

Заметка

Список управления доступом (ACL) — это список записей управления доступом (ACEs). Каждый ACE в ACL определяет доверенного лица и указывает права доступа разрешены, отклонены или проверены для этого доверенного лица. Дополнительные сведения см. в списках управления доступом.

Просьба

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

Метод URI запроса ВЕРСИЯ HTTP
PUT https://myaccount.table.core.windows.net/mytable?comp=acl HTTP/1.1

URI службы эмулированного хранилища

При выполнении запроса к эмулированной службе хранилища укажите имя узла эмулятора и порт хранилища таблиц Azure как 127.0.0.1:10002. Затем добавьте эмулированное имя учетной записи хранения.

Метод URI запроса ВЕРСИЯ HTTP
PUT http://127.0.0.1:10002/devstoreaccount1/mytable?comp=acl HTTP/1.1

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

Параметры URI

Можно указать следующие дополнительные параметры в URI запроса:

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

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

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

Заголовок запроса Описание
Authorization Обязательно. Указывает схему авторизации, имя учетной записи и подпись. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
Date или x-ms-date Обязательно. Указывает универсальное время (UTC) для запроса. Дополнительные сведения см. в статье Авторизация запросов к службе хранилища Azure.
x-ms-version Необязательный. Указывает версию операции, используемой для этого запроса. Дополнительные сведения см. в разделе Управление версиями служб хранилища Azure.
x-ms-client-request-id Необязательный. Предоставляет созданное клиентом непрозрачное значение с ограничением символов 1-kibibyte (KiB), записанным в журналах Аналитики хранилища при настройке ведения журнала. Настоятельно рекомендуется использовать этот заголовок для сопоставления действий на стороне клиента с запросами, получаемыми сервером.

Текст запроса

Чтобы указать хранимую политику доступа, укажите уникальный идентификатор и политику доступа в тексте запроса для операции Set Table 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.ffffffTZD

Для части этих форматов YYYY представляет собой четырехзначное представление года, MM является двухзначным представлением месяца, а DD — двухзначное представление дня. Для части времени hh является представлением часа в 24-часовой нотации, mm является двухзначным представлением минуты, ss является двухзначным вторым представлением, и ffffff является шестизначным миллисекундным представлением. Конструктор времени 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.table.core.windows.net/mytable?comp=acl HTTP/1.1  
  
Request Headers:  
x-ms-version: 2013-08-15  
x-ms-date: Mon, 25 Nov 2013 00:42:49 GMT  
Authorization: SharedKey myaccount:V47F2tYLS29MmHPhiR8FyiCny9zO5De3kVSF0RYQHmo=  
  
Request Body:  
<?xml version="1.0" encoding="utf-8"?>  
<SignedIdentifiers>  
  <SignedIdentifier>   
    <Id>MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=</Id>  
    <AccessPolicy>  
      <Start>2013-11-26T08:49:37.0000000Z</Start>  
      <Expiry>2013-11-27T08:49:37.0000000Z</Expiry>  
      <Permission>raud</Permission>  
    </AccessPolicy>  
  </SignedIdentifier>  
</SignedIdentifiers>  
  

Ответ

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

Код состояния

Успешная операция возвращает код состояния 204 (нет содержимого).

Сведения о кодах состояния см. в коды состояния и коды ошибок.

Заголовки ответа

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

Заголовок ответа Описание
x-ms-request-id Уникально идентифицирует выполненный запрос. Его также можно использовать для устранения неполадок запроса. Дополнительные сведения см. в статье Устранение неполадок с операциями API.
x-ms-version Указывает версию хранилища таблиц, которая используется для выполнения запроса. Этот заголовок возвращается для запросов к версии 2009-09-19 и более поздних версий.
Date Значение даты и времени в формате UTC, указывающее время отправки ответа службой.
x-ms-client-request-id Можно использовать для устранения неполадок запросов и соответствующих ответов. Значение этого заголовка равно значению заголовка x-ms-client-request-id, если оно присутствует в запросе, а значение — не более 1024 видимых символов ASCII. Если в запросе отсутствует заголовок x-ms-client-request-id, этот заголовок не будет присутствовать в ответе.

Пример ответа

Response Status:  
HTTP/1.1 204 No Content  
  
Response Headers:  
Transfer-Encoding: chunked  
Date: Mon, 25 Nov 2013 22:42:55 GMT  
x-ms-version: 2013-08-15  
Server: Windows-Azure-Table/1.0 Microsoft-HTTPAPI/2.0  
  

Авторизация

Авторизация требуется при вызове любой операции доступа к данным в службе хранилища Azure. Вы можете авторизовать операцию Set Table ACL с помощью идентификатора Microsoft Entra или общего ключа.

Чтобы авторизовать операцию Set Table ACL с помощью идентификатора Microsoft Entra, субъект безопасности должен иметь пользовательскую роль RBAC Azure, которая включает в себя следующее действие RBAC: Microsoft.Storage/storageAccounts/tableServices/tables/setAcl/action.

Важный

Корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов в службу хранилища Azure. Идентификатор Microsoft Entra обеспечивает более высокую безопасность и удобство использования по сравнению с авторизацией общего ключа.

Замечания

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

Установка хранимых политик доступа

Хранимая политика доступа может указать время начала, срок действия и разрешения для подписей общего доступа, с которыми он связан. В зависимости от способа управления доступом к общей папке или ресурсу файлов можно:

  • Укажите все эти параметры в хранимой политике доступа и опустите их из URL-адреса для подписанного URL-адреса подписанного URL-адреса. Это позволяет изменять поведение связанной подписи или отменять его в любое время.
  • Укажите один или несколько параметров политики доступа в хранимой политике доступа и укажите другие параметры в URL-адресе.
  • Укажите все параметры в URL-адресе. В этом случае можно использовать хранимую политику доступа для отзыва подписи, но не для изменения его поведения.

Дополнительные сведения об установке политик доступа см. в статье Определение хранимой политики доступа.

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

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

Заметка

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

См. также

Определение хранимой политики доступа
Создание и использование подписанного URL-адреса
Делегирование доступа с помощью подписанного URL-адреса
получение таблицы ACL
Авторизация запросов в службу хранилища Azure
коды состояния и ошибок