Участники | Просмотр Это право доступа позволяет просматривать участников организации. Если отмечено, права Вьюер позволяют участникам с этой ролью просматривать вкладку Участники страницы Организация. Если не отмечено, участники не могут видеть страницу Организация. |
Группы | Создание, обновление и удаление Это право доступа позволяет участникам создавать группы на портале и управлять ими. |
Присоединение к группам организации Участники ролей, которым предоставлено это право, могут направлять запрос на присоединение к группам в организации. Это право доступа полезно только в том случае, если вы также предоставляете роль право просмотра групп, доступных на портале. Если у роли нет этого права, участники не будут видеть группы и, следовательно, не смогут направлять запрос на присоединение к ним. | |
Просмотреть группы, доступные на портале Это право доступа позволяет участникам обнаруживать группы, настроенные таким образом, чтобы участники портала могли их просматривать. | |
Ресурсы | Создание, обновление и удаление Это право доступа позволяет участникам создавать элементы на портале и управлять ими. Это право доступа необходимо, если вы предоставляете какие-либо права, позволяющие участникам публиковать, регистрировать хранилища данных или создавать Блокноты. |
Публикация размещенных векторных слоев Это право позволяет участникам публиковать размещенные векторные слои на портал из самого портала и из других приложений, например, ArcGIS Pro. Это право также необходимо при использовании приложений, которые создают размещенные векторные слои типа ArcGIS Survey123 и ArcGIS Workforce. | |
Публикация размещенных слоёв листов Это право позволяет участникам публиковать размещенные слои листов на портал с самого портала и из других приложений, например, ArcGIS Pro. | |
Публикация размещенных слоев сцены Это право позволяет участникам публиковать размещенные слои сцен на портал с самого портала и из других приложений, например, ArcGIS Pro. | |
Публикация серверных слоев Это право позволяет участникам публиковать веб-слои ArcGIS Server на сайты ArcGIS Server, которые интегрированы с порталом. Это право доступа также необходимо для участников, который выполняют пакетную публикацию слоев из элемента хранилища данных. | |
Просмотреть ресурсы, опубликованные в организации Это право доступа позволяет участникам получать доступ к элементам, которые являются общими для организации портала. | |
Регистрация хранилищ данных Это право доступа позволяет обладателям этой роли добавлять элементы хранилищ данных на портал. | |
Пакетное создание векторных слоев из хранилища данных Это право доступа позволяет владельцу элемента хранилища данных публиковать векторные слои и слои изображений карты из всех классов объектов и таблиц, доступных в базе данных. | |
Просмотр отслеживания местоположения Это право предоставляет возможность просмотра отслеживания местоположения через опубликованные представления трекинга, когда отслеживание местоположений включено. | |
Создание и изменение Блокнотов Это право доступа позволяет обладателям этой роли создавать блокноты ArcGIS, используя стандартную среду. Это право доступа видно только в том случае, если для вашей организации настроен Notebook Server. Могут потребоваться дополнительные права (например, управление ресурсами или запуск специальных инструментов анализа) — в зависимости от рабочих процессов, выполняемых автором блокнота. | |
Настройка расписаний Блокнотов Это право доступа позволяет участникам роли планировать расписание блокнотов ArcGIS для запуска в определенное время. Для настройки расписания определенного блокнота, пользователь должен быть владельцем блокнота или обладать административными правами. Это право доступа видно только в том случае, если для вашей организации настроен Notebook Server. Для включения права доступа Создание и изменение блокнотов оно должно быть активировано. | |
Общий доступ | Общий доступ для групп Это право доступа позволяет участникам делиться элементами, которыми они владеют, с любыми группами, к которым принадлежит участник. |
Общий доступ через портал Это право позволяет участникам делиться на портале организации любыми элементами, которыми они владеют. | |
Общий доступ для всех Это право доступа позволяет участникам делиться элементами, которыми они владеют, с кем угодно, даже с пользователями, которые не вошли на портал. Это право доступа видно только в том случае, если участники могут публиковать ресурсы для всех, в организации включен параметр. | |
Сделать группы видимыми для портала Когда вы создаете группу, вы указываете, кто может видеть группу или искать ее. Это право доступа «Сделать группы видимыми на портале» требуется, чтобы позволить создателям групп настроить группу таким образом, чтобы позволить участникам портала просматривать группу. Это право доступа полезно только в том случае, если роль также включает право создавать, обновлять и удалять группы. | |
Создание групп, видимых для всех Когда вы создаете группу, вы указываете, кто может видеть группу или искать ее. Это право доступа «Сделать группы видимыми для всех» требуется, чтобы позволить создателям групп настроить группу таким образом, чтобы позволить анонимным пользователям просматривать группу. Это право доступа полезно только в том случае, если роль также включает право создавать, обновлять и удалять группы. | |
Ресурсы и анализ | Геокодирование Использование ArcGIS World Geocoding Service (или вида этого локатора) для конвертации адресов или местоположений в точки на карте или сохранения результатов — например при публикации таблиц (файлов CSV или Microsoft Excel) в виде размещенных векторных слоев. (Не применяется к собственным локаторам, настроенным для организации. |
Сетевой анализ Эти права предоставляют выполнять задачи сетевого анализа, например, построение зон доступности. | |
Стандартный анализ объектов Эти права предоставляют выполнять задачи сетевого анализа, например, создание буферов. | |
Геообогащение Это право доступа позволяет обладателям этой роли использовать сервис GeoEnrichment для доступа к демографической информации. | |
Анализ объектов GeoAnalytics Это право доступа предоставляет возможность использования GeoAnalytics Tools. | |
Анализ растра Это право доступа позволяет выполнять инструменты растрового анализа. Для этого права необходимо, чтобы ваше развертывание было настроено для анализа растров. | |
Notebooks расширенное Это право доступа позволяет создавать блокноты ArcGIS Notebook, используя расширенные рабочие среды. Это право доступа видно только в том случае, если для вашей организации настроен Notebook Server. Могут потребоваться дополнительные права (например, управление ресурсами или запуск специальных инструментов анализа) — в зависимости от рабочих процессов, выполняемых автором блокнота. | |
Объекты | Редактирование Это право доступа позволяет редактировать объекты в зависимости от разрешений, настроенных для слоя. |
Редактирование с полным доступом Редактирование с полным доступом: добавление, удаление и обновление объектов и атрибутов в редактируемых размещенных векторных слоях, даже если операции редактирования в слоях ограничены. | |
Управление версиями | Управлять всем Это право позволяет участникам роли просматривать, изменять и удалять все сервис-ориентированные версии, к которым есть доступ через векторный веб-слой ArcGIS Server. Это право доступа также позволяет участникам с этой ролью управлять блокировками версии на этих слоях. При включении этого права доступа по умолчанию также включаются следующие права доступа:
Участники с пользовательской ролью, имеющие эти три права доступа, называются администраторами версий. |
Роли уровня базы данных — SQL Server
- Чтение занимает 7 мин
В этой статье
Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Параллельное хранилище данных
Для удобства управления разрешениями в базах данных SQL Server предоставляет несколько ролей , которые являются субъектами безопасности, группирующими других участников. Они подобны группам в операционной системе Microsoft Windows. Разрешения ролей уровня базы данных распространяются на всю базу данных.
Чтобы добавлять и удалять пользователей в роли базы данных, используйте параметры
и DROP MEMBER
инструкции ALTER ROLE . Система платформы аналитики (PDW) и Azure Synapse не поддерживают такое использование ALTER ROLE
. Используйте вместо этого более старые процедуры sp_addrolemember и sp_droprolemember .
Существует два типа ролей уровня базы данных: предопределенные роли базы данных , являющиеся стандартными для базы данных, и пользовательские роли базы данных , которые можно создавать.
Предопределенные роли базы данных задаются на уровне базы данных и предусмотрены в каждой базе данных. Члены ролей базы данных db_owner могут управлять членством в предопределенных ролях базы данных. Кроме того, в базе данных msdb имеются специальные роли базы данных.
В роли уровня базы данных можно добавить любую учетную запись базы данных и другие роли SQL Server .
Совет
Не добавляйте пользовательские роли базы данных в качестве членов предопределенных ролей. Это может привести к непреднамеренному повышению прав доступа.
Разрешения пользовательских ролей базы данных можно настроить с помощью инструкций GRANT, DENY и REVOKE. Дополнительные сведения см. в разделе Разрешения (компонент Database Engine).
Список всех разрешений см. в афише с разрешениями для ядра СУБД . Разрешения уровня сервера невозможно предоставить ролям базы данных. Имена входа и другие субъекты уровня сервера (например, роли сервера) нельзя добавлять в роли базы данных. Для обеспечения безопасности на уровне сервера в SQL Serverиспользуйте вместо этого роли сервера . Разрешения уровня сервера невозможно предоставить посредством ролей в База данных SQL и Azure Synapse.
предопределенные роли базы данных
В следующей таблице представлены предопределенные роли базы данных и их возможности. Эти роли существуют во всех базах данных. За исключением открытой роли базы данных разрешения, назначенные предопределенным ролям базы данных изменять нельзя.
Имя предопределенной роли базы данных | Описание |
---|---|
db_owner | Члены предопределенной роли базы данных |
db_securityadmin | Элементы предопределенной роли базы данных db_securityadmin могут изменять членство в роли (только для настраиваемых ролей) и управлять разрешениями. Элементы этой роли потенциально могут повышать свои права доступа, поэтому необходимо отслеживать их действия. |
db_accessadmin | Члены предопределенной роли базы данных db_accessadmin могут добавлять или удалять права удаленного доступа к базе данных для имен входа и групп Windows, а также имен входа SQL Server . |
db_backupoperator | Члены предопределенной роли базы данных db_backupoperator могут создавать резервные копии базы данных. |
db_ddladmin | Члены предопределенной роли базы данных db_ddladmin могут выполнять любые команды языка определения данных (DDL) в базе данных. |
db_datawriter | Члены предопределенной роли базы данных db_datawriter |
db_datareader | Члены предопределенной роли базы данных db_datareader могут считывать все данные из всех пользовательских таблиц и представлений. Пользовательские объекты могут существовать в любой схеме, кроме sys и INFORMATION_SCHEMA. |
db_denydatawriter | Члены предопределенной роли базы данных db_denydatawriter не могут добавлять, изменять или удалять данные в пользовательских таблицах базы данных. |
db_denydatareader | Члены предопределенной роли базы данных db_denydatareader |
Нельзя изменить разрешения, назначенные предопределенным ролям базы данных. На следующем рисунке показаны разрешения, назначенные предопределенным ролям базы данных:
Специальные роли для База данных SQL и Azure Synapse
Эти роли базы данных существуют только в виртуальной базе данных master. Их разрешения ограничены действиями, выполняемыми в базе данных master. В эти роли можно добавить только пользователей из базы данных master. Для этих ролей нельзя добавить имена входа, однако можно создать пользователей на основе имен входа, а затем добавить этих пользователей в роли. Кроме того, в эти роли можно добавить пользователей автономной базы данных из базы данных master. При этом пользователи автономной базы данных, добавленные в роль
Имя роли | Описание |
---|---|
dbmanager | Может создавать и удалять базы данных. Член роли dbmanager, который создает базу данных, становится ее владельцем, что позволяет ему подключиться к этой базе данных в качестве пользователя dbo. Пользователь dbo имеет все разрешения в этой базе данных. Члены роли dbmanager необязательно имеют разрешения на доступ к базам данных, которые им не принадлежат. |
db_exporter | Применяется только к выделенным пулам SQL Azure Synapse Analytics (ранее SQL DW). Члены предопределенной роли базы данных db_exporter могут выполнять все действия для экспорта данных. Разрешения, предоставляемые для этой роли: CREATE TABLE, ALTER ANY SCHEMA, ALTER ANY EXTERNAL DATA SOURCE, ALTER ANY EXTERNAL FILE FORMAT. |
loginmanager | Может создать и удалять имена входа в виртуальной базе данных master. |
Некоторые роли баз данных не применимы к Azure SQL или Synapse SQL:
- db_datawriter и db_denydatawriter не применимы к бессерверному Synapse SQL, так как он просто считывает внешние данные.
Роли базы данных msdb
База данных msdb содержит специальные роли, показанные в следующей таблице.
Имя роли базы данных msdb | Описание |
---|---|
db_ssisadmin db_ssisoperator db_ssisltduser | Члены этих ролей базы данных могут администрировать и использовать службы Integration Services. Экземпляры SQL Server, обновленные с предыдущей версии, могут содержать более старую версию роли, имя которой присвоено с помощью служб DTS, а не служб Integration Services. Дополнительные сведения см. в разделе Роли служб Integration Services (службы SSIS). |
dc_admin dc_operator dc_proxy | Члены этих ролей базы данных могут администрировать и использовать сборщик данных. Дополнительные сведения см. в разделе Data Collection. |
PolicyAdministratorRole | Члены роли базы данных db_ PolicyAdministratorRole могут выполнять все действия по настройке и обслуживанию политик и условий средства «Управление на основе политики». Дополнительные сведения см. в разделах Администрирование серверов с помощью управления на основе политик. |
ServerGroupAdministratorRole ServerGroupReaderRole | Члены этих ролей базы данных могут администрировать и использовать зарегистрированные группы серверов. |
dbm_monitor | Создается в базе данных msdb при регистрации в мониторе зеркального отображения базы данных первой базы данных. Роль dbm_monitor не имеет членов до тех пор, пока системный администратор не назначит ее пользователям. |
Важно!
Члены роли db_ssisadmin и роли dc_admin могут повышать свои права доступа до sysadmin. Такое повышение права доступа может произойти, так как эти роли могут изменять пакеты служб Службы Integration Services , а пакеты Службы Integration Services могут выполняться SQL Server при помощи контекста безопасности sysadmin агента SQL Server . Чтобы предотвратить такое повышение прав доступа при выполнении планов обслуживания, наборов элементов сбора данных и других пакетов служб Службы Integration Services , настройте задания агента SQL Server , запускающие пакеты, на использование учетной записи-посредника с ограниченными правами доступа или добавьте в роли db_ssisadmin и dc_admin только членов роли sysadmin .
Работа с ролями уровня базы данных
В следующей таблице описаны команды, представления и функции, предназначенные для работы с ролями уровня баз данных.
Компонент | Тип | Описание |
---|---|---|
sp_helpdbfixedrole (Transact-SQL) | Метаданные | Возвращает список всех предопределенных ролей базы данных. |
sp_dbfixedrolepermission (Transact-SQL) | Метаданные | Отображает разрешения предопределенной роли базы данных. |
sp_helprole (Transact-SQL) | Метаданные | Возвращает информацию о ролях, относящихся к текущей базе данных. |
sp_helprolemember (Transact-SQL) | Метаданные | Возвращает сведения о членах роли в текущей базе данных. |
sys.database_role_members (Transact-SQL) | Метаданные | Возвращает одну строку для каждого члена каждой роли базы данных. |
IS_MEMBER (Transact-SQL) | Метаданные | Указывает, является ли текущий пользователь членом указанной группы Microsoft Windows или роли базы данных Microsoft SQL Server. |
CREATE ROLE (Transact-SQL) | Get-Help | Создает новую роль базы данных в текущей базе данных. |
ALTER ROLE (Transact-SQL) | Get-Help | Изменяет имя или членство роли базы данных. |
DROP ROLE (Transact-SQL) | Get-Help | Удаляет роль из базы данных. |
sp_addrole (Transact-SQL) | Get-Help | Создает новую роль базы данных в текущей базе данных. |
sp_droprole (Transact-SQL) | Get-Help | Удаляет роль базы данных из текущей базы данных. |
sp_addrolemember (Transact-SQL) | Get-Help | Добавляет пользователя базы данных, роль базы данных, имя входа Windows или группу Windows к роли текущей базы данных. Все платформы, за исключением Система платформы аналитики (PDW) и Azure Synapse, должны использовать вместо этого ALTER ROLE . |
sp_droprolemember (Transact-SQL) | Get-Help | Удаляет учетную запись безопасности из роли SQL Server в текущей базе данных. Все платформы, за исключением Система платформы аналитики (PDW) и Azure Synapse, должны использовать вместо этого ALTER ROLE . |
GRANT | Разрешения | Добавляет разрешение для роли. |
DENY | Разрешения | Запрещает разрешение для роли. |
REVOKE | Разрешения | Удаляет разрешения, выданные или запрещенные ранее. |
Роль базы данных public
Каждый пользователь базы данных является членом роли базы данных public . Если для пользователя не были предоставлены или запрещены конкретные разрешения на защищаемый объект, он наследует разрешения роли public на этот объект. Пользователей базы данных нельзя удалить из роли public .
Примеры
В примерах этого раздела показано, как работать с ролями уровня базы данных.
A. Добавление пользователя к роли уровня базы данных
В следующем примере пользователь Бен добавляется к фиксированной роли уровня базы данных db_datareader
.
ALTER ROLE db_datareader
ADD MEMBER Ben;
GO
Б. Перечисление всех субъектов базы данных, которые являются членами роли уровня базы данных
Следующая инструкция возвращает все члены любой роли базы данных.
SELECT roles.principal_id AS RolePrincipalID
, roles.name AS RolePrincipalName
, database_role_members.member_principal_id AS MemberPrincipalID
, members.name AS MemberPrincipalName
FROM sys.database_role_members AS database_role_members
JOIN sys.database_principals AS roles
ON database_role_members.role_principal_id = roles.principal_id
JOIN sys.database_principals AS members
ON database_role_members.member_principal_id = members.principal_id;
GO
См. также
Представления каталога безопасности (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)
Функции безопасности (Transact-SQL)
Обеспечение безопасности SQL Server
sp_helprotect (Transact-SQL)
Подсистема «Логическое разграничение доступа» — Документация ИСТИНА (руководство пользователя) RU.2067089.4041701-03 32 01
Этот подраздел посвящен описанию подсистемы логического разграничения доступа к данным ИАС «ИСТИНА».
Права и обязанности ответственных по организациям и подразделениям
Каждый из пользователей ИАС «ИСТИНА» самостоятельно вносит в систему информацию о своих результатах научно исследовательской деятельности, и имеет права редактировать информацию, внесенную в систему им самим. В ряде случаев, однако, необходимо вмешательство пользователей, имеющих особые права доступа для исправления ошибок, допущенных пользователями в процессе добавления информации. Примером такой ошибки может быть указание в качестве соавтора статьи не того сотрудника, либо дублирование статьи в результате ее внесения сразу двумя соавторами. Исправлением таких ошибок в системе занимается выделенная категория пользователей, называемых ответственными по подразделению. Эти пользователи имеют полные права доступа ко всем результатам научно-исследовательской деятельности сотрудников подконтрольных им подразделений. Также в задачи ответственных по подразделениям входит сопровождение информации, недоступной для редактирования обычным пользователям. К такой информации относятся формулы для подсчета персональных рейтингов сотрудников, учетные записи диссертационных советов, научного оборудования и другие объекты, которые могут быть ассоциированы с определенной организацией или подразделением и не являются результатами научно-исследовательской деятельности его сотрудников. Таким образом, ответственные по подразделению выполняют широкий набор задач и для больших организаций и подразделений имеет смысл разделение их полномочий. Это означает, что пользователь может быть связан с подразделением одним или несколькими отношениями, каждое из которых дает ему некоторые права доступа к ряду объектов, ассоциированных с подразделением.
- Ответственный за сопровождение общей информации. Данный пользователь имеет право редактировать все результаты научно исследовательской деятельности сотрудников подконтрольного ему подразделения, а также выдавать административные полномочия в рамках подразделения другим пользователям. Пользователь, связанный с подразделением этим отношением, также имеет все права доступа в рамках данного подразделения, указанные для других видов ответственных.
- Ответственный за подтверждение должностей сотрудников.
- Ответственный за сопровождение информации по научному отчету подразделения.
- Ответственный за редактирование смет научно-исследовательских работ. Данный сотрудник имеет право редактировать сметы всех научно-исследовательских проектов, ассоциированных с подконтрольным ему подразделением.
- Ответственный за подсчет персональных рейтингов сотрудников.
- Ответственный за сопровождение информации по конкурсам на замещение вакантных должностей.
- Ответственный за сопровождение информации по конкурсам работников и научных проектов. Данная роль пользователей будет добавлено в системе при ее дальнейшей доработке. В настоящее время только администраторы системы имеют право добавлять в систему новые конкурсы и редактировать права доступа к существующим. Исключение составляют конкурсы на замещение вакантных должностей.
- Ответственный за сопровождение информации по диссертационным советам.
- Ответственный за сопровождение информации по оборудованию. Данный пользователь имеет право редактировать все учетные записи научных приборов, относящихся к подконтрольному ему подразделению. Следует заметить, что существует также возможность назначения ответственных за сопровождение информации отдельно для определенного прибора.
- Ответственный за создание конкурсов на замещение вакантных должностей. Данная роль пользователя в настоящее время является глобальной, то есть дает пользователю соответствующие полномочия в рамках всех зарегистрированных в системе организаций. В перспективе планируется изменить данное правило таким образом, чтобы роль ответственного за создание новых конкурсов могла быть ассоциирована отдельно с каждой из зарегистрированных в системе организаций. При этом назначение ответственного за создание конкурсов в рамках отдельных подразделений по прежнему будет невозможно.
Инструкция по управлению доступом к объектам ИАС «ИСТИНА»
Назначение ответственных по подразделениям
Система предоставляет два способа назначения ответственных по подразделению. Один из этих способов заключается в использовании специально разработанной для этой цели страницы и является более удобным. Для пользователей, обладающих административными привилегиями в системе также возможно добавление ответственных по подразделениям с использованием механизмов администрирования, встроенного в библиотеку Django, используемую ИАС «ИСТИНА» в качестве «слоя-посредника» при обращении к базе данных системы. Второй способ предоставляет несколько больше возможностей для управления полномочиями пользователей, однако требует использования значительно менее дружественного интерфейса. Для большинства задач по управлению полномочиями пользователей ИАС «ИСТИНА» предпочтительным является использование интерфейса, разработанного специально для этой системы. В настоящем разделе инструкции рассматриваются способы управления доступом к объектам системы с использованием приложения, разработанного специально для нее. Управление доступом с использованием панели администрирования Django может осуществляться только персоналом сайта.
Для назначения пользователя ответственным по подразделению необходимо
войти на страницу управления правами доступа, находящуюся по адресу https://istina.msu.ru/unified_permissions
, после чего выбрать
пункт «назначить ответственного по подразделению». После этого появится
экран назначения ответственных по подразделению, представленный на
рисунку 177. Заметим, что в
графу «пользователь» необходимо ввести полное имя пользователя, а не
имя, используемое для входа в систему (логин). После ввода в данное поле
нескольких первых символов фамилии пользователя появится возможность
выбрать пользователя из выпадающего списка. Затем необходимо указать
подразделение, для которого пользователь должен быть назначен
ответственным. Каждый пользователь имеет право назначать новых ответственных
по подразделениям, для которых сам является ответственным.
Рис. 177 Диалог добавления ответственного по подразделению
Далее необходимо ввести контактную информацию ответственного, которая необходима сотрудникам данного подразделения в случае необходимости обращения к ответственному по вопросам, связанным с системой. Среди этих сведений можно указать адрес электронной почты и рабочий телефон.
Кроме того, при добавлении нового ответственного необходимо указать начальную и конечную даты срока действия его полномочий. Поля для ввода этих дат находятся внизу экрана, как показано на рисунке 177.
Выдача разрешений в рамках подразделения
В пределах достаточно больших организаций и подразделений имеет смысл разделение полномочий ответственных пользователь не только между подразделениями, но и между разными сферами ответственности в рамках одного подразделения. Например, может иметь смысл выделение отдельных пользователей, ответственных за формулу расчета персональных рейтингов сотрудников, отдельных пользователей, ответственных за сопровождение информации о научном оборудовании подразделения и отдельных пользователей, обязанностью которых является исправление ошибок при добавлении сотрудниками своих результатов научно-исследовательской деятельности. Такие ошибки возможны, например, если статья будет добавлена в систему сразу двумя соавторами, один из которых допустит опечатку в ее названии. При этом в системе окажется две учетные записи одной и той же статьи.
Таким образом, может возникнуть необходимость предоставить пользователю
некоторые права доступа к объектам в рамках определенного подразделения,
не предоставляя ему полных прав ответственного по этому подразделению.
Для этого в системе предусмотрено несколько различных видов отношений между
пользователем и подразделением, каждое из которых дает свои права доступа
к результатам научно-исследовательской деятельности сотрудников этого
подразделения. Для этого на странице управления правами доступа, находящейся
по адресу https://istina.msu.ru/unified_permissions
, необходимо нажать
на ссылку «добавить разрешение в рамках подразделения» после этого на
экран будет выведено диалоговое окно, представленное на рисунке
178.
Рис. 178 Диалог добавления разрешения в рамках подразделения
В поле «пользователь», как и в случае добавления ответственного по подразделению, необходимо ввести полное имя пользователя. После ввода в поле первых нескольких символов фамилии сотрудника можно выбрать из выпадающего списка всех сотрудников, фамилии которых начинаются с указанных символов. Далее необходимо выбрать из выпадающего списка тип разрешения, которое должно быть предоставлено данному пользователю. В системе предусмотрены следующие виды разрешений пользователя в рамках подразделения.
- Отдел кадров (подтверждение должностей).
- Доступ к заявлениям на конкурс замещения должностей. Данное разрешение означает назначение ответственного за сопровождение конкурсов на замещение вакантных должностей, полномочия которого рассматриваются в соответствующем разделе настоящей инструкции. В настоящее время ответственный по подразделению не имеет права самостоятельно предоставлять доступ к заявлениям на конкурс замещения должностей в рамках подразделения. Это решение связано с тем, что предоставление этого вида доступа должно согласовываться с Ученым советом МГУ. В данный момент только разработчики системы имеют право предоставлять этот вид доступа.
- Может подтверждать достижения.
- Может подтверждать персональные отчеты.
- Может подтверждать проекты.
- Ответственный за оборудование. Данное разрешение влияет на права доступа пользователя к научному оборудованию, ассоциированному с подразделением. Управление правами доступа к оборудованию рассматривается в соответствующем разделе настоящей инструкции.
- Может просматривать годовой отчет.
- Может просматривать персональные рейтинги. Данное разрешение влияет на права доступа пользователя к ассоциированным с подразделением формулам для расчета персональных рейтингов сотрудников подразделение и дает право просматривать рейтинги сотрудников. Управление правами доступа к персональным рейтингам сотрудников описано в соответствующем разделе настоящей инструкции.
- Может редактировать сметы всех НИР.
Управление доступом к отдельным объектам в рамках подразделения
Управление доступом к диссертационным советам
Каждый из диссертационных советов, информация о которых хранится в системе, ассоциирован с определенной организацией или подразделением. Ответственные за сопровождение информации в рамках подразделения имеют право редактировать ассоциированные с ним советы. Для МГУ существует выделенная роль пользователя, являющегося ответственным за сопровождение информации по диссертационным советам. Для других организаций в настоящее время обязанности ответственного по диссертационным советам выполняет ответственный за сопровождение общей информации об организации и подразделению. Для подразделений МГУ обязанности ответственного за диссертационный советы исполняет либо ответственный за диссертационные советы по МГУ, либо ответственный за сопровождение общей информации по подразделению в целом.
Список всех диссертационных советов, связанных с подразделением, представлен на главной странице этого подразделения. При нажатии ответственным по подразделению на номер совета на экране появится меню управления советом, представленное на рисунке 179. Ответственный по подразделению имеет право добавлять и удалять членов совета, некоторые из которых также имеют право редактирования совета, хотя и не имеют особых прав доступа к другим диссертационным советам в рамках подразделения и прочим связанным с подразделением объектам. Для того, чтобы добавить нового члена совета, необходимо нажать на ссылку «добавить членство», выделенную на рисунке рисунке 179. После этого необходимо указать имя члена совета, его специальность и должность в совете. От должности пользователя в совете зависят права доступа нового члена совета к этому совету. Должность пользователя в совете может быть одной из следующих.
- Член совета.
- Ученый секретарь.
- Заместитель председателя.
- Председатель.
Для того, чтобы изменить должность одного из членов совета, либо удалить членство в совете, необходимо нажать на имя соответствующего сотрудника в списке членов совета.
Рис. 179 Диалог редактирования диссертационного совета
Таким образом, особые права доступа к диссертационному совету имеют пользователи следующих категорий.
- Администратор системы.
- Ответственный по подразделению, с которым ассоциирован совет, его родительскому подразделению или организации.
- Член совета.
- Ученый секретарь.
- Заместитель председателя.
- Председатель.
Администратор системы и ответственный по подразделению, с которым ассоциирован диссертационный совет, имеют право указывать ученого секретаря совета и обладают всеми правами доступа, перечисленными в настоящей инструкции для ученого секретаря совета.
Ученый секретарь диссертационного совета имеет следующие права доступа к учетной записи совета и связанных с ним объектов.
- Право редактировать состав диссертационного совета.
- Право редактировать информацию об отдельных членах диссертационного совета, включая не зарегистрированных как пользователи ИАС «ИСТИНА».
- Право добавлять результаты научно-исследовательской деятельности членов диссертационного совета.
- Право создавать и редактировать учетные записи диссертаций, защищенных в данном совете, а также удалять сведения о связи с диссертациями, ошибочно внесенными в систему как защищенные в данном совете.
Председатель и заместитель председателя совета не имеют особых прав доступа к учетной записи совета. Их должности могут учитываться при других аспектах работы системы – например, иметь больший вес при подсчете персональных рейтингов.
Управление доступом к научному оборудованию
Помимо информации о результатах научно-исследовательской деятельности, ИАС «ИСТИНА» хранит информацию об имеющемся у организации научном оборудовании. Зарегистрированное в системе оборудование ассоциировано с определенным структурным подразделением, и редактирование информации о научном оборудовании доступно ответственным по данному подразделению и пользователю, обладающему разрешением «ответственный за оборудование» в рамках подразделения. Процедура предоставления пользователем данного разрешения представлена в соответствующем разделе настоящей инструкции. Ответственный за сопровождение информации о научном оборудовании имеет следующие обязанности.
- Подтверждение сведений о научном оборудовании подразделения.
- Создание страниц новых комплексов научного оборудования.
- Назначение ответственных за сопровождение информации о новых комплексах научного оборудования.
Далее описано, какие права доступа, необходимые для выполнения перечисленных функций, имеет ответственный за оборудование в рамках подразделение. Заметим, что права доступа к объектам системы, предоставляемые ответственному за оборудование в рамках подразделения, предоставляются также и «общему» ответственному по подразделению.
Помимо ответственного за оборудование в рамках подразделения, система предусматривает назначение пользователей ответственными за сопровождение информации по определенному оборудованию. Такие пользователи имеют право редактировать информацию об определенном комплексе оборудования, но не имеют особых прав доступа к другим комплексам оборудования того же подразделения, либо к другим объектам, относящимся к подразделению.
Ответственный по подразделению имеет право назначения ответственных за конкретные комплексы оборудования, ассоциированные с данным подразделением. Для этого на главной странице подразделения необходимо перейти по ссылке «научное оборудование подразделения», после чего выбрать из списка комплекс, для которого требуется назначить ответственного. В правом верхнем углу страницы научного комплекса имеется гиперссылка «редактировать». После нажатия на нее, на появившейся странице редактирования атрибутов научного комплекса можно перейти к вкладке «ответственные», представленной на рисунке 180. Таким образом возможно назначить нового ответственного за оборудование, либо удалить имеющихся ответственных, список которых представлен в нижней части экрана.
Рис. 180 Диалог добавления разрешения для оборудования
Таким образом, различные права на доступ к комплексу научного оборудования имеют следующие пользователи.
- Администратор системы.
- Ответственный по подразделению, с которым ассоциирован комплекс, его родительскому подразделению или организации.
- Пользователь, обладающий разрешением «может подтверждать списки оборудования» в рамках подразделения, с которым ассоциирован комплекс, его родительского подразделения или организации.
- Пользователь, ответственный за конкретный научный комплекс. Отношения,
связывающие ответственного пользователя с научным комплексом, в системе
бывают следующих видов.
- Научный руководитель.
- Материально ответственное лицо.
- Ответственный за эксплуатацию.
- Ответственный за информацию.
- Ответственный по аспирантуре.
- Делегирование полномочий ответственного.
Правила, в соответствии которыми пользователю предоставляется доступ к учетным записям комплексов научного оборудования, выглядят следующим образом.
- Ответственный по подразделению, либо ответственный за сопровождение информации об оборудовании по подразделению, имеют право назначать ответственных за сопровождение информации об отдельных комплексах научного оборудования.
- Ответственный по подразделению, либо ответственный за сопровождение информации об оборудовании по подразделению, с которым связан прибор, имеют право редактировать параметры оборудования и подписывать научные результаты, аффилированные с оборудованием.
- Ответственный по подразделению, либо ответственный за сопровождение информации об оборудовании по подразделению, имеют право подтверждать наличие данного оборудование, после чего пользователь, создавший учетную запись оборудования, лишается права удалить ее.
- Научный руководитель оборудования имеет право подписывать, либо удалять научные результаты, аффилированные с оборудованием.
- Пользователь, создавший учетную запись оборудования, имеет право редактировать учетную запись оборудования и имеет право удалять ее, если запись не подписана ответственным за сопровождение информации об оборудовании или ответственный по подразделению.
- Пользователь ответственный за сопровождение информации по данному оборудованию, имеет право редактировать запись оборудования.
- Пользователь, определенным образом связанный с конкретной учетной записью оборудования, имеет право удалить эту связь.
- Ответственный за сопровождение информации об оборудовании по подразделению, с которым ассоциировано оборудование, имеет право включать комплекс оборудование в качестве составного элемента в другой комплекс научного оборудования, а также отменять данное включение.
Управление доступом к рейтингам пользователей
Одной из важный функций ИАС «ИСТИНА» является подсчет рейтингов научных сотрудников на основе информации об их результатах научно-исследовательской деятельности. Рейтинг может рассчитываться по достаточно сложной формуле, ассоциированной с подразделением. Индивидуальный рейтинг сотрудника недоступен для просмотра большинству пользователей системы и никак не может быть изменен непосредственно. Рейтинг сотрудника изменяется при добавлении результатов научно-исследовательской деятельности, влияющих на рейтинг, либо в результате изменения формулы расчета рейтинга.
Таким образом, к ассоциированной с подразделением формуле для расчета рейтингов сотрудников допустимы следующие виды доступа.
- Расчет по формуле рейтинга для определенного сотрудника. Заметим, что для выполнения этой операции пользователь должен не только обладать правом соответствующего доступа к формуле, но и правом на просмотр персонального рейтинга сотрудника.
- Редактирование формулы.
- Редактирование привязки формулы к подразделению. Рейтинг сотрудников каждого подразделения вычисляется по собственной формуле, однако, одна и та же формула может быть ассоциирована с разными подразделениями.
- Создание новой формулы.
Среди пользователей, обладающих особыми правами доступа к формуле, можно выделить следующих.
- Администратор системы.
- Создатель формулы.
- Ответственный по подразделению, в котором работает создатель формулы.
- Ответственный по подразделению для привязки формулы к подразделению.
- Пользователь, обладающий разрешением «может просматривать персональные рейтинги» для подразделения, с которым ассоциирована формула. В соответствующем разделе инструкции описана процедура выдачи пользователям данного разрешения в рамках подразделения.
- Пользователь, для которого считается рейтинг — для расчета рейтинга по формуле.
- Ответственный по подразделению, в котором работает сотрудник для расчета рейтинга сотрудника по формуле.
- Пользователь, обладающий разрешением «может просматривать персональные рейтинги» для подразделения, в котором работает сотрудник, для которого считается рейтинг.
Права на выполнение перечисленных операций над формулами расчета рейтингов выглядят следующим образом.
Для того, чтобы пользователь имел право рассчитывать персональный рейтинг сотрудника необходимо, чтобы он имел соответствующие права доступа как к учетной записи сотрудника, так и к формуле. Необходимыми правами доступа к учетной записи сотрудника обладают:
- администратор системы;
- сотрудник, для которого считается рейтинг;
- ответственный по подразделению, в котором работает этот сотрудник;
- пользователь, обладающий разрешением «может просматривать персональные рейтинги» для указанного подразделения.
Необходимыми правами доступа к объекту формулы обладают:
- создатель формулы;
- ответственный по подразделению, в котором работает создатель формулы;
- ответственный по подразделению, с которым ассоциирована формула;
- пользователь, обладающий разрешением «может просматривать персональные рейтинги» для подразделения, с которым ассоциирована формула.
Таким образом, право рассчитывать по определенной формуле персональный рейтинг определенного сотрудника имеет пользователь, связанный с целевым сотрудником хотя бы одним отношением из указанных в первом перечне, и одновременно связанный с формулой хотя бы одним из отношений, указанных во втором перечне.
Право редактировать формулу имеет только создатель формулы. Создать новую формулу имеет право любой зарегистрированный пользователь.
Ответственный по подразделению имеет право ассоциировать формулы с подконтрольным ему подразделением.
Управление доступом к конкурсам и заявкам на конкурсы
В настоящее время управление доступом к конкурсам и заявкам на конкурсы может осуществляться только пользователем, имеющим полномочия администратора системы, посредством интерфейса администрирования Django. Использование данного механизма не рассматривается в настоящей инструкции. Для создания нового конкурса и определения прав доступа к нему следует обратиться к персоналу сайта.
После создания конкурса авторизованный пользователь может подать заявку на конкурс, воспользовавшись ссылкой «конкурсы» на главной странице ИАС «ИСТИНА», либо ссылкой «конкурсы» на собственной персональной странице. В результате нажатия на эту ссылку на экран будет выведен список конкурсов, на которые пользователь подал или имеет право подать заявку.
# Пользователь, подавший заявку имеет право отозвать или изменить ее.
- Ответственный по подразделению, в котором работает пользователь, подавший заявку, также имеет право отозвать или редактировать ее.
- Организатор конкурса или эксперт по конкурсу имеет право просматривать заявку.
В настоящее время назначать экспертов для конкурса имеет право только администратор системы.
Среди объектов системы отдельно выделены конкурсы на замещение вакантных должностей. В отличие от других конкурсов, управление данной категорией конкурсов может осуществляться пользователями, имеющими полномочия ответственных в рамках организаций и подразделений и не относящимися к персоналу сайта. Управление доступом к конкурсам на замещение вакантных должностей рассматривается в соответствующем разделе настоящей инструкции.
Управление доступом к конкурсам на замещение вакантных должностей
Одной из функций ИАС «ИСТИНА» является автоматизация управления конкурсами на замещение вакантных должностей. Привилегированный доступ к управлению конкурсами имеют две выделенных категории пользователей: ответственные за создание конкурсов и ответственный за сопровождение конкурсов. Следует обратить внимание на существенное различие между этими двумя ролями. Пользователи, ответственные за создание новых конкурсов, могут бать ассоциированы только с определенной организацией, но не с отдельными ее подразделениями. Данные пользователи имеют право создавать и удалять учетные записи конкурсов. Вместе с тем, пользователь, ответственный за сопровождение конкурсов, ассоциируется с определенным подразделением. В настоящее время доступ к заявлениям на конкурс замещения должностей может предоставляться только персоналом сайта по согласованию с Ученым советом МГУ. Ответственный по подразделению не имеет права предоставлять доступ к заявлениям на конкурс на замещение должностей в рамках подразделения.
В настоящее время роль ответственного за создание конкурсов является глобальной, то есть каждый пользователь либо обладает данной ролью для всех зарегистрированных в системе организаций, либо не обладает ею. Ведется работа по модификации этой роли с целью обеспечения возможности выдачи ее пользователю в рамках определенной организации.
Управление конкурсами на замещение вакантных должностей осуществляется через
отдельный интерфейсный модуль. Для добавления нового конкурса необходимо
войти на соответствующую страницу ИАС «ИСТИНА», расположенную по адресу https://istina.msu.ru/vacancies/add
. Добавлять новые конкурсы имеет
право только ответственный за создание конкурсов на замещение вакантных
должностей, ассоциированный с организацией, для которой создается конкурс.
Пользователь, ответственный за сопровождение конкурсов, имеет право выполнять следующие действия:
- Просматривать заявления сотрудников на участие в конкурсе на замещение должностей.
- Подтверждать заявления сотрудников на участие в конкурсе на замещение должностей.
Управление доступом к информации о научно-исследовательских проектах
Особые права доступа к научно-исследовательским проектам имеют следующие пользователи:
- Ответственный по подразделению, в котором выполняется проект.
- Ответственный за сопровождение информации о сметах НИР в рамках организации или подразделения, в котором выполняется проект.
- Руководитель НИР.
- Исполнители НИР.
Управление доступом к подсистеме учета деятельности аспирантов
Особые права доступа к подсистеме учета деятельности аспирантов имеют следующие пользователи.
- Администратор подсистемы учета деятельности аспирантов, то есть пользователь, обладающий соответствующей глобальной ролью. Данный пользователь имеет право просматривать и редактировать все данные, относящиеся к соответствующей подсистеме.
- Руководитель подсистемы учета деятельности аспирантов, то есть пользователь, обладающий соответствующей глобальной ролью. Данный пользователь имеет право просматривать служебную информацию подсистемы, но не имеет право редактировать ее.
- Ответственный за сопровождение информации по учету деятельности аспирантов в рамках подразделения. Данные пользователи имеют право редактировать информацию о деятельности аспирантов в рамках подконтрольных им подразделений.
Предотвращение конфликтов полномочий с помощью Avanpost IDM
Предотвращение конфликтных полномочий (SOD-конфликтов) является одним из важных процессов при формировании ролевой модели в организации. Как с помощью системы управления учетными записями и правами доступа предотвратить риски совмещения полномочий — убедимся на примере Avanpost IDM 6.0, который в том числе обеспечивает автоматизированный контроль над SoD-конфликтами.Введение
Управление доступом к информационным ресурсам современной организации является сложным многообразием различных процессов, таких как управление ролевой моделью, предоставление доступа при приеме на работу и отзыв при увольнении, согласование заявок на доступ и их исполнение, аудит прав доступа и расследование инцидентов. От эффективности этих процессов зависит не только защищенность корпоративной информации, но и производительность работы сотрудников, а в ряде случае и контрагентов. Чтобы обеспечить компромисс между безопасностью и эффективностью бизнес-процессов, необходимо организовать единый центр управления данными процессами с максимальным сокращением числа ручных операций и минимизации человеческого фактора при принятии решений. Внедрение ролевого управления доступом может принести много пользы, если определять роли правильно. Ролевая модель доступа позволяет предоставлять и ограничивать доступ как сотрудникам компании, так и контрактникам, аудиторам и другим временным пользователям, даже клиентам. Основная трудность при использовании ролей — правильно их определить. В статье рассмотрим, как с помощью системы управления учетными записями и правами доступа Avanpost IDM 6.0, разработанной российской компанией «Аванпост», обеспечить предотвращение рисков совмещения полномочий. А сфокусируем внимание на реализации правил разграничения полномочий в Avanpost IDM, которые позволяют контролировать совмещение критичных функций пользователем.
Предотвращение рисков совмещения полномочий с помощью Avanpost IDM
Одним из процессов Avanpost IDM является выявление и предотвращение конфликтных полномочий, или SOD-конфликтов (Segregation of Duties). Этот процесс необходим для обеспечения принципа разделения ответственности, когда один человек не может обладать набором полномочий, например, позволяющим единолично выполнить критичную для бизнеса операцию. Иными словами, такую задачу должны выполнять два человека или более. Например, классический пример SOD в финансовых организациях — запрет совмещения должностей операциониста и контроллера при проведении банковской операции. Конфликтовать могут как роли, настраиваемые в IDM, так и конкретные права на уровне целевой системы. Контроль SOD-конфликтов осуществляется при сертификации доступа, при запросе доступа через workflow и при назначении ролей. При этом реагирование на обнаруженные конфликты может быть разным. Например, при выявлении конфликта полномочий в ходе формирования заявки на доступ система может попросить отредактировать заявку или направить ее на дополнительное согласование. Также конфликтному набору прав может быть повышен уровень риска, что потребует более частого прохождения процедуры ресертификации. Для осуществления подобного контроля в Avanpost IDM настраивается матрица конфликтных полномочий, где указываются, какие роли не должны быть совмещены. В Avanpost IDM это обеспечивается настройкой правил сочетаний — правил совместимости и зависимости ролей друг от друга. В Avanpost IDM для реализации правил сочетаний определяется сочетаемость роли или каталога. Сочетаемые роли и каталоги — это роли и каталоги, которые могут быть назначены одновременно с текущей ролью. Несочетаемые роли и каталоги — это роли/каталоги, которые, соответственно, не могут быть назначены одновременно с текущей ролью.
Определение правил сочетания ролей в Avanpost IDM
Определение правил сочетания ролей производится в режиме «Настройка ролей» на вкладке «Правила сочетания». В рабочей области «Настройки совместимости с ролями» в выпадающем списке выбирается тип сочетаемости текущей роли со всеми ролями и каталогами в Avanpost IDM. Можно выбрать два варианта:
- Сочетается со всеми
- Не сочетается ни с чем
Рисунок 1. Рабочая область «Настройки совместимости с ролями» в Avanpost IDM
При настройке правил сочетаний для ролей в Avanpost IDM необходимо выбрать тип правила «Для ролей…». В нашем примере для роли «АБС Операционист» в список совместимостей добавим роли «АБС Администратор», «АБС Главный бухгалтер» и «АБС Контролер». Для выбранных ролей необходимо определить тип сочетаемости. Есть два условия: «Не сочетается» или «Сочетается». Мы укажем «Не сочетается».
Рисунок 2. Вкладка «Правила сочетания» в Avanpost IDM
Таким образом, при запросе роли «АБС Администратор», «АБС Главный бухгалтер» или «АБС контролер» пользователем с правами «АБС Операционист» Avanpost IDM автоматически откажет в наделении прав. Кроме того, если будет запрос прав пользователя одновременно на «АБС Контролер» и «АБС Операционист» система также откажет в наделении прав, т. к. обнаружит конфликт ролей.
Рисунок 3. Запрос прав «АБС Контролер» и «АБС Операционист» в Avanpost IDM
Рисунок 4. Обнаружение конфликта запрашиваемых ролей в Avanpost IDM
При обнаружении конфликта ролей в Avanpost IDM в рамках запроса можно удалить одну из запрашиваемых ролей, например роль «АБС Операционист».
Рисунок 5. Удаление роли «АБС Операционист» из запроса в Avanpost IDM
Кроме того, если у пользователя уже есть одна из запрашиваемых ролей, система также на это укажет.
Рисунок 6. Информирование о наличии у пользователя роли «АБС Операционист» в Avanpost IDM
Конфликтующую роль можно также отозвать. Например, если пользователю в АБС необходимо иметь права «АБС Контролер», но у него уже есть права «АБС Операциониста», он может выполнить одновременно запрос на отзыв роли «АБС Операционист» и на доступ к АБС с правами «АБС Контролер».
Рисунок 7. Запрос на отзыв роли «АБС Операционист» и на доступ к АБС с правами «АБС Контролер» в Avanpost IDM
Аналогичным образом настраиваются правила для каталогов (каталогов ролей) — в форме «Выбор каталога» выбираются нужные каталоги и определяется тип сочетаемости.
Определение зависимостей роли в Avanpost IDM
Определение зависимостей роли — это создание списка ролей, без которых не может быть назначена текущая роль. Для этого в рабочей обасти «Зависимости роли» необходимо добавить зависимости: в форме «Выбор роли» выбрать необходимые роли. Название выбранной роли будет окрашено в красный цвет. Роли добавляются в список зависимостей роли. Например, роль «Доступ в интернет (расширенный)» требует наличие роли «Доступ в интернет (стандртный)». Если пользователь сделает запрос на роль «Доступ в интернет (расширенный)», при этом у него не будет роли «Доступ в интернет (стандртный)», то Avanpost IDM укажет на конфликт ролей.
Рисунок 8. Конфликт ролей при запросе на роль «Доступ в интернет (расширенный)» в Avanpost IDM
Система предложит добавить зависимую роль в запрос.
Рисунок 9. Добавление зависимой роли в запрос в Avanpost IDM
Выводы
В статье наглядно продемонстрировано, как с помощью Avanpost IDM предотвратить риски совмещения полномочий. Внедрение ролевого управления доступом может быть крайне полезным для бизнеса, если определять роли правильно. Avanpost IDM обеспечивает автоматизированный контроль над конфликтами полномочий (SoD-конфликтами) как при формировании ролей в виде совокупности других ролей, так и при назначении пользователю новых ролей. Настройка правил сочетаний ролей позволяет контролировать совмещение критичных функций пользователем.
Anti-malware
Управление полномочиями для разработки в SAP HANA — Наука
Сегодня практически каждый пользователь SAP сталкивается с SAP HANA – системой управления базами данных, которая также используется как среда разработки приложений. Но прежде чем начать разрабатывать приложения или даже писать простые запросы к базе, необходимо настроить доступ пользователей и определить доступные для них полномочия.
В этой статье мы не касаемся конкретных требований по безопасности, так как они зависят от предприятия. Приведём лишь общие сведения о работе с полномочиями – создании и присвоении ролей пользователям. Всё нижеописанное актуально для версии SAP HANA Studio 2.3.17.00000. В других версиях могут быть небольшие различия, но общая концепция сохраняется.
Создание пользователя в SAP HANA
Предположим, что HANA Studio уже установлена, настроена, в ней созданы системы (ландшафты) для разработки.
Прежде всего необходимо создать учётную запись пользователя. Для этого выбирается система, в которой будет создан пользователь. В дереве каталогов выбирается папка Security и объект Users внутри папки. В контекстном меню надо нажать на пункт New User – это стандартный пользователь. Также можно выбрать Restricted User – такой пользователь не может создавать объекты, видеть данные, и он подключается только по HTTP.
В открывшемся окне вводится имя пользователя в соответствии с порядками, введёнными в организации. Далее нужно выбрать тип аутентификации. Если по паролю, то вводится и подтверждается начальный пароль. Также возможна аутентификация по протоколу Kerberos, сопоставляющему идентификацию в Windows Active Directory. Для этого указывается login, по которому будет осуществляется авторизация по протоколу.
На следующем скриншоте показано, что пользователь создан с параметром аутентификации по протоколу Kerberos. Выставленный чекбокс напротив параметра SAML означает, что для данного пользователя используется сертификат SAML. С помощью данного сертификата реализуется технология единого входа, т.е. он позволяет не осуществлять повторную аутентификацию и использовать учётную запись для нескольких систем и программных продуктов. Например, таким образом можно получить доступ к SAP HANA и Business Object – инструменту разработки отчётности. Настройка сертификата осуществляется с помощью кнопки Configure:
Предполагается, что при настройке систем сертификат уже был установлен в систему. В открывшемся окне нажимается кнопка Add (добавить), выбирается из списка необходимый сертификат и указывается пользователь для целевой системы – в данном случае Business Object:
Также имеется возможность использовать сертификат X.509. Он необходим для доступа SAP HANA XS по протоколу HTTP. Для его использования нужно повторить действия, аналогичные для протокола SAML.
После того как всё введено, необходимо произвести активацию:
Вышеописанные действия необходимо повторить для пользователя в каждой системе, в которой он заводится.
Присвоение полномочий пользователю в SAP HANA
Созданной учётной записи необходимы полномочия, чтобы осуществлять полноценную разработку. При создании стандартного пользователя по умолчанию присваивается роль PUBLIC, предоставляющая доступ только на чтение:
Остальные роли присваиваются по необходимости. Каждая роль даёт определённые полномочия на определённые объекты. Если взять конкретную роль, то в ней может быть несколько типов привилегий. Ниже на картинке представлена общая схема:
1. System Privileges – полномочия для администрирования (создание и изменение схем, мониторинг, управление пользователями). Для обычного пользователя и большинства разработчиков данный тип привилегий не требуется.
2. Object Privileges – полномочия на конкретный объект (каталог, схему, представление и т.д.). Ниже пример того, как на объект – схему – предоставлены полномочия только на запуск операции select:
3. Analytic Privileges – полномочия на доступ к данным в определённом объекте. Они используются, когда есть необходимость разграничить выгружаемые данные в зависимости от роли пользователя. Обычно аналитические привилегии привязаны к конкретному объекту, например, к представлению. В общей же роли, допустим, на целую схему аналитические привилегии не добавляют, хотя это зависит от регламентов безопасности, принятых на предприятии.
4. Package Privileges – полномочия на пакеты (каталоги, папки), в которых находятся объекты. К примеру, в общей роли на схему можно разграничить, к каким пакетам будет доступ у пользователя и какие опции будут при этом доступны. На указанном ниже примере видно, что данная роль предоставляет доступ к списку пакетов, с возможностью чтения, редактирования, активации как для уже имеющихся объектов, так и для импортированных:
5. Application Privileges – полномочия на использование приложений SAP HANA XS. В таком случае приложение будет указано как объект.
6. Privileges on Users – полномочия, предоставляемые конкретному пользователю. Например, такая роль применяется для возможности осуществлять дебаг объекта.
После создания учётной записи пользователя и определения необходимости предоставляемых полномочий создаётся роль в соответствии с правилами безопасности предприятия. Для создания роли необходимо выбрать папку Security в выбранной системе и в контекстном меню выбрать пункт New Role:
В меню создания роли необходимо указать наименование роли в соответствии с положениями, принятыми на предприятии. Далее в соответствующих разделах по нажатию кнопки «плюс» добавляются необходимые роли и привилегии, если это необходимо. Таким образом можно создать и так называемую групповую роль, в которую включены несколько ролей, и отдельную роль на конкретный объект. После всех выбранных объектов роль необходимо активировать.
Созданную роль можно назначить необходимому пользователю, открыв свойства учётной записи пользователя и при нажатии «плюса» в разделе присвоенных ролей выбрав необходимую из списка:
После выполнения всех этих действий будет готова учётная запись пользователя, для него будет создана и присвоена роль. Пользователь уже сможет осуществлять разработку в SAP HANA Studio, если, конечно, ему были присвоены необходимые роли. Как только разработчик создаст объекты – например, аналитический отчёт для пользователей – потребуется сделать роли для такого объекта. Это позволит разграничить доступ к данным, выгружаемым из этого отчёта.
Создание ролей на объекты аналитических привилегий в SAP HANA
При большом количестве пользователей различных бизнес-сфер и разработок для них может возникнуть необходимость разделять доступ, например, к данным или конкретным отчётам для сохранения конфиденциальности. Допустим, отделу аналитики, который занимается отчётами о продажах, не нужно знать данные о заработной плате – их должны видеть только бухгалтерия и отдел кадров. Таким образом, понадобится создать как минимум две роли, разграничивающие эти сферы. Реализовать это можно посредством хранения процедур экстракции таких данных в двух разных каталогах, которые будут ограничены в доступе на выполнение созданными ролями.
В предыдущем разделе был описан процесс, в результате которого имеется учётная запись пользователя с присвоенной ролью (например, на конкретный пакет с объектами). Однако при создании отчёта в Business Object может возникнуть необходимость в полномочиях на объект (т.е. на конкретное представление) и в доступе к определённым данным. В таком случае, чтобы ограничить доступ к объекту, создаётся объектная роль, а для ограничения данных создаётся аналитическая привилегия.
Объектная роль
Объектная роль, как понятно из названия, нужна для предоставления доступа к конкретному объекту. Если имеется возможность создания ролей в каталоге Security, то процесс уже был описан выше. В каталоге создаётся новая роль. В разделе Object Privileges перечисляются объекты, к которым будет предоставлен доступ. Если речь идёт об отчёте Business Object, то указывается модель отчёта в HANA и возможные операции (в случае доступа пользователя к отчёту указывается только select).
Может произойти ситуация, когда возможности создавать роли в каталоге Security нет, например, если роль создаётся разработчиком, а полномочия на создание ролей в этом каталоге есть только у администратора системы. В таком случае роль создаётся в репозитории, т.е. локально у себя на диске, а затем переносится в общий каталог. Если репозитория нет в разделе рядом с системами, то для его открытия нужно зайти в раздел Window, далее Show View – Other. В появившемся окне выбирается раздел SAP HANA и в нём Repositories:
В открывшемся репозитории выбирается нужная система (при первом запуске HANA Studio предложит выбрать место на диске для локального хранения файлов). Далее в нужном каталоге создаётся роль – подчеркнём, что желательно хранить роли отдельно от других объектов, в отдельном пакете. Правым кликом по пакету вызывается контекстное меню, в котором выбирается пункт New, далее Other и в открывшемся окне в разделе Database Development нужно найти объект Role.
Указывается наименование и выбирается действие Finish. Созданная роль откроется в рабочей области HANA Studio. В самой роли в виде SQL кода указывается адрес нахождения роли, включаемые в роль объекты и допустимые операции с ними:
После создания роль необходимо сохранить и активировать, чтобы она перенеслась из репозитория в систему. Сохраняется роль по кнопке на панели инструментов. Активация осуществляется с помощью вызова контекстного меню по правому клику на объектной роли, которую необходимо активировать.
Аналитическая привилегия
Если объектная роль ограничивает доступ к конкретному объекту, то аналитическая привилегия ограничивает определённый срез данных. Например, данные формируются в разрезе нескольких отделов предприятия. В таком случае имеет смысл разделить вывод данных в отчёте в зависимости от принадлежности пользователя к отделу (подобное разделение зависит от политики безопасности в компании).
На модели SAP HANA для отчёта должен быть выставлен параметр Classical Analytic Privileges. Это означает, что пользователь не сможет запустить отчёт для просмотра данных, если у него нет аналитической привилегии на этот отчёт.
Создание аналитической привилегии осуществляется в разделе Systems. Для этого необходимо выбрать систему и каталог, в котором будет создан объект. Правым кликом по каталогу вызывается контекстное меню, в нём выбирается пункт New – Analytic Privilege. Указывается наименование, и, если нужно, привилегия создаётся как копия другой привилегии.
Далее в разделе Secured Models указываются необходимые для отчёта модели, в которых выставлен параметр аналитических привилегий (см. выше). В разделе Associated Attributes Restrictions определяются поля, по которым будет ограничиваться разрез данных. В разделе Assign Restrictions указываются значения полей, по которым будут ограничены данные. После всех необходимых действий привилегия сохраняется и активируется.
Полученная привилегия может быть добавлена в роль, а роль – в свою очередь – назначена пользователю. Таким образом, осуществляется разграничение доступа к данным.
Описанные в данной статье действия показывают, как осуществляется создание ролей и назначение их пользователям SAP HANA. Создавая роли, можно как предоставить доступ к определённым объектам (папкам, системам, процедурам и т.д.), так и ограничить доступ к ним или выгружаемым данным. В ситуации с большим количеством пользователей, которые могут относиться к разным бизнес-сферам, потребуется добавлять каждую разработку в определённую роль или группу ролей и назначать их пользователям.
NAUKA ВКонтакте
NAUKA в Facebook
NAUKA в Instagram
Вернуться в пресс-центр
Базовая методика аудита полномочий пользователей в системе SAP ERP — ISO27000.ru
Важнейшая корпоративная информация и связанные с ней автоматизируемые процессы имеют тенденцию постепенно перебираться из разрозненных файловых систем, баз данных и отдельных приложений в единые системы управления предприятием, наиболее распространенной из которых является SAP ERP. При этом в качестве одной из ключевых задач аудита информационной безопасности становится аудит безопасности данной ERP-системы, т.е. акцент смещается с общесистемного аудита на внутрисистемый. Наиболее трудоемкой задачей такого аудита ERP-системы, является аудит распределения полномочий пользователей.
Методика аудита полномочий в SAP ERP, которую нам пришлось разрабатывать, опираясь на зарубежные руководства, включает в себя много чего и, вообще говоря, довольно сложна. Чтобы как-то упростить и удешевить процесс я разбиваю данную методику на две части: базовую и расширенную. Базовая часть методики включает в себя: анализ концепции авторизации, анализ состава пользователей, обзор назначенных пользователям профилей и ролей, анализ авторизаций (объектов, транзакций и уровней доступа) внутри профилей, проверка установленных лимитов.
Далее приведу основные шаги базовой методики в сокращенном виде. Основная цель — дать общее представления о том, что и в какой последовательности надо делать, т.е. в общих чертах как выгружать информацию из SAP и на что смотреть. Поскольку в открытых русскоязычных источниках я такой информации не встречал, это должно быть полезно нашему проф. сообществу.
Расширенную методику анализа полномочий в SAP ERM приведу в следующей статье данного цикла. Ее имеет смысл использовать в случае, если все проблемы, выявленные на базовом уровне, устранены.
Анализ концепции авторизации SAP
Концепция авторизации устанавливает взаимосвязь между объектами авторизации SAP (таблицами, транзакциями и программами ABAP/4) и субъектами – пользователями SAP. Механизмом реализации модели ролевого доступа в SAP выступают пользовательские профили, группы и роли. Концепция авторизации должна обеспечивать правильное определение профилей и групп, ролей их состав и соответствие функциональным ролям пользователей в бизнес-процессах. При определении полномочий пользователя в системе должен соблюдаться принцип минимизации привилегий и принцип разделения критичных ролей в бизнес-процессах. При анализе концепции авторизации проверяется наличие в организации необходимых внутренних нормативных документов, подходов и процессов, определяющих концепцию авторизации в системе SAP и позволяющих поддерживать систему авторизации в актуальном состоянии.
Анализ концепции авторизации охватывает следующий круг вопросов:
- В каких внутренних нормативных документах определена концепция авторизации?
- Каким образом осуществляется оценка и обработка рисков, связанных с некорректной авторизацией?
- Кто и каким образом разрабатывал концепцию авторизации?
- Кто и каким образом реализовывал концепцию авторизации?
- Кто, каким образом и когда тестировал концепцию авторизации?
Анализ состава пользователей SAP
При анализе списка пользователей SAP выявляем:
- Лишние пользователи, которым не должно предоставляться доступа к SAP (третьи лица, уволенные сотрудники, сотрудники, которым по должности не положен доступ к SAP)
- Групповые (совместно используемые, неперсонифицированные) учетные записи пользователей.
Шаг 1. Выгрузка пользователей и групп
Способ выгрузки данных SAP:
- AIS system -> User Administration -> IS Users and Authorizations -> User -> By User ID
- Транзакция: SA38, Отчет: RSUSR002
Шаг 2. Сравнение списка пользователей SAP со списком сотрудников компании
Выявляем:
- Действующих сотрудников
- Уволенных сотрудников
- Сотрудников, допущенных работе в SAP
- Третьих лиц
Обзор профилей и ролей, назначенных пользователям SAP
Проверка назначенных пользователям профилей включает в себя следующие шаги:
- Критичные стандартные системные профили (super, administration, development) должны быть назначены только ограниченной группе системных администраторов, среди этих администраторов нет лишних людей, и данные профили соответствуют их должностным обязанностям.
- В системе не используется стандартных функциональных профилей SAP, не обеспечивающих достаточной степени разграничения полномочий (например, в бухгалтерии).
- Именование и описание профилей в системе должно соответствовать концепции авторизации.
- Назначенные пользователям профили соответствуют их должностным обязанностям, определяемым штатным расписанием и ролями пользователей в бизнес-процессах.
- Назначенные одному пользователю профили не нарушают принципа разделения критичных ролей (например, бухгалтера и казначея).
Шаг 1. Выгрузка пользователей и групп
Исходные данные:
- Матрица полномочий
- Выгрузка из системы списка пользователей
Способ выгрузки данных SAP:
- AIS system -> User Administration -> IS Users and Authorizations -> User -> By User ID
- Транзакция: SA38, Отчет: RSUSR002
Шаг 2. Выявление «общих учетных записей»
Критичные системные функции должны назначаться пользователям на индивидуальной основе. Все пользователи должны быть индивидуализированы. Не должно использоваться «общих» учетных записей (User ID) группой пользователей, таких как Admin, Operator, Author, Developer, Accountant, Buyer и т.п.
Шаг 3. Проверка состава пользовательских групп
На данном шаге устанавливается:
- В какие группы входит пользователь?
- Соответствуют ли данные группы его функциональным обязанностям?
- Где и кем определено назначение конкретных групп и какие пользователи должны входить в данные группы?
Шаг 4. Проверка назначенных пользователям профилей
Способ выгрузки данных SAP:
- AIS system -> User Administration -> IS Users and Authorizations -> User -> By User ID
- Транзакция: SA38, Отчет: RSUSR002
- Кнопка Profiles.
На данном шаге осуществляется сравнение матрицы полномочий со списком назначенных пользователю профилей:
- Все назначенные пользователю профили должны быть определены в матрице полномочий.
- Имена профилей должны соответствовать установленным правилам.
- Не должны использоваться стандартные профили SAP, особенно в бизнес-подразделениях (например, F_BUCH_ALL)
Шаг 5. Выявление пользователей, не имеющих авторизаций
В системе не должно быть пользователей без авторизаций. Пользователи без авторизаций выявляются путем сортировки списка пользователей и назначенных им профилей.
Шаг 6. Проверка стандартных профилей SAP
Рекомендуется:
- Замена на профили с урезанными правами
- Ограничение использования до 2-3 администраторов
- Не должны назначаться бизнес-пользователям
- Не должны назначаться группам пользователей
- Не должны назначаться разработчикам и внешним консультантам
Анализ авторизаций внутри профилей SAP
Для анализа авторизаций в рамках конкретных профилей используется случайная выборка из наиболее критичных профилей. В качестве критериев выбора используются следующие признаки:
- Выделяющиеся профили и роли (не описанные в матрице полномочий, имеющие отклонения от принятых правил именования, описание профиля свидетельствует о его общем (типовом) предназначении, либо использовании профиля для разработки)
- Профили с некритичными авторизациями (например, Display)
- Случайная выборка профилей из оставшихся, не вошедших в первые два пункта
В ходе анализа профиле определяется:
- Соответствуют ли авторизации профиля его назначению?
- Не предоставляет ли профиль расширенных полномочий, которые могут быть использованы для злоупотреблений?
Анализ сгенерированных профилей
Способ выгрузки списка сгенерированных профилей SAP:
- AIS system -> System Audit -> User Administration -> IS Users and Authorizations -> Profiles -> by activity group
- Транзакция: SA38, Отчет: RSUSR020
- Edit -> All selections
- Selection criteria: active versions, generated profiles
Анализ выбранных профилей:
- AIS system -> System Audit -> User Administration -> Profile Generator -> Activity group maintenance
- Транзакция: PFCG
- Выбирается группа для анализа кнопкой Display
Выполняемые проверки:
- Осмысленное описание профиля
- Цель и назначение профиля должны быть определены
- Диапазоны полномочий пользователей
- Транзакции, назначенные профилю (должны быть назначены только те транзакции, которые описаны в концепции)
- Назначенные профилю авторизации (не должно быть лишних авторизаций, особое внимание уделяется критичным авторизациям)
- Пользователи, назначенные в данную группу (не должно быть лишних людей)
Анализ запрограммированных профилей
Данный вид анализа также используется для сгенерированных профилей.
Способ выгрузки данных SAP:
- system -> System Audit -> User Administration -> IS Users and Authorizations -> Profiles -> by profile name or text
- Транзакция: SA38, Отчет: RSUSR020
- Кнопка where used list. Вывод списка пользователей, которым назначен профиль.
Выполняемые проверки:
- Достаточность описания назначения профиля и авторизаций
- Проверка авторизаций транзакций для объекта S_TCODE (какие транзакции можно выполнять?). Лишних транзакций быть не должно.
- Проверка авторизаций для объектов, имеющих организационные ограничения (если профиль предназначен для работы во определенном коде компании, то в объекты должны быть включены только авторизации, имеющие данный код компании)
- Проверка соответствия значений активности (поле ACTVT) назначению профиля. Если профиль предназначен только для просмотра, то в каждом объекте профиля поле ACTVT должно содержать значение 03 (Display)
- Все авторизации и объекты должны соответствовать назначению профиля. (Например, для бухгалтерии авторизации должны относится к классу объектов F_XXX).
- Пользователи, которым назначен данный профиль (не должно быть лишних людей).
Анализ авторизаций на установленные лимиты
Необходимо проанализировать орг. структуру организации, определяемую в SAP ERP, на предмет того, какие лимиты денежных средств и прочие ограничения установлены для подразделений и должностных лиц. Затем сопоставить данные лимиты с соответствующими нормативными документами организации.
Критичные полномочия в системе SAP
Если в одной SAP системе автоматизировано большое количество бизнес-процессов, поддерживаемое обособленными проектными командами с не очень хорошо выстроенным процессом коммуникаций между собой, не далек день, когда возникнет конфликтная ситуация пересечения полномочий пользователей бизнес-функций, являющихся нежелательными (критичными), или избыточными, с чьей-либо стороны. Для выполнения анализа и выявления спорных ситуация (необязательно из числа представленных выше), можно воспользоваться инструментом, который позволяет определить критичные полномочия в системе SAP. Критичность в данном конкретном случае определяет консультант.
Настройка
Начало процесса настройки осуществляется посредством запуска программы RSUSR008_009_NEW
См. Examples of Using Critical Authorizations and Combinations
Какие опции предоставлены для настройки?
Доступны следующие опции для настройки:
- Сами критичные полномочия
- Комбинации критичных полномочий
В качестве дополнительных фильтров доступен поиск критичных полномочий/комбинаций в разрезе ролей или пользователей системы.
См. Analyzing Users with Critical Authorizations
With the following procedure, you first define critical authorizations and the associated authorization data. You then combine the critical authorizations into a variant with which you then perform the evaluation.
Также стоит отметить, что для различных группировок критичных полномочий возможно определить цветовую схему. Мелочь, а уже не так сермяжно будет выглядеть.
Пример 1. Критические полномочия
На следующем видеофрагменте представлен пример определения критических авторизаций на объектах полномочий P_ORGIN и P_ABAP
Проверяю, что получилось
См. Evaluation of the Result List
The result lists are different, depending on the type of the selection variant
— For critical authorizations
The selected users are grouped by the IDs of critical authorizations.
To check which critical data is represented by an ID, choose the name of the ID.
To analyze the authorization data of a user master record, select the user by double-clicking it.The other fields provide additional information about the user.
Use the Profiles and Roles pushbuttons to display lists of profiles and roles assigned to the selected users.
All other functions are standard functions of the ALV grid control
— For critical combinations
The selected users are grouped by critical combinations. If you select a combination name, the corresponding critical data is displayed.
The other functions correspond to those for critical authorizations.
Пример 2. Комбинации критических полномочий
Настроив группы критичных полномочий, которые вас интересуют, можно скомбинировать их, предварительно выбрав цветовую легенду. Каждая комбинация — свой цвет, отражающийся в результатах работы программы.
На следующем видеофрагменте представлен пример настройки двух комбинаций объектов полномочий, один набор которых состоит из представленных ранее объектов (P_ORGIN и P_ABAP) с добавлением еще одного (S_DEVELOP)
Роли и полномочия — SAP-документация
SAP предоставляет стандартные роли PFCG, которые можно изменять в соответствии со своими требованиями, вырезая и вставляя соответствующие разделы в роль PFCG для конкретного клиента. Стандартные роли предназначены для использования в NetWeaver Business Client (NWBC). В следующей таблице приведены примеры стандартных Роли в PFCG:
Роль | Область применения |
---|---|
SAP_SAWE_UNIVERSAL | Экономичный персонал |
SAP_CATS_LEAN_STAFFING | Роль для перехода к приложению CATS WD |
Примечание
Роль SAP_CATS_LEAN_STAFFING предназначена только для использования при определении цели навигации (OBN) для CATS приложения Web Dynpro.Эта навигация происходит в списке работ Назначения персонала на сотрудника
, который более подробно описан в Power
Составьте список назначений сотрудников на каждого сотрудника. Роль SAP_CATS_LEAN_STAFFING не содержит видимых пунктов меню.
Конец заметки.
Использовать
Роль PFCG SAP_SAWE_UNIVERSAL содержит профиль полномочий, который можно использовать в качестве шаблона для разработки полномочий для конкретного клиента. Дополнительные сведения об этих объектах авторизации см. В Руководстве по безопасности SAP for Professional Services по адресу http: // help.sap.com в рамках SAP ERP
Центральный компонент SAP ERP
Межприложение функций SAP ERP
Руководства по безопасности mySAP ERP
SAP ECC Industry Extension Professional Services
Commercial
Начало проекта и бережливое укомплектование персоналом
.
Чтобы использовать функции Lean Staffing и Forecasting, вы создаете и применяете роли PFCG, которые обрабатываются во внутренней системе с помощью транзакции PFCG. Роли PFCG определяют объем полномочий для предоставления пользователям (например, для изменения или отображения данных о персонале) в соответствии с бизнес-роль, назначенная пользователю, как описано в следующей таблице.
Бизнес-роль | Объем авторизации |
---|---|
Сотрудник | Изменить или отобразить только собственные данные . |
Офисный помощник | Ведение данных прогноза для определенной группы сотрудников с прямым или косвенным подчинением менеджеру. |
Менеджер проекта, менеджер по консультированию, менеджер по доставке | Ведение как собственных данных прогноза, так и данных прогноза определенной группы сотрудников с использованием прямых или косвенных линий отчетности. |
Суперпользователь | Ведение данных прогноза для всех сотрудников. |
— обзор
Специальные методы рассуждений
Стандартные DL логисты могут отвечать на сложные вопросы и проверять структурные и неструктурные ограничения.Более того, выразительность языка на основе DL часто превосходит классические решения (такие как UML для проектирования и SQL для моделей хранения данных). Это поддерживает описание и проверку более сложных структурных ограничений. Например, если мы рассмотрим подход, использованный Finin et al. [50], в котором роли представлены как отдельные лица класса Role, свойство roleHierarchy : Role → Role property 3 используется для подключения каждой роли к ее прямым подролям, а canHaveRole +: Identity → Role Свойство используется для представления ролей, которые каждый идентификатор (пользователь) может активировать, прямо или косвенно, благодаря наличию положительных разрешений ролей.Таким образом, roleHierarchy ( r 1 , r 2 ) означает, что роль r 1 является суперпользователем для r 2 . Его транзитивное закрытие может быть +: Роль → Роль может использоваться для идентификации всех прямых или косвенных подроли. Отношение подроли (а также ее обратной суперроли) не является сдерживающим фактором и не определяет таксономию идентичностей (суперроль роли R должна быть более привилегированной, чем R, и доступна для более ограниченного набора идентичностей).
С помощью этих инструментов можно, например, предложить немедленное управление ограничениями SoD. Отношение назначения ролей пользователя представлено с использованием полномочий ролей, которые специализируют авторизации с указанием роли, которую принципалу разрешено или запрещено принимать. Ограничение SoD между ролью r 1 и r 2 затем может быть выражено с использованием отрицательной авторизации роли r auth , которая запрещает Role r 1 вводить в действие роль r 2 .Ограничения SoD применяются как на уровне иерархии ролей (таким образом, мы напрямую предотвращаем объявление роли r 1 супроль другой роли r 2 , так что r 1 и r 2 находятся в ограничении SoD) и на уровне иерархии пользователей (чтобы предотвратить назначение двух ролей r 1 и r 2 пользователю, прямо или косвенно, которые участвуют в Ограничение SoD).
Чтобы проиллюстрировать более конкретный пример, мы предполагаем, что класс RoleAuthorization ⊆ Authorization представляет полномочия ролей, а свойства providedTo : RoleAuthorization → Principal и enabledRole : RoleAuthorization → Role используются для представления, соответственно, роли, разрешенной авторизацией роли, и принципала, которому назначена роль. Чтобы отслеживать все конфликты SoD в ролях, мы можем определить класс SoDOnRole ⊆ Role .Ограничения SoD на иерархию ролей могут быть выражены добавлением к онтологии следующего набора аксиом:
∀auth∈RoleAuthorization: sign (auth, -), grantTo (auth, r1), enabledRole (auth, r2) SoDOnRole≡∃canBe + . {r1} ∩∃canBe +. {r2}
Интерпретация этих аксиом заключается в том, что для каждой авторизации отрицательной роли существует экземпляр в классе SoDOnRole, только если существует единственная роль, которая принадлежит r 1 и к r 2 . Таким образом, мы можем обеспечить соблюдение SoD на уровне иерархии ролей, просто добавив в онтологию аксиому SoDOnRole ⊆ ⊥, которая объявляет онтологию согласованной только в том случае, если класс пуст.
Аналогично тому, что мы сделали для идентификации конфликтов SoD на уровне иерархии ролей, мы можем определить класс SoDOnUser ⊆ Identity , который отслеживает конфликты в иерархии пользователей. Затем мы выражаем ограничения SoD, используя следующие аксиомы:
∀auth∈RoleAuthorization: sign (auth, -), grantTo (auth, r1), enableRole (auth, r2) SoDOUser≡∃canHaveRole +. {R1} ∩∃canHaveRole +. { r2}
и для обеспечения соблюдения ограничений SoD нам просто нужно добавить в онтологию аксиому SoDOnUser ⊆ ⊥.
Этот подход может быть легко расширен для обработки других видов ограничений SoD, таких как SoD на основе разрешений (который требует, чтобы ни один пользователь не мог выполнять оба действия a 1 и a 2 ) или Объектно-ориентированный SoD (который требует, чтобы ни один пользователь не имел доступа к Ресурсам res 1 и res 2 ). Однако системы DL, а также инструменты Semantic Web в целом разработаны и реализованы с упором на услуги управления знаниями, такие как интеграция знаний, сопоставление схем и поиск экземпляров.Такая специализация накладывает некоторые ограничения на использование чистого рассуждения DL в реальных сценариях, в которых рассуждение должно проводиться на основе четко определенного и полного описания закрытой системы.
Предположение о закрытом мире
Рассуждение о предположении о закрытом мире (CWA) является общепринятым требованием в модельно-управляемых системах. И наоборот, рассуждающие о DL обычно работают в соответствии с Допущением открытого мира. Это означает, что факты, заявленные в модели (о топологии макета или политиках авторизации), не считаются полными.Очевидно, это может стать проблемой, если характеристики модели описываются в терминах существования некоторых свойств или некоторых отношений между элементами модели.
Рассуждения о сложных путях свойств
Рассуждения о сложных путях свойств (коммутативно нетривиальных графов) создает неопределенность формальной логики, на которой основан язык. Проверка закрытия сложных путей выходит за рамки выразительных возможностей классических систем баз данных, но, к сожалению, иногда необходимо проверять структурные ограничения.Так обстоит дело, например, с циклом согласованности на рис. 55.14, в котором указано, что:
Рис. 55.14. Простое ограничение согласованности.
разрешение на выполнение действия должно быть назначено ресурсу (базе данных), который работает в системе (СУБД), совместимой с типом действия (Выбрать, Создать, Удалить).
Допущение уникального имени
Допущение уникального имени является общепринятым допущением в большинстве инструментов, управляемых моделями. Он состоит из предположения, что разные имена всегда будут обозначать разные элементы в модели.Обычно это неверно для рассуждающих о DL из-за существенного характера проблем интеграции знаний. Фактически, в сценарии семантической паутины разные авторы могут описывать одни и те же сущности (как общие концептуализации, так и физические объекты), присваивая новое имя, как правило, в форме универсального идентификатора ресурса, определенного независимо от других пользователей.
Эти свойства необходимо тщательно учитывать при применении инструментов DL и семантической паутины для обнаружения конфликтов политик.Введенные препятствия можно устранить, если на них уделять внимание. В противном случае можно наблюдать неправильное поведение системы.
100 фактов о полномочиях в SAP
% PDF-1.6 % 4034 0 объект > / Outlines 4112 0 R / Metadata 4031 0 R / AcroForm 4107 0 R / Pages 3944 0 R / PageLayout / SinglePage / OpenAction 4152 0 R / Тип / Каталог >> эндобдж 4112 0 объект > эндобдж 4031 0 объект > поток 2012-03-05T15: 03: 14-05: 002012-03-15T12: 07: 14 + 01: 002012-03-15T12: 07: 14 + 01: 00Adobe InDesign CS3 (5.0.4)
Управление доступом на основе ролей
Управление доступом на основе ролей (RBAC) относится к идее назначения разрешений пользователям в зависимости от их роли в организации. Он предлагает простой и управляемый подход к управлению доступом, который менее подвержен ошибкам, чем индивидуальное назначение разрешений пользователям.
При использовании RBAC вы анализируете потребности своих пользователей и группируете их по ролям на основе общих обязанностей. Затем вы назначаете одну или несколько ролей каждому пользователю и одно или несколько разрешений для каждой роли.Отношения «пользователь-роль» и «роль-разрешения» упрощают выполнение назначений пользователей, поскольку пользователям больше не нужно управлять индивидуально, а вместо этого они имеют привилегии, соответствующие разрешениям, назначенным их ролям.
Например, если вы использовали RBAC для управления доступом к HR-приложению, вы могли бы дать HR-менеджерам роль, которая позволяет им обновлять сведения о сотрудниках, в то время как другие сотрудники смогут просматривать только свои собственные данные.
При планировании стратегии управления доступом рекомендуется назначать пользователям наименьшее количество разрешений, позволяющих им выполнять свою работу.
С RBAC управление доступом становится проще, если вы строго соблюдаете требования ролей. RBAC поможет вам:
создавать систематические, повторяемые назначения разрешений
легко проверять права пользователей и исправлять выявленные проблемы
быстро добавлять и изменять роли, а также реализовывать их через API
сокращать о потенциальной ошибке при назначении разрешений пользователей
интегрируйте сторонних пользователей, давая им заранее определенные роли
более эффективно соблюдайте нормативные и законодательные требования по конфиденциальности и конфиденциальности
По сути, роль набор разрешений, которые вы можете применять к пользователям.Использование ролей упрощает добавление, удаление и настройку разрешений, чем назначение разрешений пользователям по отдельности. По мере увеличения масштабов и сложности вашей пользовательской базы роли становятся особенно полезными.
Вы также можете использовать роли для сбора разрешений, определенных для различных API. Например, предположим, что у вас есть маркетинговый модуль, который позволяет пользователям создавать и распространять информационные бюллетени для клиентов. Ваш специалист по маркетинговому контенту создает все информационные бюллетени и готовит их к распространению.Точно так же у вас есть модуль событий, который позволяет пользователям создавать, публиковать и управлять регистрацией событий. Ваш координатор событий создает события. Как только вице-президент по маркетингу утверждает информационные бюллетени и события, его помощник публикует события и распространяет информационные бюллетени. В этом случае ваш API информационных бюллетеней может иметь разрешение distribute: newsletters
, а ваш API событий может иметь разрешение publish: events
. Затем эти разрешения можно собрать в роли Marketing Publisher
и назначить помощнику вице-президента по маркетингу.
Кроме того, для членов организации можно добавить роли, специфичные для организации, и использовать их для разрешения доступа в вашем приложении в зависимости от организаций, в которых конечный пользователь входит в систему. Это особенно полезно при поддержке продуктов с несколькими арендаторами и SaaS, где конкретный пользователь может иметь привилегированную роль в одной организации, но не в других.
RBAC — это аддитивная модель, поэтому, если у вас есть перекрывающиеся назначения ролей, ваши действующие разрешения являются объединением ваших назначений ролей.
Например, предположим, что у вас есть API, который предоставляет данные для приложения событий. Вы создаете роль Организатор
и назначаете ей разрешения, которые позволяют ему просматривать, создавать и редактировать события. Вы также создаете роль Регистрант
и назначаете ему разрешения, которые позволяют ему просматривать и регистрироваться для событий. Любые пользователи с ролями Организатор
и Регистрант
смогут просматривать, создавать, редактировать и регистрироваться на мероприятиях.
В настоящее время мы предоставляем два способа реализации контроля доступа на основе ролей (RBAC), которые вы можете использовать вместо или в сочетании с собственной системой внутреннего контроля доступа вашего API:
Мы расширяем наш набор функций ядра авторизации, чтобы соответствовать функциональность Расширения авторизации.Наша новая базовая реализация RBAC улучшает производительность и масштабируемость и в конечном итоге обеспечивает более гибкую систему RBAC, чем расширение авторизации.
На данный момент оба реализуют ключевые функции RBAC и позволяют ограничивать настраиваемые области, определенные для API, теми, которые были назначены пользователю в качестве разрешений. Для сравнения см. Ядро авторизации и расширение авторизации.
Набор функций ядра авторизации и расширение авторизации — это совершенно разные функции.Для управления группами, ролями или разрешениями вам нужно будет использовать функцию, в которой они были изначально созданы.
Вы можете обеспечить больший контроль, используя правила для ограничения доступа на основе комбинации атрибутов, таких как отдел пользователя, время суток , местонахождение доступа или любой другой атрибут пользователя или API (например, имя пользователя, уровень допуска или имя API).
Для получения дополнительной информации об использовании правил с политиками авторизации см. Правила с политиками авторизации.
Что такое ролевой контроль доступа | RBAC против ACL и ABAC
Что такое RBAC
Контроль доступа на основе ролей (RBAC), также известный как безопасность на основе ролей, — это механизм, ограничивающий доступ к системе.Он включает в себя настройку разрешений и привилегий, чтобы разрешить доступ авторизованным пользователям. Большинство крупных организаций используют ролевой контроль доступа, чтобы предоставить своим сотрудникам различные уровни доступа в зависимости от их ролей и обязанностей. Это защищает конфиденциальные данные и гарантирует, что сотрудники могут получить доступ только к информации и выполнять действия, которые им необходимы для выполнения своей работы.
Организация назначает каждому сотруднику роль контроля доступа на основе ролей; роль определяет, какие разрешения система предоставляет пользователю.Например, вы можете указать, является ли пользователь администратором, специалистом или конечным пользователем, и ограничить доступ к определенным ресурсам или задачам. Организация может разрешить одним лицам создавать или изменять файлы, предоставляя другим только разрешение на просмотр.
Одним из примеров управления доступом на основе ролей является набор разрешений, которые позволяют пользователям читать, редактировать или удалять статьи в приложении для записи. Есть две роли, Писатель и Читатель, и их соответствующие уровни разрешений представлены в этой таблице истинности.Используя эту таблицу, вы можете назначить разрешения каждому пользователю.
Разрешение / роль | Писатель | Считыватель |
---|---|---|
Редактировать | Есть | Нет |
Удалить | Есть | Нет |
Читать | Есть | Есть |
В некоторых случаях организации предоставляют разные уровни разрешений отдельным ролям или их уровни разрешений могут перекрываться.В приведенном выше примере одна роль (читатель) является подмножеством другой роли, которая имеет больше разрешений (писатель).
Типы контроля доступа: дополнительные механизмы контроля
Меры контроля доступа регулируют, кто может просматривать или использовать ресурсы в вычислительной системе, часто полагаясь на аутентификацию или авторизацию на основе учетных данных для входа в систему. Они необходимы для минимизации бизнес-рисков. Системы контроля доступа могут быть физическими, ограничивая доступ к зданиям, комнатам или серверам, или они могут быть логическими, контролирующими цифровой доступ к данным, файлам или сетям.
Роль | Корпоративная сеть | Эл. Почта | CRM | Клиентская база данных | Unix | Информация о сотрудниках |
---|---|---|---|---|---|---|
Пользователь | Есть | Есть | Нет | Нет | Нет | Нет |
Администратор ИТ-системы | Есть | Есть | Есть | Есть | Есть | Есть |
Разработчик | Есть | Есть | Нет | Нет | Есть | Нет |
Консультант по продажам | Нет | Есть | Есть | Есть | Нет | Нет |
HR | Есть | Есть | Нет | Нет | Нет | Есть |
Управление доступом на основе ролей может быть дополнено другими методами управления доступом.Примеры таких типов контроля доступа включают:
Дискреционный контроль доступа (DAC)
Владелец защищенной системы или ресурса устанавливает политики, определяющие, кто может получить к ним доступ. DAC может включать физические или цифровые меры и является менее ограничительным, чем другие системы контроля доступа, поскольку предлагает людям полный контроль над ресурсами, которыми они владеют. Однако он также менее безопасен, поскольку связанные программы наследуют параметры безопасности и позволяют вредоносным программам использовать их без ведома конечного пользователя.Вы можете использовать RBAC для реализации DAC.
Обязательный контроль доступа (MAC)
Центральный орган регулирует права доступа на основе нескольких уровней безопасности. MAC включает в себя присвоение классификаций системным ресурсам и ядру безопасности или операционной системе. Только пользователи или устройства с необходимым уровнем допуска к защите информации могут получить доступ к защищенным ресурсам. Организации с разными уровнями классификации данных, такие как правительственные и военные учреждения, обычно используют MAC для классификации всех конечных пользователей.Вы можете использовать управление доступом на основе ролей для реализации MAC.
×Типы контроля доступа: альтернативы RBAC
Другие механизмы контроля доступа могут служить альтернативой ролевому контролю доступа.
Список контроля доступа (ACL)
Список управления доступом (ACL) — это таблица, в которой перечислены разрешения, прикрепленные к вычислительным ресурсам.Он сообщает операционной системе, какие пользователи могут получить доступ к объекту и какие действия они могут выполнять. Для каждого пользователя существует запись, которая связана с атрибутами безопасности каждого объекта. ACL обычно используется для традиционных систем ЦАП.
RBAC против ACL
Для большинства бизнес-приложений RBAC превосходит ACL с точки зрения безопасности и административных накладных расходов. ACL лучше подходит для реализации безопасности на уровне отдельных пользователей и для низкоуровневых данных, в то время как RBAC лучше обслуживает систему безопасности в масштабах компании с контролирующим администратором.ACL может, например, предоставить доступ на запись к определенному файлу, но не может определить, как пользователь может изменить файл.
Управление доступом на основе атрибутов (ABAC)
ABAC оценивает набор правил и политик для управления правами доступа в соответствии с определенными атрибутами, такими как окружающая среда, система, объект или информация о пользователе. Он применяет логическую логику для предоставления или отказа в доступе пользователям на основе сложной оценки атомарных или многозначных атрибутов и отношений между ними.
На практике это позволяет вам писать правила на расширяемом языке разметки контроля доступа (XACML), используя пары ключ-значение, такие как Роль = Менеджер и Категория = Финансы.
RBAC против ABAC
В то время как RBAC полагается на заранее определенные роли, ABAC более динамичен и использует управление доступом на основе отношений. Вы можете использовать RBAC для определения элементов управления доступом с помощью широких мазков, в то время как ABAC предлагает большую степень детализации. Например, система RBAC предоставляет доступ всем менеджерам, но политика ABAC будет предоставлять доступ только менеджерам, которые находятся в финансовом отделе.ABAC выполняет более сложный поиск, который требует большей вычислительной мощности и времени, поэтому вам следует прибегать к ABAC только тогда, когда RBAC недостаточно.
Внедрение управления доступом на основе ролей
Управление доступом на основе ролей позволяет организациям повысить уровень безопасности и соблюдать правила безопасности. Однако внедрение контроля доступа на основе ролей во всей организации может быть сложной задачей и может привести к противодействию со стороны заинтересованных сторон. Чтобы успешно перейти на RBAC, вы должны рассматривать процесс внедрения как серию шагов:
- Понимание потребностей вашего бизнеса — перед переходом на RBAC необходимо провести всесторонний анализ потребностей, чтобы изучить должностные обязанности, вспомогательные бизнес-процессы и технологии.Вам также следует рассмотреть любые нормативные требования или требования аудита и оценить текущее состояние безопасности вашей организации. Вы также можете воспользоваться другими типами контроля доступа.
- Планирование объема внедрения — определите объем ваших требований RBAC и спланируйте внедрение в соответствии с потребностями организации. Сузьте область действия, чтобы сосредоточиться на системах или приложениях, хранящих конфиденциальные данные. Это также поможет вашей организации управлять переходом.
- Определение ролей — будет легче определить ваши роли, когда вы выполните анализ потребностей и поймете, как люди выполняют свои задачи. Остерегайтесь распространенных ошибок проектирования ролей, таких как чрезмерная или недостаточная детализация, перекрытие ролей и предоставление слишком большого количества исключений для разрешений RBAC.
- Реализация — заключительный этап включает развертывание RBAC. Делайте это поэтапно, чтобы избежать чрезмерной рабочей нагрузки и уменьшить нарушение работы бизнеса.Во-первых, обратитесь к основной группе пользователей. Прежде чем увеличивать степень детализации, начните с грубого контроля доступа. Собирайте отзывы пользователей и отслеживайте свою среду, чтобы спланировать следующие этапы внедрения.
Узнайте, как Imperva Data Protection может помочь вам в управлении доступом на основе ролей.
Управление доступом на основе ролей с Imperva
Imperva обеспечивает точный контроль прав пользователей с помощью гибких средств управления доступом на основе ролей. Пользователям может быть предоставлен доступ для редактирования, просмотра или ограниченный доступ к определенным объектам и функциям управления.Организации также могут иерархически управлять ИТ-активами и группировать их в логические категории для детального контроля доступа, даже в крупномасштабных корпоративных развертываниях и развертываниях с управляемыми поставщиками услуг безопасности (MSSP).
Узнайте больше о решениях Imperva по обеспечению безопасности приложений или узнайте, как мы можем помочь защитить ваши данные.
Использование авторизации RBAC | Kubernetes
Контроль доступа на основе ролей (RBAC) — это метод регулирования доступа к компьютеру или сетевые ресурсы на основе ролей отдельных пользователей в вашей организации.
Для авторизации RBAC используется rbac.authorization.k8s.io
Группа API для авторизации
решения, позволяющие динамически настраивать политики через Kubernetes API.
Чтобы включить RBAC, запустите сервер API.
с флагом --authorization-mode
, установленным в список, разделенный запятыми, который включает RBAC
;
например:
kube-apiserver --authorization-mode = Пример, RBAC --other-options --more-options
Объекты API
RBAC API объявляет четыре типа объекта Kubernetes: Role , ClusterRole , Привязка ролей и Привязка ролей .Вы можете
описывать объекты,
или изменить их, используя такие инструменты, как kubectl,
, как и любой другой объект Kubernetes.
Роль и кластерная роль
Роль RBAC или ClusterRole содержит правила, представляющие набор разрешений. Разрешения чисто аддитивные (нет правил запрета).
Роль всегда устанавливает разрешения в определенном пространстве имен; при создании роли необходимо указать пространство имен, которому она принадлежит.
ClusterRole, напротив, не является ресурсом без пространства имен.Ресурсы имеют разные названия (Роль и ClusterRole), потому что объект Kubernetes всегда должен быть либо в пространстве имен, либо без него; не может быть и того, и другого.
ClusterRoles имеет несколько применений. Вы можете использовать ClusterRole для:
- определяют разрешения для ресурсов с пространством имен и предоставляются в пределах отдельных пространств имен
- определяет разрешения для ресурсов с пространством имен и предоставляется для всех пространств имен
- определить разрешения для ресурсов в кластере
Если вы хотите определить роль в пространстве имен, используйте Role; если вы хотите определить роль для всего кластера используйте ClusterRole.
Пример роли
Вот пример роли в пространстве имен «по умолчанию», которую можно использовать для предоставления доступа на чтение к капсулы:
apiVersion: rbac.authorization.k8s.io/v1
kind: Роль
метаданные:
пространство имен: по умолчанию
имя: pod-reader
правила:
- apiGroups: [""] # "" указывает основную группу API
ресурсы: ["стручки"]
глаголы: ["получить", "посмотреть", "список"]
Пример ClusterRole
ClusterRole может использоваться для предоставления тех же разрешений, что и роль. Поскольку ClusterRoles относятся к кластеру, вы также можете использовать их для предоставления доступа к:
ресурсов в кластере (например, узлов)
конечных точки без ресурсов (например,
/ healthz
)ресурсов с пространством имен (например, Pods) во всех пространствах имен
Например: вы можете использовать ClusterRole, чтобы разрешить конкретному пользователю запускать
kubectl get pods --all-namespaces
Вот пример ClusterRole, который можно использовать для предоставления доступа на чтение к секреты в любом конкретном пространстве имен, или во всех пространствах имен (в зависимости от того, как они связаны):
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
# "namespace" опущено, поскольку ClusterRoles не имеет пространства имен
имя: секрет-читатель
правила:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к Secret
# объект "секреты"
ресурсы: ["секреты"]
глаголы: ["получить", "посмотреть", "список"]
Имя роли или объекта ClusterRole должно быть допустимым. имя сегмента пути.
Привязка ролей и привязка ролей кластера
Привязка роли предоставляет разрешения, определенные в роли, пользователю или группе пользователей.Он содержит список из субъектов (пользователи, группы или учетные записи служб) и ссылку на роль предоставляется. RoleBinding предоставляет разрешения в определенном пространстве имен, тогда как ClusterRoleBinding предоставляет доступ к кластеру.
RoleBinding может ссылаться на любую роль в том же пространстве имен. В качестве альтернативы RoleBinding может ссылаться на ClusterRole и связывать эту ClusterRole с пространством имен RoleBinding. Если вы хотите привязать ClusterRole ко всем пространствам имен в вашем кластере, вы используете ClusterRoleBinding.
Имя объекта RoleBinding или ClusterRoleBinding должно быть допустимым. имя сегмента пути.
Примеры привязки ролей
Вот пример RoleBinding, который предоставляет роль «pod-reader» пользователю «jane». в пространстве имен «по умолчанию». Это позволяет «Джейн» читать модули в пространстве имен «по умолчанию».
apiVersion: rbac.authorization.k8s.io/v1
# Эта привязка роли позволяет "jane" читать модули в пространстве имен "default".
# У вас уже должна быть роль с именем "pod-reader" в этом пространстве имен.вид: RoleBinding
метаданные:
имя: стручки чтения
пространство имен: по умолчанию
предметы:
# Вы можете указать более одного "предмета"
- вид: Пользователь
name: jane # "name" чувствительно к регистру
apiGroup: rbac.authorization.k8s.io
roleRef:
# "roleRef" указывает привязку к роли / роли кластера
kind: Role # это должна быть Role или ClusterRole
name: pod-reader # это должно совпадать с именем роли или ClusterRole, к которой вы хотите привязать
apiGroup: rbac.authorization.k8s.io
RoleBinding может также ссылаться на ClusterRole для предоставления разрешений, определенных в этом ClusterRole к ресурсам внутри пространства имен RoleBinding.Такая ссылка позволяет определить набор общих ролей в кластере, а затем повторно использовать их в несколько пространств имен.
Например, даже если следующее RoleBinding относится к ClusterRole, «dave» (субъект, чувствительный к регистру) сможет читать «Секреты» только в «development» пространство имен, потому что пространство имен RoleBinding (в его метаданных) — «разработка».
apiVersion: rbac.authorization.k8s.io/v1
# Эта привязка роли позволяет «dave» читать секреты в пространстве имен «development».# У вас уже должна быть ClusterRole с именем "secret-reader".
вид: RoleBinding
метаданные:
name: секреты чтения
#
# Пространство имен RoleBinding определяет, где предоставляются разрешения.
# Это дает разрешения только в пространстве имен "разработка".
пространство имен: разработка
предметы:
- вид: Пользователь
name: dave # Имя чувствительно к регистру
apiGroup: rbac.authorization.k8s.io
roleRef:
вид: ClusterRole
имя: секрет-читатель
apiGroup: rbac.authorization.k8s.io
ClusterRoleBinding, пример
Чтобы предоставить разрешения для всего кластера, вы можете использовать ClusterRoleBinding.Следующая ClusterRoleBinding позволяет любому пользователю в группе «менеджер» читать секреты в любом пространстве имен.
apiVersion: rbac.authorization.k8s.io/v1
# Эта привязка роли кластера позволяет любому члену группы «менеджер» читать секреты в любом пространстве имен.
вид: ClusterRoleBinding
метаданные:
имя: секреты чтения глобальный
предметы:
- вид: Группа
name: manager # Имя чувствительно к регистру
apiGroup: rbac.authorization.k8s.io
roleRef:
вид: ClusterRole
имя: секрет-читатель
apiGroup: rbac.authorization.k8s.io
После создания привязки нельзя изменить роль или роль кластера, на которую она ссылается.
Если вы попытаетесь изменить привязку roleRef
, вы получите ошибку проверки. Если ты хочешь
чтобы изменить роль Ref
для привязки, необходимо удалить объект привязки и создать
замена.
Это ограничение вызвано двумя причинами:
- Создание неизменяемого
roleRef
позволяет предоставить кому-либо разрешение на обновление - Привязка к другой роли — это принципиально иная привязка.
Требование удаления / воссоздания привязки для изменения роли
Ссылка
гарантирует, что полный список предметов в привязке предназначен для предоставления новая роль (в отличие от включения или случайного изменения только roleRef без проверки всем существующим субъектам следует дать новую роль разрешения).
Утилита командной строки kubectl auth reconcile
создает или обновляет файл манифеста, содержащий объекты RBAC,
и обрабатывает удаление и воссоздание объектов привязки, если это необходимо для изменения роли, на которую они ссылаются.См. Использование команд и примеры для получения дополнительной информации.
Ссылаясь на ресурсы
В Kubernetes API большинство ресурсов представлено и доступно с помощью строкового представления
имя их объекта, например pods
для Pod. RBAC относится к ресурсам, использующим точно такие же
имя, которое отображается в URL-адресе соответствующей конечной точки API.
Некоторые API Kubernetes включают подресурс , например журналы для Pod. Запрос логов стручка выглядит так:
GET / api / v1 / namespaces / {namespace} / pods / {name} / log
В этом случае подов
— это ресурс с пространством имен для ресурсов подов, а журнал
— это
подресурс стручков
.Чтобы представить это в роли RBAC, используйте косую черту (/
) для
разграничить ресурс и подресурс. Чтобы позволить субъекту читать , поды
и
также обращайтесь к подресурсу журнала
для каждого из этих модулей, вы пишете:
apiVersion: rbac.authorization.k8s.io/v1
kind: Роль
метаданные:
пространство имен: по умолчанию
имя: pod-and-pod-logs-reader
правила:
- apiGroups: [""]
ресурсы: ["блоки", "блоки / журнал"]
глаголы: ["получить", "список"]
Вы также можете ссылаться на ресурсы по имени для определенных запросов через список resourceNames
.Если указано, запросы могут быть ограничены отдельными экземплярами ресурса.
Вот пример, который ограничивает его предмет только получить
или обновление
a
ConfigMap с именем my-configmap
:
apiVersion: rbac.authorization.k8s.io/v1
kind: Роль
метаданные:
пространство имен: по умолчанию
имя: configmap-updater
правила:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к ConfigMap
# объект "configmaps"
ресурсы: ["configmaps"]
resourceNames: ["my-configmap"]
глаголы: ["обновить", "получить"]
Примечание: Вы не можете ограничить запросы create
или deletecollection
по имени их ресурса.Для создать
это ограничение связано с тем, что имя нового объекта может быть неизвестно во время авторизации.
Если вы ограничиваете список список
или просмотр
именем ресурса, клиенты должны включить селектор поля metadata.name
в свой список запрос
или смотреть
, который соответствует указанному имени ресурса, чтобы быть авторизованным.
Например, kubectl get configmaps --field-selector = metadata.name = my-configmap
Агрегированные кластерные роли
Вы можете объединить нескольких ролей кластера в одну объединенную роль кластера.Контроллер, работающий как часть плоскости управления кластером, наблюдает за ClusterRole.
объекты с набором aggregationRule
. Правило агрегации
определяет метку.
селектор, что контроллер
используется для сопоставления с другими объектами ClusterRole, которые должны быть объединены в правила
поле этого.
Вот пример агрегированного ClusterRole:
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
имя: мониторинг
aggregationRule:
clusterRoleSelectors:
- matchLabels:
руб.example.com/aggregate-to-monitoring: "правда"
rules: [] # Уровень управления автоматически заполняет правила
Если вы создаете новую ClusterRole, которая соответствует селектору меток существующей агрегированной ClusterRole,
это изменение запускает добавление новых правил в агрегированную ClusterRole.
Вот пример, который добавляет правила к «контролирующей» ClusterRole, создавая еще одну
ClusterRole с меткой rbac.example.com/aggregate-to-monitoring: true
.
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
имя: конечные точки мониторинга
ярлыки:
rbac.example.com/aggregate-to-monitoring: "правда"
# При создании ClusterRole "конечных точек мониторинга",
# приведенные ниже правила будут добавлены в ClusterRole "мониторинг".
правила:
- apiGroups: [""]
ресурсы: ["службы", "конечные точки", "модули"]
глаголы: ["получить", "список", "смотреть"]
Пользовательские роли по умолчанию используют агрегацию ClusterRole. Это позволяет вам, как администратор кластера, включите правила для настраиваемых ресурсов, например, обслуживаемых CustomResourceDefinitions или агрегированные серверы API, чтобы расширить роли по умолчанию.
Например: следующие ClusterRoles позволяют ролям «admin» и «edit» по умолчанию управлять настраиваемым ресурсом.
с именем CronTab, тогда как роль «просмотра» может выполнять только действия чтения на ресурсах CronTab.
Вы можете предположить, что объекты CronTab называются "crontabs"
в URL-адресах, видимых сервером API.
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
имя: агрегат-cron-вкладки-редактировать
ярлыки:
# Добавьте эти разрешения к ролям по умолчанию "admin" и "edit".rbac.authorization.k8s.io/aggregate-to-admin: "правда"
rbac.authorization.k8s.io/aggregate-to-edit: "правда"
правила:
- apiGroups: ["stable.example.com"]
ресурсы: ["crontabs"]
глаголы: ["получить", "список", "смотреть", "создать", "обновить", "патч", "удалить"]
---
вид: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
метаданные:
имя: агрегат-cron-tabs-view
ярлыки:
# Добавьте эти разрешения к роли по умолчанию "просмотр".
rbac.authorization.k8s.io/aggregate-to-view: "правда"
правила:
- apiGroups: ["стабильный.example.com "]
ресурсы: ["crontabs"]
глаголы: ["получить", "список", "смотреть"]
Примеры ролей
Следующие примеры представляют собой отрывки из объектов Role или ClusterRole, показывающие только раздел правил .
Разрешить чтение «стручков»
ресурсов в ядре
Группа API:
правил:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к Pod
# объект "капсулы"
ресурсы: ["стручки"]
глаголы: ["получить", "список", "смотреть"]
Разрешить чтение / запись Развертывания (на уровне HTTP: объекты с «развертываниями»
в ресурсной части своего URL-адреса) в группах API "extension"
и "apps"
:
правил:
- apiGroups: ["расширения", "приложения"]
#
# на уровне HTTP имя ресурса для доступа к Deployment
# объект "развертывания"
ресурсы: ["развертывания"]
глаголы: ["получить", "список", "смотреть", "создать", "обновить", "патч", "удалить"]
Разрешить чтение модулей в основной группе API, а также чтение или запись задания
ресурсы в «пакет»
или «расширения»
Группы API:
правил:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к Pod
# объект "капсулы"
ресурсы: ["стручки"]
глаголы: ["получить", "список", "смотреть"]
- apiGroups: ["пакет", "расширения"]
#
# на уровне HTTP имя ресурса для доступа к Job
# объект "вакансии"
ресурсы: ["вакансии"]
глаголы: ["получить", "список", "смотреть", "создать", "обновить", "патч", "удалить"]
Разрешить чтение ConfigMap с именем «my-config» (должен быть связан с RoleBinding для ограничения одной ConfigMap в одном пространстве имен):
правил:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к ConfigMap
# объект "configmaps"
ресурсы: ["configmaps"]
resourceNames: ["my-config"]
глаголы: ["получить"]
Разрешить чтение ресурса «узлов»
в основной группе (поскольку
Узел имеет кластерную область видимости, он должен быть в ClusterRole, привязанном к
ClusterRoleBinding, чтобы быть эффективным):
правил:
- apiGroups: [""]
#
# на уровне HTTP имя ресурса для доступа к Node
# объект - это «узлы»
ресурсы: ["узлы"]
глаголы: ["получить", "список", "смотреть"]
Разрешить запросы GET и POST к конечной точке без ресурсов / healthz
и
все подпути (должны быть в ClusterRole, привязанном к ClusterRoleBinding
быть эффективным):
правил:
- nonResourceURLs: ["/ healthz", "/ healthz / *"] # '*' в nonResourceURL - это совпадение суффикса glob
глаголы: ["получить", "опубликовать"]
По предметам
RoleBinding или ClusterRoleBinding связывает роль с субъектами.Субъектами могут быть группы, пользователи или ServiceAccounts.
Kubernetes представляет имена пользователей в виде строк. Это могут быть: простые имена, такие как «алиса»; имена в стиле электронной почты, например «[email protected]»; или числовые идентификаторы пользователей, представленные в виде строки. Это зависит от вас как администратора кластера для настройки модулей аутентификации так что аутентификация производит имена пользователей в желаемом формате.
Внимание: Префикс system:
зарезервирован для использования системой Kubernetes, поэтому вы должны убедиться, что
что у вас нет пользователей или групп с именами, начинающимися с системы :
by
авария.Кроме этого специального префикса, система авторизации RBAC не требует никакого формата
для имен пользователей.
В Kubernetes модули Authenticator предоставляют информацию о группах.
Группы, как и пользователи, представлены в виде строк, и эта строка не имеет требований к формату.
кроме этого префикс система:
зарезервирован.
ServiceAccounts имеют имена с префиксом
с system: serviceaccount:
и принадлежат к группам, имена которых имеют префикс system: serviceaccounts:
.
-
система: serviceaccount:
(единственное число) — это префикс для имен пользователей учетной записи службы. -
система: serviceaccounts:
(множественное число) — это префикс для групп учетных записей служб.
Примеры привязки ролей
Следующие примеры представляют собой отрывки RoleBinding
, которые только
показать субъектов
раздел.
Для пользователя с именем [email protected]
:
субъектов:
- вид: Пользователь
name: "alice @ example.com "
apiGroup: rbac.authorization.k8s.io
Для группы с именем frontend-admins
:
субъектов:
- вид: Группа
имя: "фронтенд-админы"
apiGroup: rbac.authorization.k8s.io
Для учетной записи службы по умолчанию в пространстве имен «kube-system»:
субъектов:
- вид: ServiceAccount
имя: по умолчанию
пространство имен: kube-system
Для всех учетных записей служб в группе «qa» в любом пространстве имен:
субъектов:
- вид: Группа
имя: система: serviceaccounts: qa
apiGroup: rbac.authorization.k8s.io
Для всех учетных записей служб в группе «dev» в пространстве имен «development»:
субъектов:
- вид: Группа
имя: система: сервисаккаунты: разработчик
apiGroup: rbac.authorization.k8s.io
пространство имен: разработка
Для всех учетных записей служб в любом пространстве имен:
субъектов:
- вид: Группа
имя: система: serviceaccounts
apiGroup: rbac.authorization.k8s.io
Для всех авторизованных пользователей:
субъектов:
- вид: Группа
имя: система: аутентифицирован
apiGroup: rbac.authorization.k8s.io
Для всех пользователей, не прошедших аутентификацию:
субъектов:
- вид: Группа
имя: система: не аутентифицировано
apiGroup: rbac.authorization.k8s.io
Для всех пользователей:
субъектов:
- вид: Группа
имя: система: аутентифицирован
apiGroup: rbac.authorization.k8s.io
- вид: Группа
имя: система: не аутентифицировано
apiGroup: rbac.authorization.k8s.io
Роли по умолчанию и привязки ролей
Серверы API создают набор объектов ClusterRole и ClusterRoleBinding по умолчанию.Многие из них относятся к системе : с префиксом
, что указывает на то, что ресурс напрямую
управляется плоскостью управления кластером.
Все роли ClusterRoles и ClusterRoleBindings по умолчанию помечены как kubernetes.io/bootstrapping=rbac-defaults
.
Внимание: Будьте осторожны при изменении ClusterRoles и ClusterRoleBindings с именами
которые имеют систему : префикс
.
Изменения в этих ресурсах могут привести к нефункциональным кластерам.
Автоматическая сверка
При каждом запуске сервер API обновляет роли кластера по умолчанию с любыми недостающими разрешениями, и обновляет привязки ролей кластера по умолчанию с любыми недостающими субъектами.Это позволяет кластеру исправлять случайные изменения и помогает сохранить роли и привязки ролей. актуальна по мере изменения разрешений и тем в новых выпусках Kubernetes.
Чтобы отказаться от этого согласования, установите rbac.authorization.kubernetes.io/autoupdate
аннотация для роли кластера по умолчанию или привязка роли к false
.
Имейте в виду, что отсутствие разрешений и субъектов по умолчанию может привести к нефункциональным кластерам.
Автоматическое согласование включено по умолчанию, если активен авторизатор RBAC.
Роли обнаружения API
Привязки ролей по умолчанию разрешают неаутентифицированным и аутентифицированным пользователям читать информацию API, которая считается безопасной для публичного доступа (включая CustomResourceDefinitions). Чтобы отключить анонимный доступ без аутентификации, добавьте --anonymous-auth = false
в конфигурацию сервера API.
Чтобы просмотреть конфигурацию этих ролей через kubectl
, запустите:
kubectl get clusterroles system: discovery -o yaml
Примечание: Если вы отредактируете эту роль ClusterRole, ваши изменения будут перезаписаны при перезапуске сервера API.
через автоматическое согласование.Чтобы избежать перезаписи,
либо не редактируйте роль вручную, либо отключите автосогласование.Роль кластера по умолчанию | Привязка ClusterRoleBinding по умолчанию | Описание |
---|---|---|
система: базовая-пользовательская | система: аутентифицированная группа | Разрешает пользователю доступ только для чтения к основной информации о себе.До версии 1.14 эта роль также была привязана к системе: по умолчанию не аутентифицирована. |
система: открытие | система: аутентифицированная группа | Разрешает доступ только для чтения к конечным точкам обнаружения API, необходимый для обнаружения и согласования уровня API. До версии 1.14 эта роль также была привязана к системе: по умолчанию не аутентифицирована. |
система: public-info-viewer | система: аутентифицирована и система: не аутентифицирована группы | Разрешает доступ только для чтения к несекретной информации о кластере.Представлено в Kubernetes v1.14. |
Роли, ориентированные на пользователя
Некоторые из ролей кластера по умолчанию не относятся к системе : с префиксом
. Это роли, ориентированные на пользователя.
Они включают роли суперпользователей (, администратор кластера,
), роли, предназначенные для предоставления в масштабе всего кластера.
используя ClusterRoleBindings, и роли, предназначенные для предоставления в определенных
пространства имен с использованием RoleBindings ( admin
, edit
, view
).
Пользовательские роли ClusterRoles используют агрегацию ClusterRole, чтобы администраторы могли включать
правила для настраиваемых ресурсов в этих ClusterRoles.Чтобы добавить правила в роли администратора
, изменить
или просмотреть роли
, создайте
ClusterRole с одной или несколькими из следующих меток:
метаданных:
ярлыки:
rbac.authorization.k8s.io/aggregate-to-admin: "правда"
rbac.authorization.k8s.io/aggregate-to-edit: "правда"
rbac.authorization.k8s.io/aggregate-to-view: "правда"
Роль кластера по умолчанию | Привязка ClusterRoleBinding по умолчанию | Описание |
---|---|---|
администратор кластера | система: мастера группа | Позволяет суперпользователю выполнять любые действия с любым ресурсом.При использовании в ClusterRoleBinding он дает полный контроль над каждым ресурсом в кластере и во всех пространствах имен. При использовании в RoleBinding он дает полный контроль над каждым ресурсом в пространстве имен привязки ролей, включая само пространство имен. |
админ | Нет | Разрешает доступ администратора, предназначенный для предоставления в пространстве имен с помощью RoleBinding . Если используется в RoleBinding , разрешает доступ для чтения / записи к большинству ресурсов в пространстве имен, включая возможность создавать роли и привязки ролей в пространстве имен.Эта роль не разрешает доступ на запись к квоте ресурсов или к самому пространству имен. Эта роль также не разрешает доступ на запись к конечным точкам в созданных кластерах. с использованием Kubernetes v1.22 +. Более подробная информация доступна в Раздел «Доступ для записи для конечных точек». |
редактировать | Нет | Разрешает доступ для чтения / записи к большинству объектов в пространстве имен. Эта роль не позволяет просматривать или изменять роли или привязки ролей. Однако эта роль позволяет получать доступ к секретам и запускать модули от имени любого ServiceAccount в пространство имен, поэтому его можно использовать для получения уровней доступа API любого ServiceAccount в пространство имен.Эта роль также не разрешает доступ на запись к конечным точкам в кластеры, созданные с помощью Kubernetes v1.22 +. Более подробная информация доступна в Раздел «Доступ для записи для конечных точек». |
вид | Нет | Разрешает доступ только для чтения для просмотра большинства объектов в пространстве имен.
Он не позволяет просматривать роли или привязки ролей. Эта роль не позволяет просматривать Секреты, так как чтение содержимое секретов обеспечивает доступ к учетным данным ServiceAccount в пространстве имен, что позволит получить доступ к API как любой ServiceAccount в пространстве имен (форма повышения привилегий). |
Роли основных компонентов
Роль кластера по умолчанию | Привязка ClusterRoleBinding по умолчанию | Описание |
---|---|---|
система: kube-scheduler | система: kube-scheduler пользователь | Разрешает доступ к ресурсам, необходимым компоненту планировщика. |
система: планировщик томов | система: kube-scheduler пользователь | Разрешает доступ к ресурсам тома, необходимым для компонента kube-scheduler. |
система: кубе-контроллер-менеджер | система: kube-controller-manager пользователь | Разрешает доступ к ресурсам, необходимым для компонента диспетчера контроллеров. Разрешения, необходимые для отдельных контроллеров, подробно описаны в ролях контроллера. |
система: узел | Нет | Разрешает доступ к ресурсам, необходимым для кублета, , включая доступ на чтение ко всем секретам и доступ на запись ко всем объектам статуса модуля . Вы должны использовать авторизатор узлов и подключаемый модуль допуска NodeRestriction вместо роли system: node и разрешить предоставление доступа API к кубелетам на основе запланированных на них подов. Роль system: node существует только для совместимости с кластерами Kubernetes, обновленными с версий до v1.8. |
система: узел-прокси | система: kube-proxy пользователь | Разрешает доступ к ресурсам, необходимым для компонента kube-proxy. |
Другие роли компонентов
Роль кластера по умолчанию | Привязка ClusterRoleBinding по умолчанию | Описание |
---|---|---|
система: авторизация-делегатор | Нет | Разрешает делегированную проверку подлинности и авторизацию. Это обычно используется дополнительными серверами API для унифицированной аутентификации и авторизации. |
система: heapster | Нет | Роль для компонента Heapster (не рекомендуется). |
система: кубе-агрегатор | Нет | Роль для компонента кубе-агрегатор. |
система: кубе-днс | учетная запись службы kube-dns в пространстве имен kube-system | Роль для компонента kube-dns. |
система: kubelet-api-admin | Нет | Разрешает полный доступ к API kubelet. |
система: узел-загрузчик | Нет | Разрешает доступ к ресурсам, необходимым для выполнения kubelet самозагрузка TLS. |
система: узел-проблема-детектор | Нет | Роль компонента «Узел-детектор проблем». |
система: поставщик постоянного тома | Нет | Разрешает доступ к ресурсам, необходимым большинству поставщиков динамических томов. |
система: мониторинг | система: мониторинг группа | Разрешает доступ для чтения к конечным точкам мониторинга уровня управления (т.е. kube-apiserver живучести и готовности конечных точек (/ healthz, / livez, / readyz), отдельных конечных точек проверки работоспособности (/ healthz / *, / livez / *, / readyz / *) и / metrics). Обратите внимание, что отдельные конечные точки проверки работоспособности и конечная точка метрики могут предоставлять конфиденциальную информацию. |
Роли для встроенных контроллеров
Запускается диспетчер контроллера Kubernetes.
контроллеры, встроенные в Kubernetes
Плоскость управления.
При вызове с --use-service-account-credentials
kube-controller-manager запускает каждый контроллер
используя отдельную учетную запись службы.Соответствующие роли существуют для каждого встроенного контроллера с префиксом система: контроллер:
.
Если диспетчер контроллеров не запущен с --use-service-account-credentials
, он запускает все контуры управления.
используя свои собственные учетные данные, которым должны быть предоставлены все соответствующие роли.
Эти роли включают:
-
система: контроллер: присоединитьдетак-контроллер
-
система: контроллер: сертификат-контроллер
-
система: контроллер: clusterrole-aggregation-controller
-
система: контроллер: cronjob-controller
-
система: контроллер: демон-набор-контроллер
-
система: контроллер: контроллер развертывания
-
система: контроллер: аварийный контроллер
-
система: контроллер: конечная точка-контроллер
-
система: контроллер: контроллер расширения
-
система: контроллер: сборщик мусора
-
система: контроллер: горизонтальный модуль с автоматическим масштабированием
-
система: контроллер: контроллер задания
-
система: контроллер: контроллер пространства имен
-
система: контроллер: узел-контроллер
-
система: контроллер: скоросшиватель постоянного объема
-
система: контроллер: сборщик мусора
-
система: контроллер: pv-защита-контроллер
-
система: контроллер: контроллер защиты пвх
-
система: контроллер: контроллер репликации
-
система: контроллер: контроллер репликации
-
система: контроллер: ресурс квота-контроллер
-
система: контроллер: root-ca-cert-publisher
-
система: контроллер: маршрут-контроллер
-
система: контроллер: сервис-аккаунт-контроллер
-
система: контроллер: сервис-контроллер
-
система: контроллер: statefulset-controller
-
система: контроллер: ttl-controller
Предотвращение повышения привилегий и начальная загрузка
API RBAC не позволяет пользователям повышать привилегии путем редактирования ролей или привязок ролей.Поскольку это применяется на уровне API, оно применяется даже тогда, когда авторизатор RBAC не используется.
Ограничения на создание или обновление ролей
Вы можете создать / обновить роль, только если верно хотя бы одно из следующих условий:
- У вас уже есть все разрешения, содержащиеся в роли, в той же области, что и изменяемый объект (на уровне кластера для ClusterRole, в том же пространстве имен или на уровне кластера для роли).
- Вам предоставлено явное разрешение на выполнение команды
эскалации
для ресурсовролей
илиclusterroles
вrbac.authorization.k8s.io
Группа API.
Например, если user-1
не имеет возможности перечислять секреты для всего кластера, они не могут создать ClusterRole
содержащее это разрешение. Чтобы разрешить пользователю создавать / обновлять роли:
- Предоставьте им роль, которая позволит им создавать / обновлять объекты Role или ClusterRole по своему усмотрению.
- Предоставьте им разрешение на включение определенных разрешений в роли, которые они создают / обновляют:
- неявно, предоставив им эти разрешения (если они попытаются создать или изменить роль или ClusterRole с разрешениями, которые им самим не предоставлены, запрос API будет запрещен)
- или явно разрешить указание любого разрешения в роли
ClusterRole
, дав им разрешение на выполнение командыэскалации
дляролей
илиclusterroles
ресурсов вrbac.authorization.k8s.io
Группа API
Ограничения на создание или обновление привязки ролей
Вы можете создать / обновить привязку роли, только если у вас уже есть все разрешения, содержащиеся в указанной роли.
(в той же области, что и привязка роли) или , если вы авторизованы для выполнения команды привязки
к указанной роли.
Например, если пользователь-1
не имеет возможности перечислить секреты для всего кластера, они не могут создать привязку ClusterRoleBinding.
роли, предоставляющей это разрешение.Чтобы позволить пользователю создавать / обновлять привязки ролей:
- Предоставьте им роль, которая позволит им создавать / обновлять объекты RoleBinding или ClusterRoleBinding по своему усмотрению.
- Предоставьте им разрешения, необходимые для привязки определенной роли:
- неявно, предоставив им разрешения, содержащиеся в роли.
- явно, дав им разрешение на выполнение глагола
привязки
к конкретной роли (или ClusterRole).
Например, эта ClusterRole и RoleBinding позволят user-1
предоставить другим пользователям admin
, edit
и просмотреть роли
в пространстве имен user-1-namespace
:
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
имя: роль-праводатель
правила:
- apiGroups: ["rbac.authorization.k8s.io"]
ресурсы: ["ролевые привязки"]
глаголы: ["создать"]
- apiGroups: ["rbac.authorization.k8s.io"]
ресурсы: ["clusterroles"]
глаголы: ["связывать"]
# опустить resourceNames, чтобы разрешить привязку любой ClusterRole
resourceNames: ["админ", "редактировать", "просмотр"]
---
apiVersion: rbac.authorization.k8s.io/v1
вид: RoleBinding
метаданные:
имя: привязка лица, предоставившего роль
пространство имен: user-1-namespace
roleRef:
apiGroup: rbac.authorization.k8s.io
вид: ClusterRole
имя: роль-праводатель
предметы:
- apiGroup: rbac.authorization.k8s.io
вид: Пользователь
имя: пользователь-1
При начальной загрузке первых ролей и привязок ролей необходимо, чтобы начальный пользователь предоставил разрешения, которых у него еще нет. Для начальной загрузки ролей и привязок ролей:
- Используйте учетные данные с группой «system: masters», которая связана с ролью суперпользователя «cluster-admin» привязками по умолчанию.
- Если ваш сервер API работает с включенным небезопасным портом (
--insecure-port
), вы также можете выполнять вызовы API через этот порт, который не требует проверки подлинности или авторизации.
Утилиты командной строки
kubectl создать роль
Создает объект «Роль», определяющий разрешения в одном пространстве имен. Примеры:
Создайте роль с именем «pod-reader», которая позволяет пользователям выполнять
, получать
,смотреть
ипросматривать список
на модулях:kubectl создать роль pod-reader --verb = get --verb = list --verb = watch --resource = pods
Создайте роль с именем «pod-reader» с указанными resourceNames:
kubectl создать роль pod-reader --verb = get --resource = pods --resource-name = readablepod --resource-name = anotherpod
Создайте роль с именем «foo» с указанными apiGroups:
kubectl create role foo --verb = get, list, watch --resource = replicasets.Программы
Создайте роль с именем «foo» с разрешениями на подресурсы:
kubectl create role foo --verb = get, list, watch --resource = pods, pods / status
Создайте роль с именем «my-component-lease-holder» с разрешениями на получение / обновление ресурса с определенным именем:
kubectl create role my-component-lease-holder --verb = get, list, watch, update --resource = lease --resource-name = my-component
kubectl создать clusterrole
Создает ClusterRole.Примеры:
Создайте ClusterRole с именем «pod-reader», которая позволяет пользователю выполнять
, получить
,просмотреть
исписок
на подах:kubectl create clusterrole pod-reader --verb = get, list, watch --resource = pods
Создайте ClusterRole с именем «pod-reader» с указанными resourceNames:
kubectl create clusterrole pod-reader --verb = get --resource = pods --resource-name = readablepod --resource-name = anotherpod
Создайте ClusterRole с именем «foo» с указанными apiGroups:
kubectl create clusterrole foo --verb = get, list, watch --resource = replicasets.Программы
Создайте ClusterRole с именем «foo» с разрешениями на подресурсы:
kubectl create clusterrole foo --verb = get, list, watch --resource = pods, pods / status
Создайте ClusterRole с именем «foo» с указанным nonResourceURL:
kubectl create clusterrole "foo" --verb = get --non-resource-url = / logs / *
Создайте ClusterRole с именем «мониторинг» с указанным правилом агрегации:
kubectl создать мониторинг роли кластера --aggregation-rule = "rbac.example.com/aggregate-to-monitoring=true "
kubectl создать привязку ролей
Предоставляет роль или роль кластера в определенном пространстве имен. Примеры:
В пространстве имен «acme» предоставьте разрешения в ClusterRole «admin» пользователю с именем «bob»:
kubectl create rolebinding bob-admin-binding --clusterrole = admin --user = bob --namespace = acme
В пространстве имен «acme» предоставьте разрешения в «представлении» ClusterRole учетной записи службы в пространстве имен «acme» с именем «myapp»:
kubectl create rolebinding myapp-view-binding --clusterrole = view --serviceaccount = acme: myapp --namespace = acme
В пространстве имен «acme» предоставьте разрешения в «представлении» ClusterRole учетной записи службы в пространстве имен «myappnamespace» с именем «myapp»:
kubectl создать привязку ролей myappnamespace-myapp-view-binding --clusterrole = view --serviceaccount = myappnamespace: myapp --namespace = acme
kubectl create clusterrolebinding
Предоставляет ClusterRole для всего кластера (всех пространств имен).Примеры:
Для всего кластера предоставьте разрешения в роли ClusterRole «cluster-admin» пользователю с именем «root»:
kubectl create clusterrolebinding root-cluster-admin-binding --clusterrole = cluster-admin --user = root
Во всем кластере предоставьте разрешения в ClusterRole «system: node-proxier» пользователю с именем «system: kube-proxy»:
kubectl create clusterrolebinding kube-proxy-binding --clusterrole = system: node-proxier --user = system: kube-proxy
Во всем кластере предоставьте разрешения в «представлении» ClusterRole учетной записи службы с именем «myapp» в пространстве имен «acme»:
kubectl create clusterrolebinding myapp-view-binding --clusterrole = view --serviceaccount = acme: myapp
kubectl auth согласовать
Создает или обновляет rbac.authorization.k8s.io/v1
Объекты API из файла манифеста.
Создаются отсутствующие объекты, и при необходимости создается содержащее пространство имен для объектов с пространством имен.
Существующие роли обновлены, чтобы включить разрешения во входных объектах,
и удалите лишние разрешения, если указано --remove-extra-permissions
.
Существующие привязки обновляются для включения субъектов во входные объекты,
и удалите лишние предметы, если указано --remove-extra-subject
.
Примеры:
Тестирование применения файла манифеста объектов RBAC, отображение изменений, которые будут внесены:
kubectl auth согласовать -f my-rbac-rules.yaml --dry-run = client
Применить файл манифеста объектов RBAC с сохранением любых дополнительных разрешений (в ролях) и любых дополнительных субъектов (в привязках):
kubectl auth согласовать -f my-rbac-rules.yaml
Применить файл манифеста объектов RBAC, удалив все дополнительные разрешения (в ролях) и любые дополнительные субъекты (в привязках):
kubectl auth согласовать -f my-rbac-rules.yaml --remove-extra-темы --remove-extra-permissions
Разрешения для ServiceAccount
Политики RBAC по умолчанию предоставляют разрешения с определенной областью действия для компонентов уровня управления, узлов, и контроллеры, но не предоставлять никаких разрешений для служебных учетных записей вне пространства имен kube-system (помимо разрешений на обнаружение, предоставленных всем аутентифицированным пользователям).
Это позволяет при необходимости назначать определенные роли определенным ServiceAccounts.Детализированные привязки ролей обеспечивают большую безопасность, но требуют больше усилий для администрирования. Более широкие гранты могут предоставить ненужный (и потенциально расширяющийся) доступ API к ServiceAccounts, но их легче администрировать.
В порядке от наиболее безопасного к наименее защищенному подходы следующие:
Предоставить роль учетной записи службы для конкретного приложения (передовой опыт)
Это требует, чтобы приложение указывало
serviceAccountName
в своей спецификации модуля, и для создаваемой учетной записи службы (через API, манифест приложения,kubectl create serviceaccount
и т. д.).Например, предоставить доступ только для чтения в «my-namespace» учетной записи службы «my-sa»:
kubectl создать привязку ролей my-sa-view \ --clusterrole = просмотр \ --serviceaccount = мое-пространство имен: my-sa \ --namespace = мое-пространство имен
Предоставить роль учетной записи службы «по умолчанию» в пространстве имен
Если приложение не указывает
serviceAccountName
, оно использует учетную запись службы «по умолчанию».Примечание: Разрешения, предоставленные учетной записи службы «по умолчанию», доступны для любого модуля. в пространстве имен, которое не указывает
serviceAccountName
.Например, предоставить доступ только для чтения в «my-namespace» учетной записи службы «по умолчанию»:
kubectl создать привязку ролей по умолчанию \ --clusterrole = просмотр \ --serviceaccount = мое-пространство имен: по умолчанию \ --namespace = мое-пространство имен
Многие надстройки работают как учетная запись службы «default» в пространстве имен kube-system . Чтобы эти надстройки работали с правами суперпользователя, предоставьте cluster-admin разрешения для учетной записи службы «по умолчанию» в пространстве имен
kube-system
.Внимание: Включение этого параметра означает, что пространство имен kube-system содержит секреты. которые предоставляют суперпользовательский доступ к API вашего кластера.
kubectl создать надстройку для привязки кластера-кластер-админ \ --clusterrole = администратор кластера \ --serviceaccount = kube-system: по умолчанию
Предоставить роль всем учетным записям служб в пространстве имен
Если вы хотите, чтобы все приложения в пространстве имен имели роль, независимо от того, какую учетную запись службы они используют, вы можете предоставить роль группе учетных записей службы для этого пространства имен.
Например, предоставить разрешение только на чтение в «my-namespace» всем учетным записям служб в этом пространстве имен:
kubectl создать привязку ролей serviceaccounts-view \ --clusterrole = просмотр \ --group = system: serviceaccounts: my-namespace \ --namespace = мое-пространство имен
Предоставить ограниченную роль всем сервисным учетным записям в масштабе кластера (не рекомендуется)
Если вы не хотите управлять разрешениями для каждого пространства имен, вы можете предоставить роль в масштабе кластера всем учетным записям служб.
Например, предоставить разрешение только на чтение для всех пространств имен всем учетным записям служб в кластере:
kubectl создать clusterrolebinding serviceaccounts-view \ --clusterrole = просмотр \ --group = system: serviceaccounts
Предоставить суперпользователю доступ ко всем сервисным учетным записям в рамках кластера (настоятельно не рекомендуется)
Если вы вообще не заботитесь о разрешениях на разделение, вы можете предоставить суперпользовательский доступ ко всем учетным записям служб.
Предупреждение: Это разрешает любому приложению полный доступ к вашему кластеру, а также предоставляет любой пользователь с доступом для чтения к Секретам (или возможностью создавать любые модули) полный доступ к вашему кластеру.
kubectl создать службу привязки кластераaccounts-cluster-admin \ --clusterrole = администратор кластера \ --group = system: serviceaccounts
Доступ для записи для конечных точек
кластеров Kubernetes, созданных до Kubernetes v1.22, включают доступ на запись в Конечные точки в агрегированных ролях «редактировать» и «администратор». Как смягчение последствий CVE-2021-25740, это доступ не является частью агрегированных ролей в кластерах, которые вы создаете с помощью Kubernetes v1.22 или новее.
Существующие кластеры, обновленные до Kubernetes v1.22, не будут подлежит этому изменению. CVE объявление включает руководство по ограничению этого доступа в существующих кластерах.
Если вы хотите, чтобы новые кластеры сохранили этот уровень доступа в агрегированных ролях, вы можете создать следующую ClusterRole:
apiVersion: rbac.authorization.k8s.io/v1
вид: ClusterRole
метаданные:
аннотации:
kubernetes.io/description: | -
Добавьте конечным точкам разрешения на запись для ролей редактирования и администратора.Это было
по умолчанию удален в версии 1.22 из-за CVE-2021-25740. Видеть
https://issue.k8s.io/103675. Это может позволить авторам направлять LoadBalancer
или реализации Ingress для предоставления серверных IP-адресов, которые в противном случае не
быть доступным и может обходить сетевые политики или средства контроля безопасности
предназначены для предотвращения / изоляции доступа к этим серверным модулям.
ярлыки:
rbac.authorization.k8s.io/aggregate-to-edit: "правда"
name: custom: aggregate-to-edit: endpoints # вы можете изменить это, если хотите
правила:
- apiGroups: [""]
ресурсы: ["конечные точки"]
глаголы: ["создать", "удалить", "удалить коллекцию", "патч", "обновить"]
Обновление с ABAC
Кластеры, на которых изначально были запущены более старые версии Kubernetes, часто использовались разрешительные политики ABAC, включая предоставление полного доступа к API для всех сервисные аккаунты.
Политики RBAC по умолчанию предоставляют разрешения с определенной областью действия для компонентов уровня управления, узлов, и контроллеры, но не предоставлять никаких разрешений для служебных учетных записей вне пространства имен kube-system (помимо разрешений на обнаружение, предоставленных всем аутентифицированным пользователям).
Хотя это намного безопаснее, это может нарушить работу существующих рабочих нагрузок, которые ожидают автоматического получения разрешений API. Вот два подхода к управлению этим переходом:
Параллельные авторизаторы
Запустите авторизаторы RBAC и ABAC и укажите файл политики, содержащий устаревшая политика ABAC:
- режим-авторизации =..., RBAC, ABAC --authorization-policy-file = mypolicy.json
Чтобы подробно объяснить этот первый параметр командной строки: если более ранние авторизаторы, такие как Node, отклонить запрос, то авторизатор RBAC пытается авторизовать запрос API. Если RBAC также отклоняет этот запрос API, затем запускается авторизатор ABAC. Это означает, что любой запрос разрешено или разрешены политики RBAC или ABAC.
Когда kube-apiserver запущен с уровнем журнала 5 или выше для компонента RBAC
( --vmodule = rbac * = 5
или --v = 5
), вы можете увидеть отказы RBAC в журнале сервера API
(с префиксом RBAC
).Вы можете использовать эту информацию, чтобы определить, какие роли должны быть предоставлены каким пользователям, группам или учетным записям служб.
После назначения ролей сервисным учетным записям и рабочим нагрузкам работают без сообщений об отказе RBAC в журналах сервера, вы можете удалить авторизатор ABAC.
Разрешающие разрешения RBAC
Вы можете реплицировать разрешающую политику ABAC, используя привязки ролей RBAC.
Предупреждение:Следующая политика позволяет ВСЕМ учетным записям служб действовать в качестве администраторов кластера.Любое приложение, работающее в контейнере, автоматически получает учетные данные учетной записи службы, и может выполнять любые действия с API, включая просмотр секретов и изменение разрешений. Это не рекомендуемая политика.
kubectl create clusterrolebinding permissive-binding \
--clusterrole = администратор кластера \
--user = admin \
--user = кубелет \
--group = system: serviceaccounts
После перехода на использование RBAC необходимо настроить элементы управления доступом. для вашего кластера, чтобы они соответствовали вашим потребностям в информационной безопасности.
Последнее изменение 23 октября 2021 г., 4:21 PST : внесены запрошенные изменения (2642b12ef)Авторизация пользователя | Руководство по Elasticsearch [7.15]
Функции безопасности Elastic Stack добавляют авторизацию , которая представляет собой процесс определения того, разрешено ли пользователю выполнять входящий запрос. запрос.
Этот процесс происходит после успешной идентификации пользователя и аутентифицирован.
Контроль доступа на основе ролейit
Функции безопасности обеспечивают механизм управления доступом на основе ролей (RBAC), который позволяет вам авторизовать пользователей, назначая привилегии ролям и назначение ролей пользователям или группам.
Процесс авторизации вращается вокруг следующих конструкций:
- Защищенный ресурс
- Ресурс, доступ к которому ограничен. Индексы, псевдонимы, документы, поля, Пользователи и сам кластер Elasticsearch являются примерами защищенных объектов.
- Привилегия
- Именованная группа из одного или нескольких действий, которые пользователь может выполнить против
защищенный ресурс. У каждого защищенного ресурса есть свои наборы доступных привилегий.
Например,
читать
— это привилегия индекса, которая представляет все действия, которые позволяют чтение индексированных / сохраненных данных. Полный список доступных привилегий см. Привилегии безопасности. - Разрешения
Набор из одной или нескольких привилегий в отношении защищенного ресурса.Разрешения могут легко описать словами, вот несколько примеров:
-
чтение
привилегия для продуктовпоток данных или индекс
-
управлять привилегиями
в кластере -
run_as
привилегия для пользователяjohn
-
чтение
привилегия для документов, соответствующих запросу X -
читать привилегию
в полеcredit_card
-
- Роль
- Именованный набор разрешений
- Пользователь
- Авторизованный пользователь.
- Группа
- Одна или несколько групп, к которым принадлежит пользователь. Группы не поддерживаются в некоторых области, такие как собственные области, области файлов или PKI.
Роль имеет уникальное имя и определяет набор разрешений, которые преобразуются в привилегии на ресурсы. Вы можете связать пользователя или группу с произвольным количество ролей. Когда вы сопоставляете роли с группами, роли пользователя в этой группе представляют собой комбинацию ролей, назначенных этой группе, и ролей, назначенных этому пользователю.Аналогичным образом определяется общий набор разрешений, которые есть у пользователя. объединением разрешений во всех его ролях.
Метод назначения ролей пользователям зависит от того, какие области вы используете. для аутентификации пользователей. Для получения дополнительной информации см. Сопоставление пользователей и групп ролям.
Контроль доступа на основе атрибутов
Функции безопасности также обеспечивают управление доступом на основе атрибутов (ABAC). механизм, позволяющий использовать атрибуты для ограничения доступа к документам в поисковых запросах и агрегатах.Например, вы можете присвоить атрибуты пользователей и документов, а затем реализуйте политику доступа в определении роли.