Yandex Cloud
Поиск
Связаться с экспертомПопробовать бесплатно
  • Кейсы
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Кейсы
  • Документация
  • Блог
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»
Yandex Object Storage
    • Обзор
    • Бакет
    • Объект
    • Версионирование бакета
    • Блокировка версии объекта (object lock)
    • Частичное изменение объекта
    • Шифрование
    • Жизненные циклы объектов
    • CORS
    • Хостинг статических сайтов
    • Подписанные (pre-signed) URL
    • Составная (multipart) загрузка
    • Список управления доступом (ACL)
    • Политика доступа (Bucket Policy)
    • Загрузка файла через HTML-форму
    • Класс хранилища
    • Механизм логирования действий с бакетом
    • Резервное копирование
    • Протокол TLS
    • Метки
    • Язык запросов S3 Select
    • Квоты и лимиты
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи бакета
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

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

  • Из чего состоит политика
  • Доступ к бакету через консоль управления
  • Доступ к бакету через цепочку обратных прокси-серверов
  • Обязательная условная запись объектов с помощью политики доступа
  • Примеры конфигурации
  • См. также
  1. Концепции
  2. Политика доступа (Bucket Policy)

Политика доступа (bucket policy)

Статья создана
Yandex Cloud
Обновлена 26 февраля 2026 г.
  • Из чего состоит политика
  • Доступ к бакету через консоль управления
  • Доступ к бакету через цепочку обратных прокси-серверов
  • Обязательная условная запись объектов с помощью политики доступа
  • Примеры конфигурации
    • См. также

В Object Storage реализовано несколько механизмов для управления доступом к ресурсам. Алгоритм взаимодействия этих механизмов см. в Обзор способов управления доступом в Object Storage.

Политики доступа устанавливают права на действия с бакетами, объектами и группами объектов.

Политика срабатывает, когда пользователь делает запрос к какому-либо ресурсу. В результате срабатывания политики запрос либо выполняется, либо отклоняется.

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

Примечание

Если к бакету применена политика доступа без правил, то доступ будет запрещен всем пользователям. Чтобы отключить проверки запросов по политике доступа, удалите ее.

Политику доступа можно настроить в консоли управления или описать в формате JSON по специальной схеме, чтобы передать через один из программных инструментов — Yandex Cloud CLI, AWS CLI, Terraform или API. Подробнее об управлении политикой см. в инструкции.

Если вы хотите настроить политику доступа для бакета и подключаться к нему из кластера Apache Hive™ Metastore или Yandex Managed Service for Apache Airflow™, вам потребуется дополнительная настройка инфраструктуры. Подробнее см. в инструкциях для Apache Hive™ Metastore и Managed Service for Apache Airflow™.

Из чего состоит политикаИз чего состоит политика

Политика доступа состоит из правил, а правило — из следующих базовых элементов:

Ресурс

