Agent autorisieren

In dieser Anleitung wird beschrieben, wie Sie Anmeldedaten mit privatem Schlüssel für ein Dienstkonto auf einer VM-Instanz installieren, um den Cloud Logging-Agent zu autorisieren. Prüfen Sie vor der Installation des Agents, ob Ihre VM-Instanz die Anmeldedaten hat, die für den Agent erforderlich sind. Der Agent muss berechtigt sein, Informationen an Logging zu senden. Diese Berechtigung erfordert Dienstkonto-Anmeldedaten, die auf Ihrer VM-Instanz gespeichert sind und vom Agent als Standardanmeldedaten für Anwendungen verwendet werden.

Vorbereitung

Lesen Sie diese Anleitung in folgenden Fällen:

  • Wenn Sie Compute Engine-Instanzen ausführen, die sehr alt sind oder ohne die Standardanmeldedaten erstellt wurden, müssen Sie die Schritte in dieser Anleitung ausführen, bevor Sie den Agent installieren. Diese VMs haben möglicherweise nicht die erforderlichen Anmeldedaten mit privatem Schlüssel. Um Ihre Anmeldedaten zu prüfen, führen Sie die Schritte unter Anmeldedaten für Compute Engine prüfen aus. Bei neu erstellten Compute Engine-VM-Instanzen hat das Standarddienstkonto auf Ihrer Instanz die Anmeldedaten, die der Agent benötigt.

  • Wenn Sie AWS EC2-VM-Instanzen ausführen, müssen Sie die Schritte in dieser Anleitung ausführen, bevor Sie den Agent installieren. Amazon EC2-VM-Instanzen haben nicht das erforderliche Dienstkonto. Daher müssen Sie die Anmeldedaten mit privatem Schlüssel manuell von einem Dienstkonto des AWS-Verbindungsprojekts abrufen. Wenn Ihre Instanz bereits Anmeldedaten mit privatem Schlüssel hat, folgen Sie der Anleitung unter Anmeldedaten mit privatem Schlüssel prüfen. Falls Sie Anmeldedaten mit privatem Schlüssel hinzufügen möchten, lesen Sie unter Anmeldedaten hinzufügen weiter.

Sie können die Autorisierungsbereiche in Compute Engine mit dem folgenden Befehl prüfen:

curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes

Suchen Sie in der Ausgabe nach einem oder mehreren der folgenden Autorisierungsbereiche:

https://www.googleapis.com/auth/logging.write
https://www.googleapis.com/auth/logging.admin
https://www.googleapis.com/auth/cloud-platform

Anmeldedaten hinzufügen

Autorisierung ist der Vorgang, bei dem festgestellt wird, welche Berechtigungen ein authentifizierter Client bei einer Reihe von Ressourcen hat.

Gehen Sie zum Autorisieren des Logging-Agents auf einer VM-Instanz so vor:

  1. Erstellen Sie in dem mit Ihrer VM-Instanz verknüpften Google Cloud-Projekt ein Dienstkonto mit den erforderlichen Berechtigungen und Anmeldedaten mit privatem Schlüssel. Bei Amazon EC2-VM-Instanzen ist dies das Projekt AWS Link, das erstellt wird, wenn Sie Ihr AWS-Konto verbinden.

  2. Kopieren Sie die Anmeldedaten mit privatem Schlüssel in Ihre VM-Instanz. Dort werden sie als Standardanmeldedaten für Anwendungen für die auf der Instanz ausgeführte Software verwendet.

  3. Installieren Sie den Agent oder starten Sie ihn neu.

Dienstkonto erstellen

Authentifizierung ist der Vorgang, bei dem die Identität eines Clients ermittelt wird. Zur Authentifizierung empfehlen wir die Verwendung eines Dienstkontos: Dies ist ein Google-Konto, das nicht mit einem bestimmten Nutzer, sondern mit Ihrem Google Cloud-Projekt verknüpft ist. Sie können Dienstkonten zur Authentifizierung verwenden, unabhängig davon, wo Ihr Code ausgeführt wird – in Compute Engine, App Engine oder lokal. Weitere Informationen finden Sie in der Authentifizierungsübersicht.

