При создании субъекта применяются правила, связывающие тип и роль запускающего (родительского) субъекта и образ (image) запускаемого субъекта с типом и множеством ролей, которые назначаются новому субъекту.
Элементы source_type, source_role и image
Элемент create_subject может содержать несколько правил. Правила применяются последовательно (порядок важен) до тех пор, пока не будет найдено первое, непротиворечащее комбинации значений source_type, source_role и image. Другими словами, для применения правила необходимо, чтобы:
source_type.source_role.image.Варианты задания типа субъекта, инициирующего создание нового субъекта (элемент source_type):
source_type: coresource_type: [core, dispatcher]source_type: @anyВарианты задания роли субъекта, инициирующего создание нового субъекта (элемент source_role):
source_role: systemsource_role : [system, user]source_role: @anyВарианты задания имени образа, из которого создается новый субъект (элемент image):
image: coreimage: [core, einit]image: @anyЭлементы target_type и target_type_auto
Элементы target_type и target_type_auto используются для определения допустимых типов для создаваемого субъекта.
При этом target_type используется в случае, когда желаемый тип указывается при создании субъекта, а target_type_auto используется, когда желаемый тип не указан, и политика должна сама вычислить допустимый тип.
Варианты задания допустимых типов в случае явного указания типа (элемент target_type):
target_type: coretarget_type: [core, dispatcher]target_type: @source_typetarget_type: @anyНазначение желаемого типа новому субъекту будет разрешено, если этот тип совпадет с одним из указанных в target_type. Если элемент target_type не задан, то явное назначение типа запрещено.
Варианты задания автоматически назначаемого типа в случае отсутствия явного указания типа (элемент target_type_auto):
target_type_auto: coretarget_type_auto: @source_typeСоздаваемому субъекту будет назначен тип, указанный в target_type_auto. Если поле target_type_auto не задано, то неявное назначение типа запрещено.
Элементы target_role и target_role_auto
Элементы target_role и target_role_auto используются для определения допустимых ролей для создаваемого субъекта.
При этом target_role используется в случае, когда желаемые роли указываются при создании субъекта, а target_role_auto используется, когда желаемые роли не указаны, и политика должна сама вычислить нужные роли.
Варианты задания допустимых ролей в случае явного указания ролей ( элемент target_role_):
target_role: coretarget_role: [core, dispatcher]target_role: @source_roletarget_role: @anyНазначение желаемых ролей новому субъекту будет разрешено, если эти роли являются подмножеством ролей, указанных в target_role. Если элемент target_role не задан, то явное назначение ролей запрещено.
Варианты задания автоматически назначаемых ролей в случае отсутствия явного указания ролей (элемент target_role_auto):
target_role_auto: coretarget_role_auto: [core, dispatcher]target_role_auto: @source_rolestarget_role_auto: @anyСоздаваемому субъекту будет назначен тип, указанный в target_role_auto. Если элемент target_role_auto не задан, то неявное назначение типа запрещено.
Пример
create_subject: {
{ source_type: core // субъект инициатор должен иметь тип "core"
, source_role: system // субъект инициатор должен иметь роль "system"
, image: einit // образ
, target_type_auto: einit // автоматическое назначение типа возможно
, target_role_auto: @source_roles // автоматическое назначение ролей: роли, совпадающие с ролями сущности-инициатора
},
{ source_type: dispatcher
, source_role: [system, user]
, image: rpcservice
, target_type: [user, admin] // тип создаваемого субъекта должен быть указан, и должен быть одним из списка
, target_role_auto : @source_roles
},
{ source: @any
, image: tls
, target_type: [@source_type, tls]
, target_role: [user, admin]
},
}
В начало