Что нового в API7 Enterprise: IAM для детализированного контроля доступа
July 11, 2024
Введение
Предыдущие версии API7 Enterprise предоставляли простой, удобный и всеобъемлющий механизм управления RBAC (Role-Based Access Control). Этот механизм обеспечивал безопасность системы, предоставляя пользователям гибкую настройку ролевых разрешений. Однако с увеличением типов ресурсов и функциональных возможностей API7 Enterprise традиционное управление RBAC постепенно выявило свои ограничения в тонком контроле разрешений. Более того, всё больше предприятий ищут более детализированные стратегии управления разрешениями, чтобы удовлетворить свои сложные и изменяющиеся бизнес-потребности.
Для дальнейшего улучшения функций управления разрешениями в API7 Enterprise мы провели всестороннее обновление существующей системы ролевых разрешений, внедрив более гибкую и мощную модель политик IAM (Identity and Access Management). Эта модель предоставляет пользователям более детализированный контроль над разрешениями и большую гибкость, лучше удовлетворяя сложные и изменчивые потребности современных предприятий в управлении разрешениями.
Что такое модель политик IAM?
Модель IAM (Identity and Access Management) представляет собой более детализированный и эффективный метод управления разрешениями. Она позволяет администраторам определять конкретные политики, каждая из которых содержит набор правил (Statements). Эти правила детально указывают, какие пользователи или роли могут выполнять какие действия над какими ресурсами. По сравнению с традиционным механизмом RBAC, эта модель предлагает большую гибкость и детализацию.
Преимущества IAM перед RBAC:
-
Детализированный контроль: IAM позволяет контролировать разрешения на уровне ресурсов и даже для конкретных атрибутов или операций внутри ресурсов, тогда как RBAC часто назначает разрешения на основе ролей, что имеет относительно грубую детализацию.
-
Гибкость: IAM позволяет администраторам напрямую управлять политиками и разрешениями, не создавая и не управляя множеством ролей для косвенного назначения разрешений, что делает конфигурацию более простой и гибкой.
-
Масштабируемость: По мере увеличения функциональности системы и разнообразия типов ресурсов IAM может легче адаптироваться к изменениям, добавляя новые политики для удовлетворения новых потребностей в разрешениях, тогда как RBAC может потребовать корректировки или добавления множества ролей для адаптации к изменениям.
Как использовать политики IAM в API7 Enterprise?
1. Создание политик разрешений
После входа в API7 Enterprise нажмите кнопку "Организация" в правом верхнем углу и выберите пункт "Политики разрешений" в выпадающем меню.
В разделе Политики разрешений вы можете управлять всеми политиками. По умолчанию существует политика super-admin-permission-policy для начального администратора.
Нажмите кнопку "Добавить политику" в правом верхнем углу, чтобы перейти к форме создания политики. Здесь необходимо заполнить основную информацию о политике и настроить разрешения в редакторе политик, называемом Statements.
Statements являются основными компонентами политики, состоящими из одного или нескольких утверждений. Каждое утверждение определяет конкретное правило доступа.
-
Effect: Указывает эффект утверждения, обычно
"Allow"или"Deny". Ресурс может быть затронут несколькими политиками, и система IAM определяет окончательные разрешения доступа на основе порядка и логики утверждений. -
Action: Определяет ряд разрешённых или запрещённых действий, таких как
"gateway:DeleteGatewayGroup"или"iam:GetUser". Эти действия должны использоваться вместе с ресурсами (Resource), чтобы быть значимыми. -
Resource: Указывает ресурсы, к которым применяется утверждение, например, конкретная группа шлюзов или сервис. Можно использовать подстановочные знаки (например,
<.*>) для сопоставления нескольких ресурсов. -
Condition (опционально): Определяет условия, при которых утверждение будет действовать. Например,
"conditions": { "gateway_group_label": { "type": "MatchLabel", "options": { "key": "type", "operator": "exact_match", "value": "production" } } },Это означает, что операции, определённые в утверждении, будут разрешены только в том случае, если метка группы шлюзов установлена на "production".
Например, чтобы создать политику, ограничивающую пользователя только редактированием всех опубликованных сервисов в определённой группе шлюзов, можно написать следующее:
{ "statement": [ { "resources": [ "arn:api7:gateway:gatewaygroup/{gateway group id}" ], "actions": [ "<.*>Get<.*>" // Разрешить выполнение всех операций, начинающихся с 'Get', что представляет собой разрешение на 'чтение' для указанной группы шлюзов ], "effect": "allow" // Разрешить выполнение определённых выше операций // Примечание: Это утверждение политики позволяет выполнять все операции 'Get' для указанной группы шлюзов, такие как получение информации о группе шлюзов, перечисление сервисов в группе шлюзов и т.д. }, { "resources": [ "arn:api7:gateway:gatewaygroup/{gateway group id}/publishedservice/<.*>", ], "actions": [ "<.*>" // Разрешить выполнение всех операций ], "effect": "allow" // Разрешить выполнение определённых выше операций // Это утверждение политики позволяет выполнять все операции (создание, чтение, обновление, удаление и т.д.) для опубликованных сервисов в указанной группе шлюзов. } ] }
В этом примере мы определили два набора ресурсов (группа шлюзов и опубликованные сервисы в группе шлюзов) и установили разрешённые действия для каждого. Некоторые распространённые примеры конфигурации политик можно найти в документе Примеры политик разрешений. Для доступных значений ресурсов и действий и соответствующих API см. документ Действия и ресурсы политик разрешений.
После создания политики её нельзя напрямую назначить пользователям; сначала необходимо назначить политику конкретным ролям.
2. Создание ролей и привязка политик
После входа в API7 Enterprise нажмите кнопку "Организация" в правом верхнем углу и выберите пункт "Роли" в выпадающем меню.
В разделе Роли вы можете управлять всеми ролями. По умолчанию существует роль Super Admin как встроенная роль администратора.

Нажмите кнопку "Добавить пользовательскую роль" в правом верхнем углу, чтобы перейти к форме создания роли. Здесь необходимо заполнить основную информацию о роли. После создания мы перейдём на страницу деталей роли.

На странице деталей роли нажмите кнопку "Привязать политику", чтобы назначить ранее созданные политики разрешений роли.
Созданные политики могут быть повторно использованы в нескольких ролях. Когда роль связана с несколькими политиками, эти политики по умолчанию объединяются. То есть разрешения роли являются суммой разрешений, объявленных во всех связанных политиках. После создания роли и привязки политик мы можем назначить роль конкретным пользователям.
3. Назначение ролей пользователям
После входа в API7 Enterprise нажмите кнопку "Организация" в правом верхнем углу и выберите пункт "Пользователи" в выпадающем меню.
В разделе Пользователи вы можете управлять всеми пользователями. По умолчанию существует роль администратора как встроенная роль.

В правой колонке действий списка ролей нажмите "Обновить роли", чтобы открыть форму обновления роли для конкретного пользователя.
Пользователь может иметь несколько ролей. Когда пользователю назначается несколько ролей, разрешения объединяются. То есть пользователь имеет сумму разрешений всех ролей.
Упрощённое сопоставление ролей
С оптимизацией и обновлением модели пользовательских ролей процесс сопоставления ролей SSO был упрощён. Теперь при настройке сопоставления ролей для параметров входа не нужно устанавливать правила сопоставления на уровне ресурсов для каждой роли отдельно. Разрешения на ресурсы и операции напрямую наследуются от выбранных встроенных ролей, что делает конфигурацию разрешений более интуитивной и упрощает сложность управления разрешениями.
Заключение
Внедрение политик IAM позволило более гибко настраивать и управлять разрешениями. Это изменение не только повышает безопасность системы, но и предоставляет пользователям больше возможностей для настройки.
В будущем мы продолжим расширять типы ресурсов, поддерживаемые политиками IAM, чтобы все системные ресурсы могли быть включены в детализированное управление разрешениями, а также будем постоянно оптимизировать интерфейс редактирования и управления политиками, предоставляя пользователям более полный и эффективный опыт управления разрешениями.
