API7 Enterprise 3.2.14.4: Граница разрешений для улучшенного управления доступом
August 15, 2024
API7 Enterprise v3.2.14.4 официально выпущена, с введением границы разрешений для удовлетворения потребности предприятий в более детализированном управлении правами пользователей.
Что такое граница разрешений?
Граница разрешений, как следует из названия, подобна стене разрешений, которая определяет максимальный объем прав, которые может иметь пользователь. Она используется для ограничения действий, которые пользователи или роли могут выполнять в системе. Ее основная цель — повысить безопасность системы и предотвратить злоупотребление правами. Установив эту "стену", мы можем гарантировать, что пользователи будут работать только в рамках своих обязанностей и не смогут получить доступ или изменить данные в системе за пределами своих полномочий.
Границы разрешений могут повторно использовать существующие политики разрешений в системе или создавать новые политики специально для этого. Когда пользователю назначается граница разрешений, она ограничивает его права, но не предоставляет ему никаких разрешений напрямую.
Пример
Предположим, мы создаем политику разрешений, которая предоставляет права на операции с сервисами и просмотр во всех группах шлюзов, и назначаем эту политику в качестве границы разрешений пользователю Тому.
{ "statement": [ // Права на просмотр во всех группах шлюзов { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>" ], "actions": [ "<.*>Get<.*>" ] }, // Права на операции с сервисами во всех группах шлюзов { "effect": "allow", "resources": [ "*" ], "actions": [ "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>" ] } ] }
В таком случае максимальные права Тома ограничены этой политикой разрешений. Даже если граница разрешений установлена, это не означает, что Том уже имеет эти права. Далее мы назначаем Тому роль с следующей политикой разрешений:
{ "statement": [ // Права на просмотр во всех группах шлюзов { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>" ], "actions": [ "<.*>Get<.*>" ] }, // Права на операции с сервисами во всех группах шлюзов { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaygroup/<.*>/publishedservice/<.*>" ], "actions": [ "<.*>" ] }, // Права на операции с пользовательскими плагинами { "effect": "allow", "resources": [ "arn:api7:gateway:gatewaysetting/*" ], "actions": [ "gateway:<.*>CustomPlugin<.*>" ] } ] }
Хотя Тому предоставлены права на операции с сервисами, просмотр и операции с пользовательскими плагинами во всех группах шлюзов, он обнаружит, что у него нет прав на редактирование пользовательских плагинов. Это связано с тем, что для Тома установлена граница разрешений. Если граница разрешений не будет скорректирована для включения прав, связанных с пользовательскими плагинами, любые дополнительные права за пределами границы будут недействительны.
Как использовать функцию границы разрешений?
Создание политик разрешений
Границы разрешений могут напрямую повторно использовать политики разрешений в системе. Перед назначением границы разрешений пользователю необходимо создать политику разрешений. Нажмите "Политики разрешений" в меню организации системы, чтобы перейти на страницу списка.
Затем нажмите "Добавить политику разрешений" в правом верхнем углу списка, чтобы перейти к форме создания.

Заполните основную информацию о политике разрешений в форме и настройте соответствующие утверждения политики, чтобы создать политику разрешений. Теоретически, одна и та же политика разрешений может быть связана с несколькими ролями и использоваться в качестве границы разрешений для нескольких пользователей, но такая практика не рекомендуется.

Для более подробного ознакомления с концепцией политик разрешений см. статью Что нового в API7 Enterprise 3.4.14: IAM для детализированного контроля доступа. Для примеров настройки политик см. документ Примеры политик разрешений. Для значений, которые могут принимать ресурсы и действия, и соответствующих API см. документ Действия и ресурсы политик разрешений.
Назначение границ разрешений
После создания политик разрешений можно назначать границы разрешений. Нажмите "Пользователи" в меню организации, чтобы перейти на страницу списка пользователей.
Мы можем напрямую назначать границы разрешений новым пользователям при их приглашении. Форма приглашения включает новое поле для границ разрешений, и пользователю будет назначена эта граница разрешений по умолчанию при входе в систему.
Для существующих пользователей можно нажать на значок редактирования границы разрешений на странице деталей пользователя, чтобы настроить их границу разрешений.
При настройке прав для пользователя можно добавить условие permission_boundaries к определенным правам на операции. Например, в действиях iam:InviteUser (пригласить пользователя) или iam:UpdateUserBoundary (обновить границу разрешений пользователя), можно дополнительно уточнить контроль прав, добавив условие permission_boundaries.
В этом условии можно указать ID политики разрешений, которая должна быть установлена для пользователя. Таким образом, при выполнении операций, таких как приглашение нового пользователя или обновление границы разрешений другого пользователя, система будет принудительно назначать соответствующую границу разрешений на основе этих предустановленных правил.
Вот пример, демонстрирующий, как этого достичь:
{ "statement": [ { "effect": "allow", "resources": ["arn:api7:iam:user/<.*>"], "actions": [ "iam:InviteUser", "iam:UpdateUserBoundary" ], "conditions": { "permission_boundaries": { "type": "AllOfStrings", "options": [ "d3698967-1d28-4e37-b5e7-ef00a93304cc", "f863a233-f732-4af0-bb21-3fbe4013be69" ] } } } ] }
Сопоставление границ разрешений
Помимо прямой настройки конкретных границ разрешений в системе, API7 Enterprise также поддерживает Сопоставление границ разрешений, которое автоматически назначает соответствующие границы разрешений на основе идентификатора и прав пользователя в IdP (поставщике идентификации). На странице настроек организации нажмите "Добавить вариант входа". Независимо от выбранного поставщика, в нижней части формы конфигурации добавлен переключатель "Сопоставление границ разрешений". После его включения можно настроить сопоставление границ разрешений.

-
Политика разрешений: Это ресурс политики разрешений, определенный в API7 Enterprise, используемый для контроля доступа и области действий пользователя. В сопоставлении границ разрешений мы можем сопоставить конфигурации из внешнего IdP с этими границами разрешений, чтобы назначить соответствующие границы разрешений пользователям при входе в систему.
-
Сопоставленный атрибут границы разрешений: Идентификатор информации о границе разрешений пользователя, возвращаемой IdP, используемый для определения данных границы разрешений пользователя в ответе IdP. Например, указание имени атрибута, такого как "role" или "groups", позволит системе извлечь значение границы разрешений из ответа IdP на основе этого имени атрибута.
-
Операция: Метод, используемый для сопоставления значения границы разрешений из атрибута границы разрешений IdP. Поддерживаются различные методы, такие как точное совпадение, нечеткое совпадение, совпадение в массиве и т.д. Если IdP возвращает массив строк значений границ разрешений, мы можем выбрать "Точное совпадение в массиве" для поиска совпадения.
-
Сопоставленное значение границы разрешений: Конкретное значение, представляющее границу разрешений пользователя в IdP.
Итог
В целом, границы разрешений являются важным инструментом для обеспечения безопасности системы и предотвращения злоупотребления правами. Четко определяя область прав пользователей, мы можем защитить ключевые ресурсы системы от несанкционированного доступа и гарантировать, что каждый пользователь сможет работать только в пределах своих полномочий. В сложных системных средах эффективное использование границ разрешений обеспечит надежную защиту данных предприятия.
