Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Object Storage
  • Справочник Terraform
    • Аутентификация в API
      • Как пользоваться API
      • Подписывание запросов
        • Все сервисы и методы
          • Все методы
          • GetBucketPolicy
          • PutBucketPolicy
          • DeleteBucketPolicy
          • Схема данных
          • Действия
          • Условия
        • Общие заголовки запросов
        • Общие заголовки ответов
        • Ответы
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • Операторы условия
  • Логические операторы
  • Операторы даты и времени
  • Операторы IP-адресов
  • Числовые операторы
  • Строковые операторы
  • Оператор IfExists
  • Оператор Null
  1. Справочник API
  2. REST (совместимый с Amazon S3)
  3. REST
  4. Bucket Policy
  5. Условия

Условия

Статья создана
Yandex Cloud
Обновлена 26 декабря 2024 г.
  • Операторы условия
    • Логические операторы
    • Операторы даты и времени
    • Операторы IP-адресов
    • Числовые операторы
    • Строковые операторы
    • Оператор IfExists
    • Оператор Null

Условия определяют случаи, в которых действует правило.

Ключ условия Описание
aws:principaltype Задает тип сущности, к которой делается запрос.
aws:referer Сравнивает Referer запроса с заданным в политике.
aws:securetransport Определяет, был ли запрос отравлен с использованием SSL-шифрования.
aws:sourceip Сравнивает IP-адрес, с которого пришел запрос, а также IP-адреса обратных прокси-серверов, например переданных в заголовке X-Forwarded-For, с заданными в политике.

Если хотя бы один из IP-адресов совпадает c заданными в политике, условие считается выполненным. Подробнее см. Доступ к бакету через цепочку обратных прокси-серверов.
aws:useragent Сравнивает UserAgent запроса с заданными в политике.
aws:userid Сравнивает идентификатор пользователя в IAM с заданным в политике.
s3:authtype Ограничивает входящие запросы заданным методом аутентификации.
s3:delimiter Задает разделитель, который должны включать запросы пользователей.
s3:max-keys Задает максимальное количество ключей, возвращаемых на запрос ListBucket.
s3:prefix Ограничивает доступ по префиксу имени ключа.
s3:signatureage Определяет продолжительность времени, в течение которого действительна подпись запроса аутентификации.
s3:signatureversion Задает версию подписки AWS для запросов аутентификации.
s3:versionid Задает доступ к определенной версии объекта.
s3:x-amz-acl Требует заголовок X-Amz-Acl с заданным ACL в запросе.
s3:x-amz-content-sha256 Запрещает неподписанное содержимое в запросе.
s3:x-amz-copy-source Ограничивает источник копирования определенным бакетом, префиксом или объектом.
s3:x-amz-grant-full-control Требует заголовок X-Amz-Grant-Full-Control (полный доступ) в запросе.
s3:x-amz-grant-read Требует заголовок X-Amz-Grant-Read (доступ на чтение) в запросе.
s3:x-amz-grant-read-acp Требует заголовок X-Amz-Grant-Read (доступ на чтение ACL) в запросе.
s3:x-amz-grant-write Требует заголовок X-Amz-Grant-Write (доступ на запись) в запросе.
s3:x-amz-grant-write-acp Требует заголовок X-Amz-Grant-Write (доступ на запись ACL) в запросе.
s3:x-amz-metadata-directive Задает принудительный выбор копирования или замены при копировании объектов.
s3:x-amz-server-side-encryption Требует шифрования на стороне сервера.
s3:x-amz-server-side-encryption-aws-kms-key-id Требует определенный ключ для шифрования на стороне сервера.
s3:x-amz-storage-class Ограничивает доступ по классу хранилища.
s3:x-amz-website-redirect-location Позволяет перенаправить запросы к объекту на другой объект или URL, когда сайт сконфигурирован как статический сайт.
yc:private-endpoint-id Задает доступ через сервисные подключения VPC. Содержит идентификатор сервисного подключения.

Вы можете настроить для правила одновременно несколько условий и задать для каждого условия несколько ключей. При этом такие условия и их ключи будут проверяться с логикой И. То есть для выполнения правила запрос должен будет соответствовать сразу всем указанным признакам.