Бакет, объект в бакете (<имя_бакета>/some/key) или префикс (<имя_бакета>/some/path/*), в том числе пустой префикс для обозначения всех объектов в бакете (<имя_бакета>/*). В правиле можно указать несколько ресурсов.

Примечание

Ресурс бакета не включает в себя ресурсы всех его объектов. Чтобы правило в политике доступа относилось к бакету и всем объектам, их нужно указать как отдельные ресурсы: например, samplebucket и samplebucket/*.

Если вы описываете политику в формате JSON, у ресурса должен быть префикс arn:aws:s3:::, например arn:aws:s3:::<имя_бакета>.

Если имя ресурса содержит символ ?, * или $, поставьте перед таким символом знак $, а сам символ заключите в фигурные скобки {}. Например, имени бакета my?bucket будет соответствовать запись my${?}bucket.

Действие

Набор операций над ресурсом, который будет запрещен или разрешен правилом. Подробнее читайте в разделе Действия.

Результат

Запрет или разрешение запрошенного действия. Сначала проверяется попадание запроса в фильтр с действием Deny, при совпадении запрос отклоняется и дальнейшие проверки не проводятся. При попадании в фильтр с действием Allow запрос разрешается. Если запрос не попал ни в один из фильтров, то запрос отклоняется.

Принципал

Получатель запрошенного разрешения (субъект). Это может быть пользователь IAM, федеративный пользователь, сервисный аккаунт, анонимный пользователь или группа пользователей. Возможные значения:

  • "*".
  • "CanonicalUser": "<идентификатор_субъекта>".
Условие

Определение случаев, когда действует правило.

Примечание

Для условия aws:sourceip поддержан особый порядок проверки IP-адресов обратных прокси-серверов.

Если для правила задано одновременно несколько условий или внутри одного условия задано одновременно несколько ключей, то такие условия и ключи применяются с логикой И.

Если для одного ключа условия задано одновременно несколько значений, то такие значения применяются с логикой ИЛИ.

Подробнее читайте в разделе Условия.

Доступ к бакету через консоль управленияДоступ к бакету через консоль управления

Если для бакета настроена политика доступа, то по умолчанию доступ к бакету через консоль управления Yandex Cloud запрещен. Чтобы разрешить доступ к бакету, нужно добавить в секцию Statement политики доступа правило, разрешающее любые запросы к ресурсам <имя_бакета>/* и <имя_бакета> через консоль управления.

Пример правила для конкретного пользователя Yandex Cloud:

{
  "Sid": "AllowAWSServices",
  "Effect": "Allow",
  "Principal": "*",
  "Action": "s3:*",
  "Resource": [
    "arn:aws:s3:::<имя_бакета>/*",
    "arn:aws:s3:::<имя_бакета>"
   ],
  "Condition": {
    "Bool": {
      "aws:PrincipalIsAWSService": "true"
    }
  }
}

Идентификатор пользователя можно получить по инструкции в документации Yandex Identity and Access Management.

Примечание

Чтобы открыть доступ через консоль управления, также можно воспользоваться кнопкой Добавить правило для доступа из консоли при создании или редактировании политики доступа.

Доступ к бакету через цепочку обратных прокси-серверовДоступ к бакету через цепочку обратных прокси-серверов

Чтобы обеспечить работу Object Storage с запросами, переданными через цепочку обратных прокси-серверов, в условии aws:sourceip проверяется не только IP-адрес, с которого пришел запрос, но и IP-адреса обратных прокси-серверов, например переданных в заголовке X-Forwarded-For.

Сначала запрос проверятся на соответствие правилам Deny политики доступа. Если хотя бы один из IP-адресов попадает под правило Deny, запрос отклоняется. Дальнейшие проверки не проводятся.

Далее запрос проверятся на соответствие правилам Allow. Если хотя бы один из IP-адресов попадает под правило Allow, запрос разрешается.

Пример настройки политики доступа к бакету через цепочку обратных прокси-серверов
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "the-allowing-rule",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "arn:aws:s3:::sample-bucket/*",
      "Condition": {
        "IpAddress": {
          "aws:sourceip": [
            "192.168.1.1",
            "192.168.1.2"
          ]
        }
      }
    },
    {
      "Sid": "the-denying-rule",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "*",
      "Resource": "arn:aws:s3:::sample-bucket/*",
      "Condition": {
        "IpAddress": {
          "aws:sourceip": [
            "192.168.1.11",
            "192.168.1.12"
          ]
        }
      }
    }
  ]
}

Если к бакету поступит запрос, содержащий заголовок X-Forwarded-For: 192.168.1.1, 192.168.1.2, 192.168.1.12, то такой запрос будет отклонен, поскольку в заголовке содержится IP-адрес, указанный в правиле с действием Deny.

Если к бакету поступит запрос, содержащий заголовок X-Forwarded-For: 192.168.2.100, 192.168.2.1, 192.168.1.2, то такой запрос будет разрешен, поскольку в заголовке нет IP-адресов, указанных в правиле с действием Deny, но есть IP-адрес, указанный в правиле с действием Allow.

Обязательная условная запись объектов с помощью политики доступаОбязательная условная запись объектов с помощью политики доступа

Условная запись объектов позволяет избежать случайной перезаписи и конфликтов при одновременных загрузках. По умолчанию использование условий записи является необязательным — клиент может передавать заголовки If-Match и If-None-Match по своему усмотрению.

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

Чтобы проверять наличие заголовка If-None-Match или If-Match при создании новых объектов, используйте условия s3:if-match и s3:if-none-match с оператором Null. Вы можете применить их к методам upload и completeUpload.

Условия можно распространить:

  • на весь бакет:

    "Resource": ["arn:aws:s3:::<имя_бакета>/*"],
    
  • на конкретный префикс:

    "Resource": ["arn:aws:s3:::<имя_бакета>/<префикс>/*"],
    

Если условие не выполнено, сервис возвращает ошибку 403 Access Denied.

См. примеры конфигураций для условной записи объектов через политику доступа.

Примеры конфигурацииПримеры конфигурации

  • Разрешить анонимному пользователю чтение объектов бакета по зашифрованному подключению
  • Разрешить скачивать объекты только из указанного диапазона IP-адресов
  • Запретить скачивать объекты с указанного IP-адреса
  • Предоставить разным пользователям полный доступ к определенным папкам
  • Предоставить каждому пользователю или сервисному аккаунту полный доступ к папке
  • Запретить использовать любые инструменты, кроме консоли управления
  • Разрешить запись объектов только с обязательным использованием условий записи

Правило, которое разрешает анонимному пользователю чтение объектов бакета по зашифрованному подключению:Правило, которое разрешает анонимному пользователю чтение объектов бакета по зашифрованному подключению:

{
  "Id": "epd4limdp3dg********",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "f1qqoehl1q53********",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<имя_бакета>/*",
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      }
    }
  ]
}

Правило, которое разрешает скачивать объекты только из указанного диапазона IP-адресов:Правило, которое разрешает скачивать объекты только из указанного диапазона IP-адресов:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<имя_бакета>/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "100.101.102.128/30"
        }
      }
    }
  ]
}

Правило, которое запрещает скачивать объекты с указанного IP-адреса:Правило, которое запрещает скачивать объекты с указанного IP-адреса:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": "arn:aws:s3:::<имя_бакета>/*"
    },
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::<имя_бакета>/*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": "100.101.102.103"
        }
      }
    }
  ]
}

Правило, которое дает разным пользователям полный доступ только к определенным папкам, каждому пользователю — к своей:Правило, которое дает разным пользователям полный доступ только к определенным папкам, каждому пользователю — к своей:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid":"User1PermissionsResource",
      "Effect":"Allow",
      "Principal": {
        "CanonicalUser": "<идентификатор_пользователя>"
      },
      "Action": "*",
      "Resource":["arn:aws:s3:::<имя_бакета>/user1path/*"]
    },
    {
      "Sid":"User1PermissionsPrefix",
      "Effect":"Allow",
      "Principal": {
          "CanonicalUser": "<идентификатор_пользователя>"
      },
      "Action": "s3:ListBucket",
      "Resource":["arn:aws:s3:::<имя_бакета>"],
      "Condition": {
        "StringLike": {
          "s3:prefix": "user1path/*"
        }
      }
    },
    {
      "Sid":"User2PermissionsResource",
      "Effect":"Allow",
      "Principal": {
        "CanonicalUser": "<идентификатор_пользователя>"
      },
      "Action": "*",
      "Resource":["arn:aws:s3:::<имя_бакета>/user2path/*"]
    },
    {
      "Sid":"User2PermissionsPrefix",
      "Effect":"Allow",
      "Principal": {
        "CanonicalUser": "<идентификатор_пользователя>"
      },
      "Action": "s3:ListBucket",
      "Resource":["arn:aws:s3:::<имя_бакета>"],
      "Condition": {
        "StringLike": {
          "s3:prefix": "user2path/*"
        }
      }
    }
  ]
}

Правило, которое дает каждому пользователю и сервисному аккаунту полный доступ к папке с названием, равным идентификатору пользователя или сервисного аккаунта:Правило, которое дает каждому пользователю и сервисному аккаунту полный доступ к папке с названием, равным идентификатору пользователя или сервисного аккаунта:

{
  "Version":"2012-10-17",
  "Statement":[
    {
      "Sid": "OwnDirPermissions",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": ["arn:aws:s3:::<имя_бакета>/${aws:userid}/*"]
    }
  ]
}

Правило, которое запрещает использование любых инструментов, кроме консоли управления:Правило, которое запрещает использование любых инструментов, кроме консоли управления:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyAllExceptAWSServices",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::thatsroman-policy2"
      ],
      "Condition": {
        "Bool": {
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }, 
    {
      "Sid": "AllowAWSServices",
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::thatsroman-policy2"
      ],
      "Condition": {
        "Bool": {
          "aws:PrincipalIsAWSService": "true"
        }
      }
    } 
  ]
}

Правила для обязательного использования условной записи объектовПравила для обязательного использования условной записи объектов

Правило, которое разрешает доступ всем пользователям ко всем объектам в бакете только при наличии заголовка If-None-Match в запросеПравило, которое разрешает доступ всем пользователям ко всем объектам в бакете только при наличии заголовка If-None-Match в запросе
{
  "Version":"2025-12-24",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": [
      "arn:aws:s3:::<имя_бакета>/*"
      ],
      "Condition": {
        "Null": {
          "s3:if-none-match": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": [
        "arn:aws:s3:::<имя_бакета>/*",
        "arn:aws:s3:::<имя_бакета>"
      ]
    }
  ]
}
Правило, которое разрешает доступ всем пользователям ко всем объектам в бакете только при наличии заголовка If-Match в запросеПравило, которое разрешает доступ всем пользователям ко всем объектам в бакете только при наличии заголовка If-Match в запросе
{
  "Version":"2025-12-25",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": [
      "arn:aws:s3:::<имя_бакета>/*"
      ],
      "Condition": {
        "Null": {
          "s3:if-match": "true"
        }
      }
    },
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "*",
      "Resource": [
        "arn:aws:s3:::<имя_бакета>/*",
        "arn:aws:s3:::<имя_бакета>"
      ]
    }
  ]
}

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

  • Управление политикой доступа (bucket policy)

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

Предыдущая
Список управления доступом (ACL)
Следующая
Загрузка файла через HTML-форму
Создавайте контент и получайте гранты!Готовы написать своё руководство? Участвуйте в контент-программе и получайте гранты на работу с облачными сервисами!
Подробнее о программе
Проект Яндекса
© 2026 ООО «Яндекс.Облако»