In diesem Dokument wird beschrieben, wie sichere Spanner Omni-Bereitstellungen den Zugriff durch Authentifizierung und Autorisierung steuern. Sie erstellen und verwalten Nutzer und weisen ihnen Rollen zu, die ihre Berechtigungen definieren. Nutzer können sich mit einer der folgenden Methoden authentifizieren:
- Passwort-Authentifizierung: Verwendet das Passwortprotokoll OPAQUE. Dieses Protokoll erhöht die Sicherheit, da signierte Zugriffstokens für nachfolgende Anfragen bereitgestellt werden.
- Clientzertifikatauthentifizierung: Hier werden Zertifikate verwendet, die von derselben Zertifizierungsstelle (Certificate Authority, CA) signiert wurden, die auch die API-Serverzertifikate signiert hat. Die
Common Namedes Zertifikats identifiziert den Nutzer.
Die Autorisierung in Spanner Omni verwendet IAM-Rollen- und Berechtigungsnamen (Identity and Access Management), ähnlich wie in Spanner. Sie weisen Nutzern Rollen zu, die bestimmte Berechtigungen gewähren. Spanner Omni-IAM unterscheidet sich von Spanner-IAM. Sie unterstützt beispielsweise keine benutzerdefinierten Rollen und enthält bestimmte Spanner Omni-Berechtigungen.
Nutzer
In einer sicheren Bereitstellung ist für den Zugriff auf Spanner Omni APIs ein Nutzer erforderlich. Sie können Nutzer mit der Spanner Omni CLI erstellen, aktualisieren und löschen. Bei jeder Spanner Omni-Bereitstellung wird standardmäßig ein einzelner admin-Nutzer mit dem Passwort admin erstellt.
Nutzer erstellen
Erstellen Sie neue Nutzer, damit Sie ihnen verschiedene Rollen zuweisen und die Nutzung prüfen können. Mit dem folgenden Befehl wird einem neuen Nutzer die Rolle roles/spanner.databaseUser zugewiesen, damit er Daten aus einer Spanner Omni-Datenbank lesen und in sie schreiben kann.
spanner users create USER_NAME --roles=roles/spanner.databaseUser
Nutzer löschen
Löschen Sie veraltete Nutzer aus dem System:
spanner users delete USER_NAME
Nutzer aktualisieren
Status und Rollen eines Nutzers aktualisieren Mit diesem Befehl werden der vorhandene Status und die vorhandenen Rollen überschrieben:
spanner users update USER_NAME --roles=NEW_ROLES --state=ACTIVE
Authentifizierung
Bei einer sicheren Bereitstellung müssen sich Nutzer anmelden, bevor sie auf eine Spanner Omni-Bereitstellung zugreifen können.
Spanner Omni bietet zwei Mechanismen zur Authentifizierung von Nutzern:
| Mechanismus | Beschreibung |
|---|---|
| Passwörter | Nutzer geben sowohl ihren Nutzernamen als auch ihr Passwort ein. |
| Clientzertifikate | Clients verwenden Zertifikate, die von derselben Zertifizierungsstelle signiert wurden, die auch die API-Serverzertifikate signiert hat. |
Passwörter
Bei der Passwortauthentifizierung müssen Sie Ihren Nutzernamen und Ihr Passwort eingeben. Sie funktioniert nur, wenn TLS auf dem Server aktiviert ist.
spanner auth login USER_NAME
Spanner Omni verwendet eine Implementierung des OPAQUE-Protokolls, um zu verhindern, dass Passwörter an den Server gesendet werden. Dadurch wird das System vor Man-in-the-Middle-Angriffen geschützt. In Spanner Omni werden keine Passwörter auf dem Server gespeichert. Ein unbeabsichtigter Zugriff auf den Server gefährdet daher nicht die Anmeldedaten der Nutzer.
Nach erfolgreicher Authentifizierung gibt Spanner Omni ein signiertes Zugriffstoken zurück. Hängen Sie das Zugriffstoken an alle weiteren Anfragen an. Die Spanner Omni CLI speichert das Zugriffstoken in ~/.config/spanner/access_token/token.txt. Geben Sie dieses Token nicht an andere weiter, um die Sicherheit Ihres Systems zu gewährleisten.
Standardmäßig hat das Zugriffstoken eine Ablaufzeit von 60 Minuten. Nach 60 Minuten akzeptiert der Server das Zugriffstoken nicht mehr und Sie müssen sich noch einmal anmelden. Spanner Omni signiert das Zugriffstoken, um Manipulationen zu verhindern.
Damit Passwörter nicht an Stellen angezeigt werden, an denen Sie sie möglicherweise sehen, z. B. in Umgebungsvariablen oder Befehlszeilen-Flags, akzeptieren die Spanner Omni CLI-Befehle Passwörter auf zwei Arten:
- Prompts, die Ihre Eingabe maskieren.
- Strings in Dateien. Spanner Omni prüft, ob die Dateiberechtigungen 600 sind, überschreibt die Dateien mit zufälligen Daten und löscht sie nach dem Lesen.
Weitere Informationen erhalten Sie durch Ausführung von spanner auth --help.
Clientzertifikate
Für die Clientzertifikatauthentifizierung müssen Clients Zertifikate verwenden, die von derselben Zertifizierungsstelle (Certificate Authority, CA) signiert wurden, die auch die API-Serverzertifikate signiert hat.
Geben Sie den Nutzernamen eines gültigen, aktiven Nutzers in das Feld Common Name des Zertifikats ein.
Bei der Autorisierung wird anhand der zugewiesenen Rollen bestimmt, ob Sie die Berechtigungen zum Ausführen des angeforderten Vorgangs haben. Verwenden Sie die Flags --ca-certificate-file und --client-certificate-directory, um ein Clientzertifikat an eine Anfrage anzuhängen. Im Folgenden sehen Sie ein Beispiel für das Auflisten von Datenbanken:
spanner databases list --ca-certificate-file PATH_TO_CA_CERT --client-certificate-directory PATH_TO_CLIENT_CERT_DIR
Sie können sich auch mit Clientzertifikaten anmelden:
spanner auth login USER_NAME --ca-certificate-file PATH_TO_CA_CERT --client-certificate-directory PATH_TO_CLIENT_CERT_DIR
Autorisierung
Spanner Omni verwendet die meisten IAM-Rollen- und Berechtigungsnamen von Spanner. Wenn Sie einen Nutzer erstellen, können Sie ihm eine oder mehrere Rollen zuweisen. Jede Rolle enthält eine oder mehrere Berechtigungen.
Verwenden Sie den folgenden Befehl, um die verfügbaren Rollen in Spanner Omni aufzulisten:
spanner roles list
Weitere Informationen zu IAM-Berechtigungen in Spanner Omni finden Sie in der IAM-Übersicht.