OS Login in einer Organisation verwalten


In diesem Dokument wird beschrieben, wie Sie mit OS Login den Zugriff auf VM-Instanzen in Ihrer Organisation verwalten.

In diesem Thema werden folgende Aufgaben behandelt:

Hinweise

  • Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben. Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren.

    Wählen Sie den Tab für die Verwendung der Beispiele auf dieser Seite aus:

    Console

    Wenn Sie über die Google Cloud Console auf Google Cloud-Dienste und -APIs zugreifen, müssen Sie die Authentifizierung nicht einrichten.

    gcloud

    1. Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init
    2. Legen Sie eine Standardregion und -zone fest.

    REST

    Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.

      Installieren Sie die Google Cloud CLI und initialisieren Sie sie mit folgendem Befehl:

      gcloud init

Organisationsrichtlinie für OS Login

Richten Sie eine OS Login-Einschränkung ein, um dafür zu sorgen, dass OS Login in Ihrer Organisation für alle neuen Projekte und VM-Instanzen aktiviert ist, die in diesen neuen Projekten erstellt werden.

Wenn diese Einschränkung eingerichtet ist, gelten die folgenden Bedingungen:

  • enable-oslogin=true ist in den Projektmetadaten für alle neuen Projekte enthalten.
  • Anfragen, die enable-oslogin in Instanz- oder Projektmetadaten auf false setzen, werden für neue und vorhandene VMs und Projekte abgelehnt.

Beschränkungen

OS Login wird in den folgenden Produkten, Features und VMs nicht unterstützt:
  • Cloud Data Fusion Versionen 6.1.4 und niedriger.
  • Cloud Composer
  • Öffentliche Cluster in Google Kubernetes Engine (GKE), die Versionen vor 1.23.5 ausführen
  • Private GKE-Cluster, die Knotenpoolversionen vor 1.20.5 ausführen
  • Dataproc Serverless
  • Windows Server- und SQL Server-VMs
  • Fedora CoreOS-VMs. Verwenden Sie zum Verwalten des Instanzzugriffs auf VMs, die mit diesen Images erstellt wurden, das Ignition-System von Fedora CoreOS.

Problemumgehungen für Cloud Data Fusion, Cloud Composer und GKE

Zur Verwendung von OS Login in Organisationen, die Cloud Data Fusion, Cloud Composer und GKE verwenden, können Sie die OS Login-Einschränkung auf Organisationsebene aktivieren und dann für Projekte oder Ordner für die betroffenen Projekte selektiv deaktivieren.

Weitere Informationen zum Bearbeiten von Organisationsrichtlinien finden Sie unter Richtlinien erstellen und bearbeiten.

Organisationsrichtlinie aktivieren

Zum Aktivieren der OS Login-Richtlinie können Sie die OS Login-Einschränkung für bestimmte Projekte und Ordner über die Google Cloud CLI festlegen. Sie können die OS Login-Einschränkung für die gesamte Organisation auch über die Google Cloud Console oder die Google Cloud CLI festlegen.

Console

Führen Sie die folgenden Schritte aus, um die OS Login-Organisationsrichtlinie über die Console einzurichten:

  1. Wechseln Sie in der Google Cloud Console zur Seite Organisationsrichtlinien.

    Zur Seite "Organisationsrichtlinien"

  2. Klicken Sie in der Liste der Richtlinien auf OS-Anmeldung erforderlich, um die Einschränkungen für vertrauenswürdige Images aufzurufen.
  3. Klicken Sie auf Bearbeiten, um die Einschränkungen für OS Login zu bearbeiten.
  4. Wählen Sie auf der Seite Bearbeiten die Option Anpassen aus.
  5. Wählen Sie An, um die Erzwingung dieser Einschränkung zu aktivieren.
  6. Klicken Sie auf Speichern, um die Einstellungen für die Einschränkungen zu übernehmen.

gcloud

Zum Festlegen der OS Login-Organisationsrichtlinie verwenden Sie den Befehl gcloud beta resource-manager org-policies enable-enforce.

  1. Ermitteln Sie Ihre Organisations-ID.

    gcloud organizations list
  2. Legen Sie die Einschränkung in Ihrer Organisation fest. Ersetzen Sie organization-id durch Ihre Organisations-ID.

    gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
        --organization=organization-id
    