Примеры политик, в которых условия проверяются с логикой И
Несколько условий в одном правиле
Несколько ключей в одном условии
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::sample-bucket/*",
    "Condition": {
      "Bool": {
        "aws:sourceip": "192.168.1.1"
      }
    },
    "Condition": {
      "Bool": {
        "aws:userid": "ajelcjkv67ar********"
      }
    }
  }
}
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::sample-bucket/*",
    "Condition": {
      "Bool": {
        "aws:sourceip": "192.168.1.1",
        "aws:userid": "ajelcjkv67ar********"
      }
    }
  }
}

Для каждого ключа условия вы можете задать одновременно несколько значений. При этом такие значения будут проверяться с логикой ИЛИ. То есть для выполнения правила запрос должен будет соответствовать любому из заданных значений ключа условия.

Пример политики, в которой условия проверяются с логикой ИЛИ
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": "*",
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::sample-bucket/*",
    "Condition": {
      "Bool": {
        "aws:sourceip": [
          "192.168.1.1",
          "192.168.1.2"
        ]
      }
    }  
  }
}

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

Операторы условия применяются для проверки соответствия значения ключа в условии политики со значением в контексте запроса.

Логические операторыЛогические операторы

Логические операторы позволяют создавать условия для сравнения ключа со логическим значением true или false.

Оператор условия Описание
Bool Соответствует заданному логическому значению.

Операторы даты и времениОператоры даты и времени

Операторы даты и времени позволяют создавать условия для сравнения ключа со значением даты и времени.

Оператор условия Описание
DateEquals Соответствует заданной дате.
DateGreaterThan Дата и время больше указанных.
DateGreaterThanEquals Дата и время соответствует или больше указанных.
DateLessThan Дата и время меньше указанных.
DateLessThanEquals Дата и время соответствует или меньше указанных.
DateNotEquals Не соответствует заданной дате.

Операторы IP-адресовОператоры IP-адресов

Операторы IP-адресов позволяют создавать условия для сравнения ключа с IP-адресом хоста или диапазоном IP-адресов в формате CIDR.

Оператор условия Описание
IPAddress Определенный IP-адрес или диапазон IP-адресов.
NotIPAddress Все IP-адреса, кроме указанного IP-адреса или диапазона IP-адресов.

Числовые операторыЧисловые операторы

Числовые операторы позволяют создавать условия для сравнения ключа с числовым значением типа integer или decimal.

Оператор условия Описание
NumericEquals Значение равно заданному.
NumericGreaterThan Значение больше заданного.
NumericGreaterThanEquals Значение больше либо равно заданного.
NumericLessThan Значение меньше заданного.
NumericLessThanEquals Значение меньше либо равно заданного.
NumericNotEquals Значение не равно заданному.

Строковые операторыСтроковые операторы

Строковые операторы позволяют создавать условия для сравнения ключа со строковым значением.

Оператор условия Описание
StringEquals Значение соответствует, учитывается регистр символов.
StringEqualsIgnoreCase Значение соответствует, не учитывается регистр символов.
StringLike Значение соответствует. В значениях можно использовать знаки подстановки:
- * – несколько символов.
- ? – один символ.
StringNotEquals Значение не соответствует, учитывается регистр символов.
StringNotEqualsIgnoreCase Значение не соответствует, не учитывается регистр символов.
StringNotLike Значение не соответствует. В значениях можно использовать знаки подстановки:
- * – несколько символов.
- ? – один символ.

Оператор IfExistsОператор IfExists

К имени любого оператора (кроме Null) можно добавить IfExists — например, BoolIfExists. Элемент условия с подобным оператором означает:

  • Если ключ политики присутствует в контексте запроса, ключ будет обработан, как указано в политике.
  • Если ключ отсутствует, элемент примет значение true.

Оператор NullОператор Null

Результат оператора Null принимает значение true, если ключ условия отсутствует в запросе в момент аутентификации. Если ключ присутствует и его значение задано, результат равен false.

См. такжеСм. также

  • Отладка запросов с помощью утилиты AWS CLI
  • Пример отправки подписанного запроса с помощью утилиты curl
  • Пример кода для генерации подписи

Была ли статья полезна?

Предыдущая
Действия
Следующая
Общие заголовки запросов
Проект Яндекса
© 2025 ООО «Яндекс.Облако»