OS Login einrichten

In diesem Dokument wird beschrieben, wie Sie OS Login einrichten.

Mit OS Login können Sie IAM-Rollen (Compute Engine Identity and Access Management) verwenden, um SSH-Zugriff auf Ihre Linux-Instanzen zu gewähren oder zu entziehen. OS Login ist eine Alternative zum Verwalten des Instanzzugriffs durch Einfügen und Entfernen von SSH-Schlüsseln in Metadaten. Weitere Informationen zu den Vorteilen dieses Features finden Sie unter OS Login.

Wenn Sie OS Login mit einer Bestätigung in zwei Schritten aktivieren möchten, finden Sie weitere Informationen unter OS Login mit Bestätigung in zwei Schritten einrichten. Informationen zum Verwalten des Zugriffs auf Ihre VMs finden Sie unter Zugriffsmethode auswählen.

Hinweis

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.

Schritt 1: OS Login aktivieren oder deaktivieren

Sie können OS Login aktivieren oder deaktivieren, indem Sie Metadatenwerte auf Instanz- oder Projektebene festlegen. Durch Aktivieren oder Deaktivieren von OS Login in Instanzmetadaten wird der in Projektmetadaten festgelegte Wert überschrieben. Zum Festlegen von OS Login-Werten können Sie entweder die Google Cloud Console oder die Google Cloud CLI verwenden.

Console

Sie können die Metadatenwerte auf Ihre Projekte oder VMs anwenden. Verwenden Sie dazu eine der folgenden Optionen:

  • Option 1: Geben Sie in den projektübergreifenden Metadaten enable-oslogin an, damit der Eintrag für alle Instanzen im Projekt gilt.

    1. Rufen Sie in der Google Cloud Console die Seite Metadaten auf.

      Zur Seite "Metadaten"

    2. Klicken Sie auf Bearbeiten.

    3. Fügen Sie einen Metadateneintrag hinzu und setzen Sie den Schlüssel auf enable-oslogin und den Wert auf TRUE. Alternativ können Sie den Wert auf FALSE setzen, um das Feature zu deaktivieren.

    4. Klicken Sie auf Speichern, um die Änderungen zu übernehmen.

  • Option 2: Geben Sie in den Instanzmetadaten einer vorhandenen Instanz enable-oslogin an.

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

      Zu „VM-Instanzen“

    2. Klicken Sie auf den Namen der Instanz, für die Sie OS Login aktivieren möchten.

    3. Klicken Sie auf der Seite "Instanzdetails" auf Bearbeiten.

    4. Fügen Sie unter Benutzerdefinierte Metadaten einen Metadateneintrag hinzu und setzen Sie den Schlüssel auf enable-oslogin sowie den Wert auf TRUE. Alternativ können Sie den Wert auf FALSE festlegen, um OS Login für die Instanz zu deaktivieren.

    5. Klicken Sie auf Speichern, um die Änderungen auf die Instanz anzuwenden.

  • Option 3: Aktivieren Sie OS Login beim Erstellen einer Instanz.

    1. Rufen Sie in der Console die Seite Instanz erstellen auf.

      Zur Seite „Instanz erstellen“

    2. Maximieren Sie Netzwerk, Laufwerke, Sicherheit, Verwaltung, Einzelmandanten, um weitere Konfigurationsoptionen aufzurufen.
    3. Maximieren Sie den Abschnitt Sicherheit.
    4. Maximieren Sie den Abschnitt Zugriff verwalten.
    5. Wählen Sie VM-Zugriff über IAM-Berechtigungen steuern aus.
    6. Klicken Sie auf Erstellen, um die VM zu erstellen.

gcloud