Sie können die Organisationsrichtlinie mit dem Flag --folder oder --project und der entsprechenden Ordner-ID bzw. Projekt-ID auch auf einen Ordner oder ein Projekt anwenden.

Führen Sie den folgenden Befehl aus, um einen Ordner zu erstellen:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --folder=folder-id

Führen Sie für Projekte den folgenden Befehl aus, um ein Projekt zu erstellen:

gcloud beta resource-manager org-policies enable-enforce compute.requireOsLogin \
    --project=project-id

Ersetzen Sie Folgendes:

Nutzer außerhalb Ihrer Organisation Instanzzugriff gewähren

Standardmäßig können Nutzer außerhalb Ihrer Organisation keine SSH-Schlüssel für Instanzen in Ihrer Organisation festlegen oder Zugriff auf Instanzen in Ihrer Organisation erhalten. In einigen Situationen kann es jedoch erforderlich sein, Nutzern Instanzzugriff zu gewähren, die zu einer anderen Organisation gehören oder ein privates gmail.com-Konto von Google haben.

Die IAM-Rolle roles/compute.osLoginExternalUser ermöglicht externen Google-Konten die Interaktion mit den anderen OS Login-Rollen, da sie die Möglichkeit erhalten, POSIX-Kontoinformationen zu konfigurieren.

So weisen Sie Nutzern außerhalb Ihrer Organisation die Rolle roles/compute.osLoginExternalUser und andere erforderliche Rollen für den Zugriff auf OS Login-Instanzen zu:

  1. Rufen Sie in der Google Cloud Console die Seite für die Projekt- und Organisationsauswahl auf.

    Weiter zur Auswahlseite für Projekte und Organisationen

  2. Wählen Sie im Drop-down-Menü Organisation Ihre Organisation aus.
    1. Klicken Sie auf Alle, um alle Organisationen aufzurufen.
    2. Klicken Sie auf den Namen der Organisation.
  3. Klicken Sie auf Hinzufügen, um einem Nutzer eine neue Rolle zuzuweisen.
  4. Geben Sie den Nutzernamen des Nutzers an, für den Sie den Instanzzugriff konfigurieren möchten.
  5. Klicken Sie auf Rolle auswählen, um festzulegen, welche Rollen Sie dem Nutzer zuweisen möchten.
  6. Wählen Sie in der Liste der Compute Engine-Rollen die Rolle Externer Nutzer von Compute OS-Log-in aus.
  7. Klicken Sie auf Hinzufügen, um zu bestätigen, dass Sie dem Nutzer die ausgewählte Rolle zuweisen möchten.
  8. Sofern noch nicht geschehen, müssen Sie dem Nutzer auf Projekt- oder Organisationsebene die anderen Rollen für den Zugriff auf Instanzen mit OS Login zuweisen.

Der Nutzer kann jetzt Verbindungen zu Instanzen in Ihrem Projekt herstellen, für die OS Login aktiviert ist.

OS Login API verwalten

Auf Organisationsebene können Sie den Zugriff auf die OS Login API einschränken. Legen Sie dazu die Google Workspace Administrator-Steuerelemente fest. Informationen zum Konfigurieren der Google Workspace Administrator-Steuerelemente oder zum Anzeigen der Konfigurationsoptionen finden Sie unter Steuern, wer Google Cloud in Ihrer Organisation verwenden darf. Als Google Workspace-Administrator können Sie auch bestimmte Features der OS Login API aktivieren oder deaktivieren. Dazu gehören folgende Optionen:

  • Wählen Sie aus, ob das Domain-Suffix in Nutzernamen eingefügt werden soll, die von der OS Login API generiert wurden. Beispiel: In der Domain example.com hat der Nutzer user@example.com den Nutzernamen user, wenn die Einstellung zum Einbinden des Domain-Suffix nicht aktiviert ist.
  • Entscheiden Sie, ob Mitglieder Ihrer Organisation SSH-Schlüssel mit der OS Login API verwalten können.
  • Sie können den VM-Zugriff für Nutzer außerhalb Ihrer Organisation einschränken oder zulassen.

Weitere Informationen zum Aktivieren oder Deaktivieren der OS Login API-Einstellungen finden Sie unter Einstellungen für die Google Cloud Platform auswählen.

OS Login-Ereignisse prüfen

