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 |
Условие состоит из трех частей: оператор условия, ключ и значение. Операторы условий и ключи связаны друг с другом. Например:
Таблица 1 описывает предопределённые операторы условий, предоставляемые OBS.
Тип | Ключ | Описание |
|---|---|---|
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 |
Условие может содержать любой из трех типов ключей: Общие ключи, ключи, связанные с действиями Бакет, и ключи, связанные с действиями объекта.
Ключ | Тип | Описание |
|---|---|---|
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 |
Действие | Опциональный ключ | Описание | Описание |
|---|---|---|---|
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. | Нет |
Действие | Необязательный ключ | Описание |
|---|---|---|
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 версии. |