Folgen Sie zum Erstellen eines Dienstkontos der Anleitung unter Dienstkonto erstellen unter Beachtung der folgenden Informationen:

  • Wählen Sie das Google Cloud-Projekt aus, in dem das Dienstkonto erstellt werden soll:

    • Wählen Sie bei Compute Engine-Instanzen das Projekt aus, in dem Sie die Instanz erstellt haben. Wenn Sie die Instanz im Hostingprojekt für den Arbeitsbereich erstellt haben, wählen Sie den Arbeitsbereich aus.

    • Wählen Sie bei Amazon EC2-Instanzen das AWS-Verbindungsprojekt aus, das beim Verbinden von Logging mit Ihrem AWS-Konto erstellt wurde. Der Name des Verbindungsprojekts beginnt in der Regel mit AWS Link. Erstellen Sie Ihr Dienstkonto nicht im Arbeitsbereich-Projekt.

  • Wählen Sie im Drop-down-Menü Rolle die folgende Rolle aus:

    • Logging > Logautor. Dadurch wird der Logging-Agent autorisiert.

    Wenn Sie auch den Monitoring-Agent installieren, fügen Sie dafür die folgende Rolle hinzu:

    • Monitoring > Monitoring-Messwert-Autor. Dadurch wird der Monitoring-Agent autorisiert.
  • Wählen Sie beim Erstellen des Schlüssels JSON als Schlüsseltyp aus.

Zur Vereinfachung können Sie die Variable CREDS erstellen, um auf die Datei mit den Anmeldedaten auf Ihrer Workstation zu verweisen. Beispiel:

    CREDS="~/Downloads/[PROJECT-NAME]-[KEY-ID].json"

Im Rest des Verfahrens wird diese Variable verwendet.

Privaten Schlüssel in die Instanz kopieren

Nachdem Sie das Dienstkonto erstellt haben, müssen Sie die Datei mit dem privaten Schlüssel an einen der folgenden Speicherorte auf der VM-Instanz kopieren, damit der Agent die Anmeldedaten erkennt. Sie können dafür ein beliebiges Tool zum Kopieren von Dateien verwenden.

  • Nur Linux: /etc/google/auth/application_default_credentials.json

  • Nur Windows: C:\ProgramData\Google\Auth\application_default_credentials.json.

  • Sowohl Linux als auch Windows: ein beliebiger Speicherort, den Sie in der Variable GOOGLE_APPLICATION_CREDENTIALS angeben. Die Variable muss für den Prozess des Agents sichtbar sein.

Bei der nachfolgenden Anleitung zum Kopieren der Datei wird davon ausgegangen, dass Sie auf Ihrer Workstation und Ihrer Instanz eine Linux-Umgebung verwenden. Wenn Sie eine andere Umgebung verwenden, lesen Sie in der Dokumentation Ihres Cloud-Anbieters nach, wie Sie die Datei mit dem privaten Schlüssel kopieren können. Ihre Anmeldedaten mit privatem Schlüssel sollten im vorangegangenen Schritt Dienstkonto erstellen auf Ihrer Workstation an dem Ort gespeichert worden sein, den Sie in der Variable CREDS angegeben haben:

Compute Engine

Verwenden Sie auf Ihrer Workstation das gcloud-Befehlszeilentool: Sie finden [YOUR-INSTANCE-NAME] und [YOUR-INSTANCE-ZONE] in der Google Cloud Console auf der Seite VM-Instanzen:

REMOTE_USER="$USER"
INSTANCE="[YOUR-INSTANCE-NAME]"
ZONE="[YOUR-INSTANCE-ZONE]"
gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"

Führen Sie auf Ihrer Compute Engine-Instanz die folgenden Befehle aus:

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

Amazon EC2

Verwenden Sie auf Ihrer Workstation den Befehl scp:

KEY="[YOUR-SSH-KEY-PAIR-FILE]"
INSTANCE="ec2-[YOUR-INSTANCE'S-PUBLIC-ID.[YOUR-ZONE].compute.amazonaws.com"
# The remote user depends on the installed OS: ec2-user, ubuntu, root, etc.
REMOTE_USER="ec2-user"
scp -i "$KEY" "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json"

Führen Sie auf Ihrer EC2-Instanz die folgenden Befehle aus:

GOOGLE_APPLICATION_CREDENTIALS="/etc/google/auth/application_default_credentials.json"
sudo mkdir -p /etc/google/auth
sudo mv "$HOME/temp.json" "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chown root:root "$GOOGLE_APPLICATION_CREDENTIALS"
sudo chmod 0400 "$GOOGLE_APPLICATION_CREDENTIALS"

Weitere Informationen

Ihrer VM-Instanz liegen jetzt die für den Agent erforderlichen Anmeldedaten vor.

  • Wenn Sie den Agent noch nicht installiert haben, rufen Sie die Seite für die Agent-Installation auf und installieren Sie den Agent. Eine Anleitung finden Sie unter Agent installieren.

  • Wenn Sie den Agent bereits installiert haben, starten Sie ihn neu, um die neuen Anmeldedaten zu nutzen. Unter Agent neu starten finden Sie eine entsprechende Anleitung.

  • Wie Sie die Anmeldedaten prüfen, erfahren Sie unter Anmeldedaten mit privatem Schlüssel prüfen.