Als Google Workspace-Administrator können Sie mit dem Google Workspace Admin SDK Aktionen prüfen, die mit der OS Login API ausgeführt werden. Anhand dieser Ereignisse können Sie sehen, wenn Nutzer einen SSH-Schlüssel hinzufügen, löschen oder aktualisieren oder POSIX-Kontoinformationen löschen.

Durch Aufrufen von Activities.list() mit applicationName=gcp können Sie die Aktivitätsereignisse der OS Login API-Audits im Google Workspace Admin SDK abrufen. Weitere Informationen finden Sie unter Google Cloud-Aktivitätsereignisse in der Dokumentation zur Google Workspace Admin SDK Reports API.

Nutzerkonten mithilfe der Directory API bearbeiten

OS Login verwendet für die Verbindung zu einer Instanz entweder die Nutzereinstellungen für Cloud Identity oder für Google Workspace. Als Organisationsadministrator können Sie mithilfe der Directory API die folgenden Aufgaben für Ihre Google Workspace- oder Cloud Identity-Nutzerkonten ausführen:

  • Anmeldeeinstellungen für Instanz ändern
  • Nutzer als Administrator festlegen
  • Nutzerattribute wie Kontoname und E-Mail bearbeiten
  • SSH-Schlüssel für Nutzer hinzufügen und entfernen
  • POSIX-Kontoinformationen bearbeiten
  • Den Nutzernamen ändern, mit dem Nutzer auf der Instanz verbunden sind

In den folgenden Beispielen wird gezeigt, wie Sie Nutzerkonten mithilfe der Directory API ändern oder entfernen. Weitere Informationen zu den Kontoattributen, die Sie bearbeiten können, finden Sie in der Referenz zur Directory API.

Kontoattribute ändern

Um die POSIX-Kontoinformationen eines Nutzers zu ändern oder die SSH-Schlüssel des Nutzers zu verwalten, senden Sie eine PUT-Anfrage an die Methode directory.users.update und geben Sie ein oder mehrere Attribute an, um sie für das Nutzerkonto zu ändern.

Wenn Sie die posixAccounts-Attribute eines Nutzers ändern, müssen Sie die aktuellen oder neuen Werte für username, uid und gid in der Anfrage angeben.

Wenn Sie die sshPublicKeys-Attribute des Nutzers ändern, müssen Sie den key-Wert in der Anfrage angeben.

Das folgende Beispiel zeigt eine PUT-Anfrage:

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": [
  {
    "username": "USERNAME",
    "uid": "UID",
    "gid": "GID",
    "homeDirectory": "USER_HOME_PATH",
    "shell": "SHELL_PATH"
   }
  ],
 "sshPublicKeys": [
  {
    "key": "KEY_VALUE",
    "expirationTimeUsec": EXPIRATION_TIME
   }
  ],
}

Ersetzen Sie Folgendes:

  • USER_KEY: Die primäre E-Mail-Adresse, Alias-E-Mail-Adresse oder eindeutige Nutzer-ID des Nutzers.
  • USERNAME: Der von Compute Engine für den Nutzer zur VM hinzufügte Nutzername. Dieser Wert muss innerhalb der Organisation eindeutig sein und darf nicht mit einer Tilde ("~") enden oder einen Punkt (".") enthalten.
  • UID: Die Nutzer-ID auf der VM für diesen Nutzer. Das Attribut muss ein Wert zwischen 1001 und 60000 oder zwischen 65535 und 2147483647 sein. Für den Zugriff auf Container-Optimized OS muss die UID zwischen 65536 und 214748646 liegen. Die UID muss innerhalb der Organisation einmalig sein.
  • GID: Die Gruppen-ID auf der VM, zu der der Nutzer gehört.
  • USER_HOME_PATH: (Optional) Das Basisverzeichnis auf der VM für den Nutzer. Beispiel: /home/example_username.
  • SHELL_PATH: (Optional) Der Pfad zur Standard-Shell für den Nutzer, nachdem er eine Verbindung zur Instanz hergestellt hat. Beispiel: /bin/bashoder /bin/sh.
  • KEY_VALUE: Der Wert des öffentlichen SSH-Schlüssels.
  • EXPIRATION_TIME: (Optional) Die Ablaufzeit des Schlüssels in Mikrosekunden seit der Epoche (1 Sekunde = 106 Mikrosekunden).

Kontoattribute entfernen

