Advanced

Условия

Эта статья полезна?
Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

В дополнение к effect, principals, resources и actions, вы можете указать условия для политики Бакет. Политика Бакет вступает в силу только тогда, когда её условные выражения соответствуют значениям, содержащимся в запросе. Условия является необязательным параметром. Вы можете определить, следует ли использовать этот параметр, исходя из требований сервиса.

Например, если аккаунт A нужно предоставить с полными правами контроля для объекта, загруженного аккаунтом B в Бакет пример, вы можете указать, что запрос на загрузку должен содержать acl ключ и установить эффект политики в Allow для аккаунта A. Полное условное выражение выглядит следующим образом:

Оператор условия

Ключ

Значение

StringEquals

acl

bucket-owner-full-control

Условие состоит из трёх частей: оператор условия, ключ и значение. Операторы условий и ключи связаны друг с другом. Например:

  • Если выбран оператор условия строкового типа, например StringEquals, ключ может быть только строкового типа, например UserAgent.
  • Если выбран ключ типа дата, например CurrentTime, оператор условия может быть только типа дата, например DateEquals.

Таблица 1 описывает предопределённые операторы условий, предоставляемые OBS.

Таблица 1 Операторы условий

Тип

Ключ

Описание

Строка

StringEquals

Строгое совпадение. Краткая версия: streq

StringNotEquals

Строгое отрицательное совпадение. Краткая версия: strneq

StringEqualsIgnoreCase

Строгое совпадение, без учёта регистра. Краткая версия: streqi

StringNotEqualsIgnoreCase

Строгое отрицательное совпадение, без учёта регистра. Краткая версия: strneqi

StringLike

Слабое регистрозависимое совпадение. Значения могут включать подстановочный символ множественного символа (*) или подстановочный символ одиночного символа (?) в любой позиции строки. Краткая версия: strl

StringNotLike

Отрицательное свободное чувствительное к регистру сопоставление. Значения могут включать подстановочный символ для многосимвольного совпадения (*) или подстановочный символ для односимвольного совпадения (?) в любой части строки. Short version: strnl

Числовой

NumericEquals

Строгое сопоставление. Short version: numeq

NumericNotEquals

Строгое отрицательное сопоставление. Short version: numneq

NumericLessThan

"Less than" matching. Short version: numlt

NumericLessThanEquals

"Less than or equals" matching. Short version: numlteq

NumericGreaterThan

"Greater than" matching. Short version: numgt

NumericGreaterThanEquals

"Greater than or equals" matching. Short version: numgteq

Дата

DateEquals

Строгое сопоставление. Short version: dateeq

ДатаНеРавно

Строгое отрицательное совпадение. Краткая версия: dateneq

ДатаМеньше

Указывает, что дата раньше конкретной даты. Краткая версия: datelt

ДатаМеньшеИлиРавно

Указывает, что дата раньше или равна конкретной дате. Краткая версия: datelteq

ДатаПозже

Указывает, что дата позже конкретной даты. Краткая версия: dategt

ДатаПозжеИлиРавно

Указывает, что дата позже или равна конкретной дате. Краткая версия: dategteq

Булево

Bool

Строгое булево совпадение

IP address

IpAddress

Действует только для указанного IP address или диапазона IP address. Пример: x.x.x.x/24

NotIpAddress

Действует только на все, кроме указанного IP-адреса или диапазона IP-адресов. Example: x.x.x.x/24

Условие может содержать любой из трех типов ключей: общие ключи, ключи, связанные с действиями Бакет, и ключи, связанные с действиями объекта.

Таблица 2 Общие ключи

Ключ

Тип

Описание

CurrentTime

Дата

Указывает дату, когда запрос получен сервером. Формат даты должен соответствовать ISO 8601.

EpochTime

Числовой

Указывает время, когда запрос получен сервером, выраженное в секундах, прошедших с 01.01.1970 00:00:00 UTC, независимо от високосных секунд.

SecureTransport

Bool

Запрос, использовать ли SSL.

SourceIp

IP-адрес

IP-адрес источника, с которого отправляется запрос

UserAgent

Строка

Запрашиваемый клиентский программный агент

Referer

Строка

Указывает ссылку, с которой отправлен запрос.

SourceVpce

Строка

ID VPC эндпоинта, инициирующего запросы

SourceVpc

Строка

ID VPC, инициирующего запросы

ServiceAgency

Строка

Имя IAM‑агентства, которое делегирует облачные сервисы для доступа к OBS

Таблица 3 Ключи, связанные с действиями бакета

Действие

Необязательный ключ

Описание

Описание

ListBucket

prefix

Type: String. Список объектов, начинающихся с указанного префикса.

Если prefix, delimiter, и max-keys настроены, пары ключ‑значение, соответствующие условиям, должны быть указаны в операции List, чтобы политика бакета вступила в силу.

Например, если политика бакета (с условным оператором, установленным в NumericEquals, ключ к max-keys, и значение к 100) который позволяет анонимным пользователям читать данные, настроен для бакета, анонимные пользователи должны добавить ?max-keys=100 к концу имени домена бакета для перечисления объектов. Перечисленные объекты являются первыми 100 объектами в алфавитном порядке.

max-keys

Тип: Числовой. Задает максимальное количество объектов. Возвращённые объекты перечисляются в алфавитном порядке.

ListBucketVersions

префикс

Тип: Строка. Перечисляет многоверсионные объекты, имя которых начинается с указанного префикса.

max-keys

Тип: Числовой. Задает максимальное количество объектов. Возвращённые объекты перечисляются в алфавитном порядке.

PutBucketAcl

acl

Тип: Строка. Настраивает ACL бакета. Предустановленные ACL, которые могут быть включены в изменённый ACL бакета, содержат private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control, и log-delivery-write.

Нет

Таблица 4 Ключи, связанные с действиями над объектом

Действие

Необязательный ключ

Описание

PutObject

acl

Тип: String. Настраивает ACL объекта. При загрузке объекта, предустановленные ACL, которые могут быть включены в ACL объекта, содержат private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control, и log-delivery-write.

copysource

Тип: Строка. Указывает имена исходного бакета и исходного объекта. Формат: /bucketname/keyname

metadata-directive

Тип: Строка. Указывает, копировать ли метаданные из исходного объекта или заменить их метаданными в запросе. Значения: COPY|REPLACE

PutObjectAcl

acl

Тип: String. Конфигурирует объект ACL. При загрузке объекта, предустановленные ACL, которые могут быть включены в объект ACL, содержат private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control, и log-delivery-write.

GetObjectVersion

VersionId

Тип: String. Получает объект с указанным ID версии.

GetObjectVersionAcl

VersionId

Тип: String. Получает ACL объекта с указанным идентификатором версии.

PutObjectVersionAcl

VersionId

Тип: String. Указывает идентификатор версии.

acl

Тип: String. Настраивает ACL объекта с указанным идентификатором версии. При загрузке объекта, предустановленные ACL, которые могут быть включены в ACL объекта, содержат private, public-read, public-read-write, authenticated-read, бакет-owner-read, бакет-owner-full-control, and log-delivery-write.

DeleteObjectVersion

VersionId

Type: String. Удаляет объект с указанным ID версии.