Облачная платформаAdvanced

Conditions

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

In addition to effect, principals, resources, and actions, you can specify conditions for a Бакет policy. A Бакет policy takes effect only when its condition expressions match values contained in the request. Conditions is an optional parameter. You can determine whether to use this parameter based on service requirements.

For example, if account A needs to be granted with full control permissions for an object uploaded by account B in Бакет пример, you can specify that the upload request must contain the acl key and set the policy effect to Allow for account A. The complete condition expression is as follows:

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

Ключ

Значение

StringEquals

acl

Бакет-owner-full-control

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

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

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

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

Тип

Ключ

Описание

String

StringEquals

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

StringNotEquals

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

StringEqualsIgnoreCase

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

StringNotEqualsIgnoreCase

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

StringLike

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

StringNotLike

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

Числовой

NumericEquals

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

NumericNotEquals

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

NumericLessThan

"Less than" сопоставление. Краткая версия: numlt

NumericLessThanEquals

"Less than or equals" сопоставление. Краткая версия: numlteq

NumericGreaterThan

"Greater than" сопоставление. Краткая версия: numgt

NumericGreaterThanEquals

"Greater than or equals" сопоставление. Краткая версия: numgteq

Дата

DateEquals

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

DateNotEquals

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

DateLessThan

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

DateLessThanEquals

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

DateGreaterThan

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

DateGreaterThanEquals

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

Boolean

Bool

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

IP-адрес

IpAddress

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

NotIpAddress

Вступает в силу для всех, кроме указанного IP address или диапазона IP address. Example: x.x.x.x/24

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

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

Ключ

Тип

Описание

CurrentTime

Дата

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

EpochTime

Числовой

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

SecureTransport

Bool

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

SourceIp

IP-адрес

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

UserAgent

String

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

Referer

String

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

SourceVpce

String

Идентификатор VPC‑Эндпоинта, инициирующего запросы

SourceVpc

String

Идентификатор VPC, инициирующего запросы

ServiceAgency

String

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

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

Действие

Опциональный ключ

Описание

Описание

ListBucket

префикс

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

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

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

max-keys

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

ListBucketVersions

prefix

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

max-keys

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

PutBucketAcl

acl

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

Нет

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

Действие

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

Описание

PutObject

acl

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

copy-source

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

metadata-directive

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

PutObjectAcl

acl

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

GetObjectVersion

versionId

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

GetObjectVersionAcl

versionId

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

PutObjectVersionAcl

versionId

Тип: String. Указывает version ID.

acl

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

DeleteObjectVersion

versionId

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