Um die posixAccounts- und sshPublicKeys-Daten für einen Nutzer zu löschen, senden Sie eine PUT-Anfrage an die Methode directory.users.update und legen Sie die Felder posixAccounts und sshPublicKeys auf null fest:

PUT https://admin.googleapis.com/admin/directory/v1/users/USER_KEY

{
 "posixAccounts": null,
 "sshPublicKeys": null
}

Ersetzen Sie USER_KEY durch die primäre E-Mail-Adresse, die Alias-E-Mail-Adresse oder die eindeutige Nutzer-ID des Nutzers.

Linux-Gruppen mit OS Login verwenden

Organisationsadministratoren können mit der Cloud Identity Groups API zusätzliche Linux-Gruppen für OS Login-Nutzer konfigurieren. Dazu erstellen und verwalten sie POSIX-Gruppen. OS Login verknüpft POSIX-Gruppen mit zusätzlichen Linux-Gruppen in den VMs Ihrer Organisation, sodass Sie die Berechtigungen verwalten können, die Nutzer in Ihren VMs haben.

Nutzermitgliedschaft in Linux-Gruppen verwalten

Informationen zum Erstellen einer POSIX-Gruppe finden Sie unter POSIX-Gruppen erstellen und aktualisieren.

Informationen zum Hinzufügen von Nutzern zu einer Gruppe finden Sie unter Nutzer zu einer Gruppe hinzufügen oder einladen.

Mitgliedschaftsaktualisierungen werden innerhalb von zehn Minuten wirksam. Gruppenänderungen werden in allen neu erstellten VMs übernommen. Es kann bis zu sechs Stunden dauern, bis Änderungen an POSIX-Gruppen an alle ausgeführten VMs verteilt werden. Nutzer müssen sich möglicherweise abmelden oder den Befehl newgrp verwenden, um Gruppenänderungen zu beobachten.

Ratenbegrenzungen für Linux-Gruppen mit OS Login

Linux-Gruppen mit OS Login verwenden das Kontingent oslogin.googleapis.com/metadata_server_groups_requests. Standardmäßig beträgt das Kontingentlimit 60 Anfragen/Minute pro Projekt für eine bestimmte Region.

Wenn Sie eine höhere Ratenbegrenzung benötigen, können Sie zusätzliche Kontingente anfordern. Rufen Sie dazu die Seite "Kontingente" in der Google Cloud Console auf.

Kontingente aufrufen

Mitarbeiteridentitätsföderation mit OS Login verwenden

Organisationen, die die Mitarbeiteridentitätsföderation verwenden, können mit OS Login den Zugriff auf ihre VMs verwalten. Wenn die Mitarbeiteridentitätsföderation für eine Organisation aktiviert ist, verwendet OS Login die zertifikatbasierte Authentifizierung anstelle der schlüsselbasierten Authentifizierung, um Nutzeridentitäten zu verifizieren.

Hinweise

Beschränkungen

  • Die VM, zu der Sie eine Verbindung herstellen, muss OpenSSH 7.4 oder höher haben, um die Mitarbeiteridentitätsföderation mit OS Login zu verwenden.

  • Nutzer in Organisationen, die die Mitarbeiteridentitätsföderation verwenden, können nicht auf die seriellen Ports der VM zugreifen.

Verbindung zu VMs herstellen, die OS Login und die Mitarbeiteridentitätsföderation verwenden

Stellen Sie über die Cloud Console, die gcloud CLI oder andere SSH-Clients eine Verbindung zu VMs her, die OS Login mit der Mitarbeiteridentitätsföderation verwenden.

Console

Wenn Sie mithilfe von SSH im Browser eine Verbindung zu VMs herstellen, die OS Login mit der Mitarbeiteridentitätsföderation verwenden, konfiguriert Compute Engine das SSH-Zertifikat für Sie.

So stellen Sie eine Verbindung zu VMs her:

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.

    SSH-Schaltfläche neben dem Instanznamen.

gcloud

Wenn Sie über die gcloud CLI eine Verbindung zu VMs herstellen, die OS Login mit der Mitarbeiteridentitätsföderation verwenden, konfiguriert Compute Engine das SSH-Zertifikat für Sie.

