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

Условия

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

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

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

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

Ключ

Значение

StringEquals

acl

bucket-owner-full-control

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

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

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

Table 1 Condition operators

Тип

Ключ

Описание

Строка

StringEquals

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

StringNotEquals

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

StringEqualsIgnoreCase

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

StringNotEqualsIgnoreCase

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

StringLike

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

StringNotLike

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

Numeric

NumericEquals

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

NumericNotEquals

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

NumericLessThan

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

NumericLessThanEquals

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

NumericGreaterThan

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

NumericGreaterThanEquals

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

Date

DateEquals

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

DateNotEquals

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

DateLessThan

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

DateLessThanEquals

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

DateGreaterThan

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

DateGreaterThanEquals

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

Boolean

Bool

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

IP address

IpAddress

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

NotIpAddress

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

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

Table 2 Общие ключи

Key

Type

Description

CurrentTime

Date

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

EpochTime

Numeric

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

SecureTransport

Bool

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

SourceIp

IP address

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

UserAgent

String

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

Referer

String

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

SourceVpce

String

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

SourceVpc

String

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

ServiceAgency

String

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

Table 3 Ключи, связанные с действиями bucket

Action

Optional Key

Description

Description

ListBucket

prefix

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

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

Например, если политика bucket (с условным оператором, установленным в 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, bucket-owner-read, bucket-owner-full-control, и log-delivery-write.

None

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

Action

Optional Key

Description

PutObject

acl

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

GetObjectVersion

versionId

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

GetObjectVersionAcl

versionId

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

PutObjectVersionAcl

versionId

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

acl

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

DeleteObjectVersion

versionId

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