Detaillierten Zugriff innerhalb von VMs konfigurieren


In Compute Engine können Sie mit OS Login Nutzern Zugriff auf VMs gewähren und den Zugriff für Nutzer mit sudo einschränken. Sie können steuern, welche Nutzer bestimmte Dateien und ausführbare Dateien in VMs ansehen oder ausführen können. Dazu stellen Sie Betriebssystemrichtlinien bereit, die die Verwaltung von Dateien in Ihrer VM-Flotte automatisieren und zentralisieren.

In dieser Anleitung erfahren Sie, wie Sie einer Gruppe von Nutzern ohne sudo-Zugriff Lesezugriff auf die Datei auth.log (/var/log/auth.log) auf mehreren VMs gewähren. Dazu verwenden Sie OS Login und Betriebssystemrichtlinien.

In den meisten Standardkonfigurationen sind die auth.log-Dateiberechtigungen auf 640 gesetzt und die Datei gehört der Gruppe adm. Ein Nutzer ohne die IAM-Rolle roles/compute.osAdminLogin befindet sich nicht in der Gruppe adm, hat keinen sudo-Zugriff und daher auch keinen Lesezugriff auf die Datei.

In dieser Anleitung geht es hauptsächlich um die Verwaltung von Nutzerberechtigungen für eine bestimmte Datei. Der Workflow kann jedoch geändert und zum Festlegen von Berechtigungen für andere Dateien oder ausführbare Dateien auf einer VM verwendet werden.

Ziele

In dieser Anleitung lernen Sie Folgendes:

  • OS Login-Linux-Gruppe erstellen
  • Zuweisung für Betriebssystemrichtlinie verwenden, um die Gruppenberechtigungen einer Datei in mehreren VMs gleichzeitig zu ändern

Kosten

In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:

Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen. Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Nach Abschluss der in diesem Dokument beschriebenen Aufgaben können Sie weitere Kosten vermeiden, indem Sie die erstellten Ressourcen löschen. Weitere Informationen finden Sie unter Bereinigen.

Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  3. Installieren Sie das Google Cloud CLI oder aktualisieren Sie es auf die neueste Version.
  4. Sie müssen ein Cloud Identity Groups-Administrator für Ihre Organisation sein. Wenn Sie kein Google Groups-Administrator sind, bitten Sie den Google Groups-Administrator Ihrer Organisation, eine OS Login-Linux-Gruppe zu erstellen.
  5. VM Manager aktivieren.

Umgebung vorbereiten

Bevor Sie Zugriff auf die Datei auth.log gewähren können, müssen Sie einige VMs erstellen.

Erstellen Sie mit dem Befehl gcloud compute instances bulk create drei VMs:

gcloud compute instances bulk create \
    --name-pattern=tutorial-# \
    --zone=us-west1-a \
    --count=3 \
    --labels=vm=tutorial \
    --metadata=enable-oslogin=TRUE

Es kann eine Meldung ähnlich der folgenden angezeigt werden:

`Bulk create request finished with status message: [VM instances created: 3, failed: 0.]`

Gruppenberechtigungen für die Datei auth.log festlegen

Wenn Sie einem Nutzer Lesezugriff auf die Datei auth.log gewähren möchten, ohne ihm die IAM-Rolle roles/compute.osAdminLogin zuzuweisen, ändern Sie die Gruppe, der die Datei gehört, in eine Linux-Gruppe, in der der Nutzer Mitglied ist.

OS Login-Linux-Gruppe erstellen

Sie können eine OS Login-Linux-Gruppe erstellen, um eine zusätzliche Linux-Gruppe hinzuzufügen, die auf jeder VM mit aktiviertem OS Login angezeigt wird. Wenn Sie eine OS Login-Linux-Gruppe anstelle einer lokalen zusätzlichen Linux-Gruppe erstellen, können Sie die Linux-Gruppe auf allen VMs einheitlich steuern.

Verwenden Sie zum Erstellen einer OS Login-Linux-Gruppe den Befehl gcloud beta identity groups create:

gcloud beta identity groups create logaccess@ORGANIZATION_DOMAIN \
    --organization=ORGANIZATION_DOMAIN \
    --posix-group=gid=12345,name=logaccess

Ersetzen Sie ORGANIZATION_DOMAIN durch die mit Ihrer Organisation verknüpfte Domain (example.com).