Stellen Sie mit SSH eine Verbindung zu einer VM her, indem Sie den Befehl gcloud compute ssh ausführen:

  1. Aktivieren Sie Cloud Shell in der Google Cloud Console.

    Cloud Shell aktivieren

    Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.

  2. Führen Sie dazu diesen Befehl aus:

    gcloud compute ssh --project=PROJECT_ID --zone=ZONE VM_NAME

    Stellen Sie mit folgendem Befehl eine Verbindung zur VM her:

    • PROJECT_ID: Die ID des Projekts, das die VM enthält
    • ZONE Der Name der Zone, in der sich die VM befindet
    • VM_NAME: der Name der VM

    Wenn Sie Standardeigenschaften für das Google Cloud CLI festgelegt haben, können Sie die Flags --project und --zone bei diesem Befehl weglassen. Beispiel:

    gcloud compute ssh VM_NAME

IAP Desktop

Wenn Sie mithilfe von IAP Desktop eine Verbindung zu VMs herstellen, die OS Login mit der Mitarbeiteridentitätsföderation verwenden, konfiguriert Compute Engine das SSH-Zertifikat für Sie.

So stellen Sie eine Verbindung zu einer VM über IAP Desktop her:

  1. Installieren Sie IAP Desktop auf Ihrer Workstation, falls noch nicht geschehen.

  2. Rufen Sie IAP Desktop auf. Das Fenster Projekte hinzufügen wird geöffnet.

  3. Wenn Sie dazu aufgefordert werden, melden Sie sich mit der Mitarbeiteridentitätsföderation an.

  4. Geben Sie im Fenster Projekte hinzufügen die Projekt-ID oder den Namen des Projekts ein, das die VMs enthält, zu denen Sie eine Verbindung herstellen möchten.

  5. Klicken Sie im Fenster Project Explorer mit der rechten Maustaste noch einmal auf den Namen der VM und wählen Sie Verbinden aus, um eine Verbindung zur VM herzustellen.

SSH-Client

So stellen Sie über einen SSH-Client eine Verbindung zu einer VM her, die OS Login mit der Mitarbeiteridentitätsföderation verwendet:

  1. Erstellen Sie einen SSH-Schlüssel, falls Sie noch keinen haben.
  2. Signieren Sie den öffentlichen SSH-Schlüssel mit der Methode users.projects.locations.signSshPublicKey:

    POST https://oslogin.googleapis.com/v1beta/users/USER/projects/PROJECT_ID/locations/LOCATION:signSshPublicKey
    
    {
     "ssh_public_key": "PUBLIC_KEY"
    }
    

    Ersetzen Sie Folgendes:

    • USER: eine einzelne Identität in einem Mitarbeiterpool im folgenden Format:

      principal:%2F%2Fiam.googleapis.com%2Flocations%2Fglobal%2FworkforcePools%2POOL_ID%2Fsubject%2FSUBJECT_ATTRIBUTE_VALUE
      

      Ersetzen Sie Folgendes:

    • PROJECT_ID: die ID des Projekts, das die VM enthält, zu der Sie eine Verbindung herstellen möchten

    • LOCATION: die Zone, in der sich die VM befindet, zu der Sie eine Verbindung herstellen möchten.

    • PUBLIC_KEY: Der Inhalt der öffentlichen SSH-Schlüsseldatei.

  3. Kopieren Sie das SSH-Zertifikat aus der Ausgabe der Methode user.signSshPublicKey und speichern Sie den Inhalt in einer neuen Datei.

  4. Legen Sie die Berechtigungen für die SSH-Zertifikatsdatei mit folgendem Befehl fest:

    sudo chmod 600 FILE_NAME
    

    Ersetzen Sie FILE_NAME durch den Namen der Datei.

  5. Stellen Sie mit dem folgenden Befehl eine Verbindung zur VM her:

    ssh -i PATH_TO_PRIVATE_KEY -o CertificateFile=PATH_TO_SSH_CERTIFICATE USERNAME@EXTERNAL_IP
    

    Ersetzen Sie Folgendes:

    • PATH_TO_PRIVATE_KEY: der Pfad zur privaten SSH-Schlüsseldatei.
    • PATH_TO_SSH_CERTIFICATE: der Pfad zur SSH-Zertifikatsdatei.
    • USERNAME: der Wert der google.posix_username-Attributzuordnung des Nutzers.
    • EXTERNAL_IP: die externe IP-Adresse der VM

Nächste Schritte