Sie können einen policy
-Abschnitt zum Steuern der RBAC-Richtlinie für bestimmte Dienste hinzufügen.
Jeder OpenStack-Dienst, wie z. B. Identität, Computing, Netzwerk usw., verfügt über eigene rollenbasierte Zugriffsrichtlinien. Diese Richtlinien legen fest, auf welche Objekte Sie zugreifen können, und sie werden in der Konfigurationsdatei der Dienstrichtlinie definiert. Für die
VMware Integrated OpenStack-Bereitstellung können Sie den Befehl
viocli update zum Bearbeiten der entsprechenden Dienstrichtlinienkonfiguration verwenden.
Hinweis: Für VIO 7.x verfügt Keystone über ein Standard-Lesegerät und eine Mitgliedsrolle. Diese ist standardmäßig nicht funktionsfähig. Sie müssen die entsprechende Dienstrichtlinie für die Verwendung der Rolle explizit bearbeiten, um Ihre Anforderungen an die Berechtigungssteuerung zu erfüllen. Weitere Informationen zur Benutzer- und Rollenverwaltung finden Sie unter
Keystone-Benutzer- und Rollenverwaltung.
Syntax:
Verwenden Sie den viocli update <service>
-Befehl, um die RBAC-Richtlinie für die angegebenen Dienste hinzuzufügen.
Sie können
project_id
,
user_id
,
domain_id
oder
role
zum Erstellen der Bedingungen für den Geltungsbereich für Benutzer verwenden. Verwenden Sie die folgenden Operatoren für die Kombination allgemeiner Geltungsbereiche:
- !: Kein Benutzer kann den Vorgang durchführen.
- @ oder "": Jeder Benutzer kann den Vorgang durchführen.
- not, and, or: Der Operator zum Kombinieren mehrerer Geltungsbereiche.
Der folgende Beispielcode zeigt die verschiedenen Operatoren für die Kombination allgemeiner Geltungsbereiche:
conf: policy: "alias_1": "is_admin:True or project_id:%(project_id)s" "alias_2": "role:reader" "alias_3": "other user scope definition" "operation_1": "!" "operation_2": "@" "operation_3": "rule:alias_1 or (rule:alias_2 and rule:alias_3)"
Beispiel:
Sie können bestimmte Regeln wie „
power_user
“ und „
read_user
“ innerhalb Ihrer Richtlinienkonfigurationsdatei definieren. Im folgenden Code ruft „
read_user
“ beispielsweise die APIs für Serverindex, „show“ und „details“ auf. Nova-Instanzen können jedoch nicht erstellt, gelöscht, gestartet und beendet werden.
conf: nova: vmware: #some configurations for VIO policy: power_user: (role:member) and project_id:%(project_id)s read_user: (role:reader) and project_id:%(project_id)s os_compute_api:servers:detail: rule:read_user os_compute_api:servers:index: rule:read_user os_compute_api:servers:show: rule:read_user os_compute_api:servers:start: rule:power_user os_compute_api:servers:stop: rule:power_user os_compute_api:servers:create: rule:power_user os_compute_api:servers:delete: rule:power_user
Lesen Sie die vollständigen Richtlinien:
Sie müssen den Dienst-Pod suchen und dann den Inhalt der Richtliniendatei überprüfen. Verwenden Sie die folgenden Befehle, um die vollständige Nova-Richtlinie zu überprüfen:
# osctl get pod | grep nova-api-osapi nova-api-osapi-7d7978fb44-b24rl 2/2 Running 0 3d23h # osctl exec -it nova-api-osapi-7d7978fb44-b24rl /bin/bash Defaulting container name to nova-osapi. Use 'kubectl describe pod/nova-api-osapi-7d7978fb44-b24rl -n openstack' to see all of the containers in this pod. [root@nova-api-osapi-7d7978fb44-b24rl /]# cat /etc/nova/policy.yaml os_compute_api:os-simple-tenant-usage:discoverable: '@' ......
Weitere Informationen zu Richtlinien für verschiedene Dienste finden Sie in den folgenden OpenStack Community-Dokumenten:
Keystone: Keystone-Richtlinie
Nova: Nova-Richtlinie
Cinder: Cinder-Richtlinie
Glance: Glance-Richtlinie
Neutron: Neutron-Richtlinie