Zuweisung von Betriebssystemrichtlinien erstellen

Mit Betriebssystemrichtlinien können Sie die Konfiguration Ihrer VMs automatisieren und zentralisieren. Sie wenden Betriebssystemrichtlinien mithilfe der Zuweisungen von Betriebssystemrichtlinien auf VMs an. Durch Erstellen einer Betriebssystemrichtlinien-Zuweisung mit einer Betriebssystemrichtlinie, die die Standardgruppe der Datei auth.log ändert, können Sie die Standardgruppe der Datei auth.log in mehreren VMs gleichzeitig ändern, anstatt die Änderung auf jeweils nur eine VM anzuwenden.

So erstellen Sie eine Betriebssystemrichtlinien-Zuweisung:

  1. Öffnen Sie ein Terminal in der Workstation.

  2. Erstellen Sie mit dem folgenden Befehl eine .yaml-Datei für die Betriebssystemrichtlinie:

    touch tutorial-os-policy-assignment.yaml
    
  3. Öffnen Sie die Datei tutorial-os-policy-assignment.yaml in einem Texteditor und fügen Sie die folgenden Spezifikationen hinzu:

    # OS policy assignment that sets the /var/log/auth.log group to logaccess.
    osPolicies:
     - id: log-access-policy
       mode: ENFORCEMENT
       resourceGroups:
           resources:
             - id: grant-log-access
               exec:
                 validate:
                   # Checks if the group is logaccess. If yes, exits  with code 100. If no,
                   # exits with code 101 and proceeds to the `enforce` step.
                   script:
                     if stat -c '%G' /var/log/auth.log | grep -q 'logaccess'; then exit 100; else exit 101; fi
                   interpreter: SHELL
                 enforce:
                   # Changes the group to logaccess and exits with code 100.
                   script:
                     chgrp logaccess /var/log/auth.log && exit 100
    instanceFilter:
     inclusionLabels:
       - labels:
           vm: tutorial
    rollout:
     disruptionBudget:
       fixed: 10
     minWaitDuration: 30s
    

Zuweisung von Betriebssystemrichtlinien auf VMs anwenden

So wenden Sie die Betriebssystemrichtlinien-Zuweisung auf Ihre VMs an:

  1. Wenden Sie die Betriebssystemrichtlinie mit dem Befehl gcloud compute os-config os-policy-assignments create an:

    gcloud compute os-config os-policy-assignments create log-access-assignment \
       --location=us-west1-a \
       --file=log-access-os-policy-assignment.yaml \
       --async
    

    Die Betriebssystemrichtlinie wird gemäß den Rollout-Spezifikationen, die in der Datei tutorial-os-policy-assignment.yaml erwähnt werden, auf den VMs eingeführt.

  2. Prüfen Sie mit dem Befehl gcloud compute os-config os-policy-assignment-reports list, ob die Zuweisung der Betriebssystemrichtlinie erfolgreich auf den VMs eingeführt wurde und die Betriebssystemrichtlinie die Standardgruppe erfolgreich aktualisiert hat:

    gcloud compute os-config os-policy-assignment-reports list --location=us-west1-a
    

Nutzer der OS Login-Linux-Gruppe hinzufügen

Wenn Sie einer OS Login-Linux-Gruppe einen Nutzer hinzufügen, übernimmt der Nutzer die Berechtigungen der Gruppe in allen VMs, für die OS Login aktiviert ist. In dieser Anleitung kann jeder Nutzer, den Sie der Gruppe logaccess hinzufügen, die Datei auth.log ohne die IAM-Rolle roles/compute.osAdminLogin aufrufen.

In der Cloud Identity-Hilfe finden Sie Informationen darüber, wie Sie der Gruppe logaccess einen Nutzer hinzufügen.

Bereinigen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, löschen Sie entweder das Projekt, das die Ressourcen enthält, oder Sie behalten das Projekt und löschen die einzelnen Ressourcen.

Projekt löschen

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Einzelne Ressourcen löschen

Löschen Sie die VMs, die Sie mit dem Befehl gcloud compute instances delete erstellt haben:

gcloud compute instances delete tutorial-1 tutorial-2 tutorial-3 \
    --zone=us-west1-a

Nächste Schritte