Mit den folgenden Optionen können Sie Metadatenwerte auf Ihre Projekte oder VMs anwenden:

  • Option 1: Geben Sie in den projektübergreifenden Metadaten enable-oslogin an, damit der Eintrag für alle Instanzen im Projekt gilt.

    Verwenden Sie den Befehl project-info add-metadata in der Google Cloud CLI und legen Sie einen Metadatenwert mit oslogin=TRUE fest, um OS Login zu aktivieren:

    gcloud compute project-info add-metadata \
        --metadata enable-oslogin=TRUE
    

    Alternativ können Sie enable-oslogin auf FALSE festlegen, um OS Login zu deaktivieren.

  • Option 2: Geben Sie in den Metadaten einer vorhandenen Instanz enable-oslogin an.

    Verwenden Sie den Befehl instances add-metadata in der Google Cloud CLI und legen Sie oslogin=TRUE fest, um OS Login zu aktivieren. Ersetzen Sie VM_NAME durch den Namen Ihrer VM.

    gcloud compute instances add-metadata VM_NAME \
        --metadata enable-oslogin=TRUE
    

    Alternativ können Sie enable-oslogin auf FALSE setzen, damit OS Login für Ihre Instanz nicht verwendet wird.

  • Option 3: Geben Sie beim Erstellen einer Instanz in den Instanzmetadaten enable-oslogin an.

    1. Erstellen Sie eine Compute Engine-Instanz: Konfigurieren Sie die Instanz wie folgt:
      • Ersetzen Sie INSTANCE_NAME durch Ihren bevorzugten Instanznamen.
      • Legen Sie für das Flag --zone die Zone fest, in der Sie Ihre Instanz erstellen möchten.
      • Stellen Sie enable-oslogin in den Instanzmetadaten auf TRUE, um OS Login zu aktivieren.
      gcloud compute instances create INSTANCE_NAME --zone=ZONE --metadata=enable-oslogin=TRUE

Nach der Aktivierung von OS Login auf den Instanzen in Ihrem Projekt können Sie Nutzern Berechtigungen zuweisen, mit denen sie sich mit den Instanzen verbinden können.

Schritt 2: OS Login-Rollen für Nutzerkonten konfigurieren

OS Login-IAM-Rollen erteilen

Nachdem Sie auf einer oder mehreren Instanzen in Ihrem Projekt OS Login aktiviert haben, akzeptieren diese VMs nur noch Verbindungen von Nutzerkonten mit den erforderlichen IAM-Rollen in Ihrem Projekt oder in Ihrer Organisation.

Dem Nutzer müssen die erforderlichen Rollen zugewiesen werden, um OS Login-Zugriff auf diese VMs zu ermöglichen. So gewähren Sie OS Login Zugriff:

  1. Wenn der Nutzer die roles/owner-Rolle ,roles/editor-Rolle oder roles/compute.instanceAdmin-Rolle nicht hat, gewähren Sie eine der folgenden Rollen für den Instanzzugriff:

    • roles/compute.osLogin ohne Administratorberechtigungen
    • roles/compute.osAdminLogin mit Administratorberechtigungen

      Sie können die Instanzzugriffsrolle auf Projektebene oder Instanzebene zuweisen. Wenn ein Nutzer SSH-Zugriff über die Console oder die gcloud CLI benötigt, müssen Sie die Instanzzugriffsrolle auf Projektebene oder zusätzlich eine Rolle auf Projektebene zuweisen, die die Berechtigung compute.projects.get enthält.

  2. Wenn Ihre VM ein Dienstkonto verwendet, muss jeder Nutzer, der über SSH eine Verbindung zur VM herstellt, die Identität des Dienstkontos übernehmen können. Konfigurieren Sie jeden Nutzer so, dass er die Rolle roles/iam.serviceAccountUser für das Dienstkonto hat, damit die Identitätsübernahme den Best Practices entspricht. Informationen zum Hinzufügen des Zugriffs eines Nutzers auf ein Dienstkonto finden Sie unter Identitätswechsel für Dienstkonten verwalten.

  3. Erteilen Sie Nutzern außerhalb Ihrer Organisation, die auf Ihre VMs zugreifen, zusätzlich zur Instanzzugriffsrolle die Rolle roles/compute.osLoginExternalUser, mit der POSIX-Konten aktiviert werden können. Diese Rolle muss von einem Organisationsadministrator auf Organisationsebene zugewiesen werden. Weitere Informationen finden Sie unter Nutzern außerhalb Ihrer Organisation Instanzzugriff gewähren.

