- tocdepth
2
Управление доступом в Object Storage
Чтобы данные в Object Storage были надежно защищены, разграничьте доступ к ресурсам хранилища. Рядовые пользователи будут просматривать содержимое бакета, создатели бакетов — скачивать и загружать объекты, а администратор проекта — настраивать хранилище.
В Object Storage используются три механизма контроля доступа: роли пользователей, ACL и Bucket Policy.
Роли содержат наборы разрешений, которые описывают допустимые для пользователей операции. Роль пользователя может разрешать действия как отдельного сервиса, так и всех сервисов платформы.
ACL (Access Control List) разрешает действия с бакетами и объектами на основе списка, в котором перечислены пользователи и их уровни доступа. ACL создается для каждого объекта и бакета и хранится в самом Object Storage.
Bucket Policy проверяет, соответствует ли операция настроенной политике доступа. С помощью политики можно указать дополнительные правила взаимодействия с ресурсами хранилища. Например, запретить или разрешить доступ к бакету для конкретных IP-адресов.
Как работает контроль доступа
Когда запрос поступает в систему, механизмы контроля доступа проверяют разрешения по определенному алгоритму.
Проверки выполняются в следующем порядке:
Система проверяет, есть ли в HTTP-заголовке подпись. Если в заголовке запроса:
есть подпись — выполняется проверка роли пользователя в проекте;
нет подписи — выполняется проверка Bucket Policy.
Система проверяет, есть ли у пользователя из запроса роль, которая позволит выполнить действие с ресурсом. Если роль:
позволяет выполнить действие — проверяется наличие Bucket Policy для ресурса;
имеет полные права на ресурс — разрешает доступ;
не назначена или не позволяет выполнить действие — запрещает доступ.
Система проверяет, есть ли правила Bucket Policy для ресурса из запроса. Если:
правило есть и запрос попадает под правило
Allow
— разрешает доступ;правило есть и запрос попадает под правило
Deny
— запрещает доступ;
Если в системе нет ни одной политики или запрос не подходит ни к одному правилу — выполняется проверка ACL;
Система сверяет данные в запросе со списком ACL. Если в списке:
есть разрешение — разрешает доступ;
нет разрешений — запрещает доступ.
Что и когда использовать
Выбор настройки доступа зависит от сложности проекта и объема хранилища.
Роли подойдут для несложных сценариев и небольшого хранилища, когда достаточно разрешить или ограничить доступ к ресурсам в соответствии с набором прав. Управлять ролями можно прямо в интерфейсе сервиса, тогда как настройки ACL и Bucket Policy передаются с помощью API.
ACL можно использовать, если набора ролей недостаточно, а для некоторых объектов хранилища требуются индивидуальные настройки доступа. С помощью ACL вы можете открыть публичный доступ к конкретному объекту для всех пользователей интернета.
Bucket Policy лучше использовать, когда объектов в хранилище очень много и важно точно указать, при каких условиях разрешать действия с ресурсами. С помощью политик вы можете разрешить скачивать объекты только с конкретного пула IP-адресов или запретить ряд операций с конкретным объектом в бакете.
Была ли статья полезной?
для Dev & Test