Помимо effect, principals, resources и actions, вы можете указать условия для политики бакета. Политика бакета вступает в силу только тогда, когда её выражения условий соответствуют значениям, содержащимся в запросе. Conditions является необязательным параметром. Вы можете определить, использовать ли этот параметр, исходя из требований сервиса.
Например, если учетная запись A должна получить полномочия полного контроля над объектом, загруженным учетной записью B в бакете example, вы можете указать, что запрос загрузки должен содержать ключ acl и установить эффект политики в Allow для учетной записи A. Полное выражение условия выглядит следующим образом:
Оператор условия | Ключ | Значение |
|---|---|---|
StringEquals | acl | bucket-owner-full-control |
Условие состоит из трех частей: condition operator, key и value. Операторы условий и ключи связаны друг с другом. Например:
Table 1 описывает предопределённые операторы условий, предоставляемые OBS.
Тип | Ключ | Описание |
|---|---|---|
Строка | 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.
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 |
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 |
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. Удаляет объект с указанным идентификатором версии. |