Richtlinien¶
Jeder OpenStack-Dienst definiert die Zugriffsrichtlinien für seine Ressourcen in einer zugehörigen Richtliniendatei. Eine Ressource zum Beispiel könnte API-Zugriff sein, die Fähigkeit, an ein Volume anzubringen oder Instanzen auszulösen. Die Richtlinienregeln sind im JSON-Format angegeben und die Datei heißt policy.json
. Die Syntax und das Format dieser Datei werden im Configuration Reference diskutiert <https://docs.openstack.org/ocata/config-reference/policy-json-file.html> `__.
Diese Richtlinien können vom Cloud-Administrator geändert oder aktualisiert werden, um den Zugriff auf die verschiedenen Ressourcen zu steuern. Stellen Sie sicher, dass Änderungen an den Zutrittskontrollrichtlinien die Sicherheit einer Ressource nicht unbeabsichtigt schwächen. Beachten Sie auch, dass Änderungen an der ``policy.json``Datei sofort wirksam werden und nicht verlangen, dass der Dienst neu gestartet wird.
Das folgende Beispiel zeigt, wie der Dienst den Zugriff auf das Erstellen,
Aktualisieren und Löschen von Ressourcen auf nur diejenigen Benutzer
beschränken kann, die die Rolle von cloud_admin``haben, die als die
Konjunktion von ``role = admin``und `definiert wurde `domain_id =
admin_domain_id
, während die get- und list-Ressourcen für Benutzer zur
Verfügung gestellt werden, die die Rolle von cloud_admin
oder admin
haben.
{
"admin_required": "role:admin",
"cloud_admin": "rule:admin_required and domain_id:admin_domain_id",
"service_role": "role:service",
"service_or_admin": "rule:admin_required or rule:service_role",
"owner" : "user_id:%(user_id)s or user_id:%(target.token.user_id)s",
"admin_or_owner": "(rule:admin_required and domain_id:%(target.token.user.domain.id)s) or rule:owner",
"admin_or_cloud_admin": "rule:admin_required or rule:cloud_admin",
"admin_and_matching_domain_id": "rule:admin_required and domain_id:%(domain_id)s",
"service_admin_or_owner": "rule:service_or_admin or rule:owner",
"default": "rule:admin_required",
"identity:get_service": "rule:admin_or_cloud_admin",
"identity:list_services": "rule:admin_or_cloud_admin",
"identity:create_service": "rule:cloud_admin",
"identity:update_service": "rule:cloud_admin",
"identity:delete_service": "rule:cloud_admin",
"identity:get_endpoint": "rule:admin_or_cloud_admin",
"identity:list_endpoints": "rule:admin_or_cloud_admin",
"identity:create_endpoint": "rule:cloud_admin",
"identity:update_endpoint": "rule:cloud_admin",
"identity:delete_endpoint": "rule:cloud_admin",
}