Application Credentials
Die OpenStack Application Credentials der noris Sovereign Cloud (nSC) ermöglichen es Benutzern, Anmeldedaten speziell für ihre Anwendungen zu erstellen, ohne ihre persönlichen Benutzerpasswörter offenzulegen.
Erste Schritte
Abschnitt betitelt „Erste Schritte“Application Credentials erstellen
Abschnitt betitelt „Application Credentials erstellen“- Gehen Sie im Webinterface zu Project → Identity → Application Credentials. Für NBG lautet der direkte Link dashboard.nbg.nsc.noris.cloud/identity/application_credentials.
- Prüfen Sie oben die Project ID, es ist wichtig, dass Application Credentials für das richtige Projekt erstellt werden.
- Erstellen Sie ein neues Application Credential: Klicken Sie auf die Schaltfläche „Create Application Credential”.
- Füllen Sie Angaben wie den Namen des Credentials (erforderlich), eine Beschreibung, Ablaufdatum und -zeit, zuzuweisende Rollen sowie etwaige Zugriffsbeschränkungen aus (siehe ACLs unten).
- Laden Sie die resultierende
clouds.yamlherunter. Dieses Secret wird nur einmalig angezeigt. - Legen Sie diese Datei unter
~/.config/openstack/clouds.yamlab. - Vermutlich müssen Sie außerdem die Umgebungsvariable
OS_CLOUDsetzen:export OS_CLOUD=openstack - Ihre CLI sollte nun in der Lage sein, Ihre Projekte aufzulisten:
openstack project list
Wichtige Hinweise
Abschnitt betitelt „Wichtige Hinweise“- Benutzer können Application Credentials bestimmte Rollen und Berechtigungen zuweisen (siehe ACLs unten), um den Zugriff der Anwendung auf das unbedingt Notwendige zu beschränken.
- Application Credentials sind an den Benutzer gebunden, der sie erstellt hat, wird dieser Benutzer entfernt oder verliert er den Zugriff, funktionieren die Credentials nicht mehr.
- Jedes Application Credential ist auf ein einzelnes Projekt beschränkt, sodass beim Wechsel des Projekts jeweils ein eigenes Credential benötigt wird.
- Das Dashboard listet nur die von Ihnen selbst erstellten Application Credentials, nicht alle für das Projekt vorhandenen.
- Standardmäßig ist es Application Credentials aus Sicherheitsgründen untersagt, weitere Application Credentials, Keystone Trusts oder EC2-Credentials zu erstellen. Wenn Sie S3 verwenden möchten, benötigen Sie EC2-Credentials; aktivieren Sie dafür
Unrestrictedbei den verwendeten Application Credentials. Andernfalls sollteUnrestrictednicht aktiviert werden, da dies die Sicherheitsbeschränkungen aufhebt.
Sie können die Berechtigungen Ihrer Application Credentials einschränken. Beispielsweise kann eine Anwendung, die für die VM-Verwaltung genutzt wird, daran gehindert werden, Netzwerk-Konfigurationen zu ändern.
Beispiel-ACLs für VM-Verwaltung
Abschnitt betitelt „Beispiel-ACLs für VM-Verwaltung“[ { "path": "/v2.1/servers", "method": "GET", "service": "compute" }, { "path": "/v2.1/servers/detail", "method": "GET", "service": "compute" }, { "path": "/v2.1/servers", "method": "POST", "service": "compute" }, { "path": "/v2.1/servers/{server_id}", "method": "GET", "service": "compute" }, { "path": "/v2.1/servers/{server_id}", "method": "PUT", "service": "compute" }, { "path": "/v2.1/servers/{server_id}", "method": "DELETE", "service": "compute" }, { "path": "/v2.1/servers/{server_id}/action", "method": "POST", "service": "compute" }, { "path": "/v2.1/servers/{server_id}/remote-consoles", "method": "POST", "service": "compute" }, { "path": "/v2.1/servers/{server_id}/diagnostics", "method": "GET", "service": "compute" }, { "path": "/v2.1/servers/{server_id}/os-volume_attachments", "method": "GET", "service": "compute" }, { "path": "/v2.1/servers/{server_id}/os-volume_attachments/{volume_id}", "method": "GET", "service": "compute" }, { "path": "/v2.1/flavors", "method": "GET", "service": "compute" }, { "path": "/v2.1/flavors/detail", "method": "GET", "service": "compute" }, { "path": "/v2.1/flavors/{flavor_id}", "method": "GET", "service": "compute" }, { "path": "/v2.1/os-keypairs", "method": "GET", "service": "compute" }, { "path": "/v2.1/os-keypairs", "method": "POST", "service": "compute" }, { "path": "/v2.1/os-keypairs/{keypair_name}", "method": "GET", "service": "compute" }, { "path": "/v2.1/os-keypairs/{keypair_name}", "method": "DELETE", "service": "compute" }]Beispielkonfiguration für die Image-Verwaltung
Abschnitt betitelt „Beispielkonfiguration für die Image-Verwaltung“[ { "path": "/v2/images", "method": "POST", "service": "image" }, { "path": "/v2/images", "method": "GET", "service": "image" }, { "path": "/v2/images/{image_id}", "method": "GET", "service": "image" }, { "path": "/v2/images/{image_id}", "method": "PATCH", "service": "image" }, { "path": "/v2/images/{image_id}", "method": "DELETE", "service": "image" }, { "path": "/v2/images/{image_id}/actions/deactivate", "method": "POST", "service": "image" }, { "path": "/v2/images/{image_id}/actions/reactivate", "method": "POST", "service": "image" }, { "path": "/v2/images/{image_id}/file", "method": "PUT", "service": "image" }, { "path": "/v2/images/{image_id}/file", "method": "GET", "service": "image" }, { "path": "/v2/images/{image_id}/members", "method": "POST", "service": "image" }, { "path": "/v2/images/{image_id}/members", "method": "GET", "service": "image" }, { "path": "/v2/images/{image_id}/members/{member_id}", "method": "GET", "service": "image" }, { "path": "/v2/images/{image_id}/members/{member_id}", "method": "PUT", "service": "image" }, { "path": "/v2/images/{image_id}/members/{member_id}", "method": "DELETE", "service": "image" }, { "path": "/v2/images/{image_id}/tags/{tag}", "method": "PUT", "service": "image" }, { "path": "/v2/images/{image_id}/tags/{tag}", "method": "DELETE", "service": "image" }]Beispielkonfiguration für die Netzwerk-Verwaltung
Abschnitt betitelt „Beispielkonfiguration für die Netzwerk-Verwaltung“[ { "path": "/v2.0/networks", "method": "GET", "service": "network" }, { "path": "/v2.0/networks", "method": "POST", "service": "network" }, { "path": "/v2.0/networks/{network_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/networks/{network_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/networks/{network_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/subnets", "method": "GET", "service": "network" }, { "path": "/v2.0/subnets", "method": "POST", "service": "network" }, { "path": "/v2.0/subnets/{subnet_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/subnets/{subnet_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/subnets/{subnet_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/security-group-rules", "method": "GET", "service": "network" }, { "path": "/v2.0/security-group-rules", "method": "POST", "service": "network" }, { "path": "/v2.0/security-group-rules/{security_group_rule_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/security-group-rules/{security_group_rule_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/security-groups", "method": "GET", "service": "network" }, { "path": "/v2.0/security-groups", "method": "POST", "service": "network" }, { "path": "/v2.0/security-groups/{security_group_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/security-groups/{security_group_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/security-groups/{security_group_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/ports/{port_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/ports/{port_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/ports/{port_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/ports", "method": "GET", "service": "network" }, { "path": "/v2.0/ports", "method": "POST", "service": "network" }, { "path": "/v2.0/ports/{port_id}/add_allowed_address_pairs", "method": "PUT", "service": "network" }, { "path": "/v2.0/ports/{port_id}/remove_allowed_address_pairs", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers", "method": "GET", "service": "network" }, { "path": "/v2.0/routers", "method": "POST", "service": "network" }, { "path": "/v2.0/routers/{router_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/routers/{router_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}", "method": "DELETE", "service": "network" }, { "path": "/v2.0/routers/{router_id}/add_router_interface", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/remove_router_interface", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/add_extraroutes", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/remove_extraroutes", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/add_external_gateways", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/update_external_gateways", "method": "PUT", "service": "network" }, { "path": "/v2.0/routers/{router_id}/remove_external_gateways", "method": "PUT", "service": "network" }, { "path": "/v2.0/floatingips", "method": "GET", "service": "network" }, { "path": "/v2.0/floatingips", "method": "POST", "service": "network" }, { "path": "/v2.0/floatingips/{floatingip_id}", "method": "GET", "service": "network" }, { "path": "/v2.0/floatingips/{floatingip_id}", "method": "PUT", "service": "network" }, { "path": "/v2.0/floatingips/{floatingip_id}", "method": "DELETE", "service": "network" }]Umfassendes Beispiel
Abschnitt betitelt „Umfassendes Beispiel“Eine umfassende Konfiguration, die VM-Verwaltung, Image-Verwaltung und Netzwerk-Verwaltung einschließt:
- Name:
Comprehensive-Management-Credential - Beschreibung: Credential zur Verwaltung von VM-Zuständen, Images und Netzwerken
- Secret: (generiert oder vorgegeben)
- Ablaufdatum/-zeit: (optional)
- Rollen:
admin(oder mehrere angegebene Rollen wievm_admin,image_admin,network_admin) - Access Rules: die Vereinigung aller ACL-Einträge aus den drei obigen Beispielen
Weitere Informationen
Abschnitt betitelt „Weitere Informationen“- OpenStack Application Credentials Dokumentation
- Compute Service API Referenz
- Image Service API Referenz
- Networking Service API Referenz
Auch aktuelle große Sprachmodelle können brauchbare ACLs liefern, diese sollten vor dem Einsatz jedoch auf Korrektheit geprüft werden.