SSH-Zugriff für Dienstkonto gewähren

Sie können mithilfe von OS Login-Rollen Dienstkonten erlauben, SSH-Verbindungen zu Ihren Instanzen herzustellen. Dies ist für die folgenden Aufgaben nützlich:

So gewähren Sie Dienstkonten SSH-Zugriff:

  1. Erstellen Sie ein Dienstkonto.
  2. Weisen Sie dem Dienstkonto die erforderlichen OS Login-Rollen zu. Dienstkonten erfordern dieselben Rollen wie Nutzerkonten. Informationen zum Konfigurieren von Rollen und Berechtigungen für Dienstkonten finden Sie unter Dienstkonten Rollen zuweisen.
  3. Stellen Sie dem Dienstkonto die Standardanmeldedaten für Anwendungen zur Verfügung, damit es Anfragen an die notwendigen APIs autorisieren kann. Verwenden Sie dazu eine der folgenden Optionen:

Nachdem Sie den Dienstkonten SSH-Zugriff gewährt haben, können Sie die Anwendungen so konfigurieren, dass SSH-Schlüssel erstellt und SSH-Verbindungen zu anderen Instanzen in Ihren VPC-Netzwerken hergestellt werden. Eine Beispielanwendung für SSH-Zugriff über Dienstkonten finden Sie in der Anleitung Anwendungen über SSH mit Instanzen verbinden.

OS Login-IAM-Rollen entziehen

Um den Nutzerzugriff auf Instanzen mit aktiviertem OS Login aufzuheben, entfernen Sie die Nutzerrollen aus dem Nutzerkonto. Informationen zum Entziehen einer IAM-Rolle eines Nutzers finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

Wenn der Zugriff eines Nutzers widerrufen wird, hat der Nutzer weiterhin öffentliche SSH-Schlüssel, die mit seinem Konto verknüpft sind. Diese Schlüssel funktionieren jedoch nicht mehr für die VM-Instanzen.

Schritt 3: Mit VMs verbinden

Wenn Sie eine Verbindung zu VMs herstellen, für die OS Login aktiviert ist, verwendet Compute Engine den Nutzernamen, den Ihr Organisationsadministrator für Sie konfiguriert hat. Wenn Ihr Organisationsadministrator keinen Nutzernamen für Sie konfiguriert hat, generiert Compute Engine einen Nutzernamen im Format USERNAME_DOMAIN_SUFFIX. Weitere Informationen zu Nutzernamen finden Sie unter So funktioniert OS Login.

Erwartetes Anmeldeverhalten

  • Auf einigen Instanzen, die OS Login verwenden, erhalten Sie die folgende Fehlermeldung, nachdem die Verbindung hergestellt wurde:

    /usr/bin/id: cannot find name for group ID 123456789

    Ignorieren Sie die Fehlermeldung. Dieser Fehler wirkt sich nicht auf Ihre Instanzen aus.

  • Wenn Sie sich in einer Instanz mit dem Befehl gcloud compute ssh anmelden, hat die Login-Meldung das folgende Format für den Nutzer user, der zur Domain example.com gehört:

    Using OS Login user user_example_com instead of default user user

    Diese Meldung bestätigt, dass sich der Nutzer mit einem OS Login-Profil angemeldet hat.

  • Beim Erstellen von VMs werden möglicherweise Logs wie die folgenden angezeigt:

    Dec 10 22:31:05 instance-1 google_oslogin_nss_cache[381]: oslogin_cache_refresh[381]: Refreshing group entry cache
    Dec 10 22:31:05 instance-1 google_oslogin_nss_cache[381]: oslogin_cache_refresh[381]: Failure getting groups, quitting
    

    Diese Logs geben an, dass für Ihre Organisation keine OS Login-Linux-Gruppen konfiguriert sind. Ignorieren Sie diese Nachrichten.

Nächste Schritte