Открыть сервис

Список управления доступом

Список управления доступом (англ. Access Control List, ACL) — это механизм, применяемый в компьютерных системах и сетевом оборудовании, который определяет, какие субъекты (пользователи, процессы, устройства) и каким образом могут взаимодействовать с определёнными объектами (файлами, каталогами, сетевыми портами, сервисами). ACL представляет собой упорядоченный перечень правил (записей), каждое из которых содержит информацию о субъекте, типе разрешённого или запрещённого действия и, при необходимости, дополнительные условия (например, время доступа или IP-адрес). Данный подход является одной из базовых моделей управления доступом наряду с мандатной и ролевой моделями.

История и развитие

Концепция списков управления доступом возникла в 1970-х годах в рамках исследований в области операционных систем. Первоначально она была реализована в системе Multics, разработанной Массачусетским технологическим институтом (MIT), General Electric и Bell Labs. В Multics ACL позволяли гибко настраивать права доступа для каждого файла, в отличие от более простой модели, используемой в Unix, где права задавались тремя категориями (владелец, группа, остальные).

В 1980-х годах механизм ACL был адаптирован для файловых систем операционных систем семейства Unix (например, в версиях от Sun Microsystems). Широкое распространение в сетевых технологиях ACL получили благодаря разработке протоколов управления доступом к сетям, в частности, в маршрутизаторах и коммутаторах Cisco Systems.

С развитием облачных вычислений и виртуализации ACL стали применяться для управления доступом к виртуальным машинам, контейнерам и объектным хранилищам (например, Amazon S3). В современных операционных системах (Windows NT, Linux с поддержкой POSIX ACL, FreeBSD) ACL поддерживаются на уровне файловых систем, что позволяет задавать права для большого числа пользователей и групп.

Классификация и виды

Списки управления доступом классифицируются по нескольким критериям: по сфере применения, по типу объектов и по способу обработки правил.

По сфере применения

По типу объектов

По способу обработки правил

Устройство и принцип работы

ACL представляет собой упорядоченный список записей (правил), каждая из которых содержит следующие поля:

При попытке субъекта выполнить действие над объектом система последовательно перебирает правила ACL сверху вниз. Как только находится правило, соответствующее субъекту и объекту, выполняется указанное в нём действие (разрешение или запрет). Если ни одно правило не подходит, применяется действие по умолчанию (обычно запрет — принцип «всё, что не разрешено, запрещено»).

Пример файлового ACL (Linux)

В операционной системе Linux с поддержкой POSIX ACL права доступа к файлу могут выглядеть следующим образом:

`` user::rw- user:ivan:rwx group::r-- group:developers:rwx mask::rwx other::--- ``

Здесь:

Пример сетевого ACL (Cisco IOS)

В маршрутизаторах Cisco ACL для фильтрации трафика может выглядеть так:

`` access-list 100 permit tcp 192.168.1.0 0.0.0.255 any eq 80 access-list 100 deny ip any any ``

Первое правило разрешает прохождение TCP-пакетов из сети 192.168.1.0/24 к любому адресу назначения на порт 80 (HTTP). Второе правило запрещает весь остальной трафик.

Применение

В операционных системах

ACL используются в файловых системах для тонкой настройки прав доступа. Например, в Windows NTFS ACL позволяют администратору задать индивидуальные разрешения для каждого пользователя или группы, включая такие действия, как чтение, запись, выполнение, изменение атрибутов, удаление и смена владельца. В Linux ACL расширяют стандартную модель прав Unix, позволяя назначать права более чем одной группе или пользователю.

В сетевой безопасности

Сетевые ACL являются ключевым элементом межсетевых экранов и маршрутизаторов. Они используются для:

В облачных вычислениях

В облачных платформах ACL применяются для управления доступом к объектным хранилищам (например, Amazon S3), виртуальным частным облакам (VPC) и сетевым интерфейсам. Например, в AWS ACL для VPC (Network ACL) работают на уровне подсети и позволяют разрешать или запрещать трафик по IP-адресам, портам и протоколам.

В базах данных

В СУБД, таких как PostgreSQL и Oracle, ACL используются для управления доступом к объектам схемы (таблицам, представлениям, функциям). Каждому объекту может быть назначен список прав для конкретных пользователей или ролей.

Преимущества и недостатки

Преимущества

Недостатки

Критика и альтернативы

Критики ACL указывают на их ограниченность в крупных распределённых системах. Альтернативными подходами являются:

Тем не менее, ACL остаются востребованными благодаря своей простоте и прозрачности, особенно в небольших и средних системах.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →