In diesem Dokument wird beschrieben, wie Cloud-Audit-Logs für Anthos-Cluster auf Bare Metal aktiviert und verwendet werden. Anthos-Cluster auf Bare-Metal verwendet Kubernetes-Audit-Logging, um eine chronologische Aufzeichnung der Aufrufe an den Kubernetes API-Server eines Clusters zu speichern. Audit-Logs sind nützlich, um verdächtige API-Anfragen zu untersuchen und Statistiken zu erfassen.
Wenn Cloud-Audit-Logs aktiviert sind, werden Audit-Logs in Cloud-Audit-Logs in Ihrem Google Cloud-Projekt geschrieben. Das Schreiben in Cloud-Audit-Logs hat mehrere Vorteile gegenüber dem Schreiben auf Laufwerke oder auch gegenüber dem Erfassen von Logs in einem lokalen Logging-System:
- Audit-Logs für alle Anthos-Cluster können zentralisiert werden.
- In Cloud-Audit-Logs geschriebene Logeinträge sind unveränderlich.
- Cloud-Audit-Logeinträge werden 400 Tage lang aufbewahrt.
- Die Funktion Cloud-Audit-Logs ist im Preis von Anthos enthalten.
- Sie können Anthos-Cluster auf Bare Metal konfigurieren, um Logs auf Laufwerke oder in Cloud-Audit-Logs zu schreiben.
Audit-Logging auf Laufwerken
Standardmäßig werden Audit-Logs in Anthos-Cluster auf Bare Metal auf einem nichtflüchtigen Speicher geschrieben, damit VM-Neustarts und -Upgrades nicht zum Verschwinden der Logs führen. Anthos-Cluster auf Bare Metal speichern bis zu 1 GB Audit-Logeinträge.
Sie können auf die laufwerkbasierten Audit-Logs zugreifen, indem Sie sich bei Knoten der Steuerungsebene anmelden.
Die Logs befinden sich im Verzeichnis /var/log/apiserver/
.
Cloud-Audit-Logs
Wenn Cloud-Audit-Logs aktiviert sind, werden die Audit-Logeinträge zu Administratoraktivitäten von allen Kubernetes-API-Servern an Google Cloud gesendet. Diese Logeinträge werden unter dem Projektnamen und dem Standort des Clusters gespeichert. Für das Zwischenspeichern und Schreiben von Logeinträgen in Cloud-Audit-Logs stellt Anthos-Cluster auf Bare Metal einen audit-proxy
-Pod im Administratorcluster bereit. Dieser Pod ist auch als Sidecar-Container in Nutzerclustern verfügbar.
Beschränkungen
Cloud-Audit-Logs für Anthos-Cluster auf Bare Metal-Servern ist eine Vorschau-Funktion mit den folgenden Einschränkungen:
- Datenzugriffs-Logging wird nicht unterstützt.
- Das Ändern der Audit-Richtlinie von Kubernetes wird nicht unterstützt.
- Cloud-Audit-Logs sind gegen größere Netzwerkausfälle nicht resistent. Wenn die Logeinträge nicht in Google Cloud exportiert werden können, werden sie in einem 10-GB-Laufwerkzwischenspeicher gespeichert. Wenn dieser Zwischenspeicher voll ist, werden die nachfolgenden Einträge gelöscht.
- Cloud-Audit-Logs können nur beim Erstellen neuer 1.8.0-Cluster aktiviert werden. Das Aktivieren von Cloud-Audit-Logs in vorhandenen Clustern durch ein Upgrade wird für die Featurevorschau nicht unterstützt.
Dienstkonto für Cloud-Audit-Logs erstellen
Bevor Sie Cloud Logging und Cloud Monitoring mit Anthos-Cluster auf Bare Metal aktivieren können, müssen Sie Folgendes konfigurieren:
Erstellen Sie einen Cloud Monitoring-Arbeitsbereich im Google Cloud-Projekt, falls Sie noch keinen haben.
Dies erfolgt in der Google Cloud Console. Klicken Sie auf die folgende Schaltfläche und folgen Sie dem Workflow.
Klicken Sie auf die folgenden Schaltflächen, um die erforderlichen APIs zu aktivieren:
Weisen Sie dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden IAM-Rollen zu:
logging.logWriter
monitoring.metricWriter
stackdriver.resourceMetadata.writer
monitoring.dashboardEditor
Cloud-Audit-Logs beim Erstellen eines Clusters aktivieren
Wenn Sie Cloud-Audit-Logs mit Anthos-Cluster auf Bare Metal verwenden möchten, folgen Sie der regulären Anleitung zum Erstellen von Clustern, aber nehmen Sie die folgende Änderung an der Clusterkonfigurationsdatei vor, bevor Sie die Datei mit dem bmctl create cluster
-Befehl ausführen:
Entfernen Sie die Kommentarzeichen des Felds
disableCloudAuditLogging
in der Clusterkonfigurationsdatei und achten Sie darauf, dass es auffalse
gesetzt ist, wie im folgenden Beispiel gezeigt:... clusterOperations: # Cloud project for logs and metrics. projectID: `PROJECT_ID` # Cloud location for logs and metrics. location: us-central1 # Enable Cloud Audit Logging if uncommented and set to false. disableCloudAuditLogging: false ...
Der Rest des Clustererstellungsvorgangs ist identisch. Weitere Informationen und Links zu Anleitungen finden Sie unter Cluster erstellen: Übersicht.
Auf Cloud-Audit-Logs zugreifen
Console
Rufen Sie in der Google Cloud Console im Menü Logging die Seite Logs auf.
Klicken Sie im Feld Nach Label oder Textsuche filtern auf den Abwärtspfeil, um das Drop-down-Menü zu öffnen. Wählen Sie im Menü den Eintrag In erweiterten Filter umwandeln aus.
Füllen Sie das Textfeld mit dem folgenden Filter aus:
resource.type="k8s_cluster" logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" protoPayload.serviceName="anthosgke.googleapis.com"
Ersetzen Sie
PROJECT_ID
durch Ihre Projekt-ID.Klicken Sie auf Filter senden, um alle Audit-Logs von Anthos-Clustern auf VMware anzuzeigen, die für die Anmeldung in diesem Projekt konfiguriert wurden.
gcloud
Listen Sie die ersten beiden Logeinträge im Administratoraktivitätslog des Projekts auf, die sich auf den Ressourcentyp k8s_cluster
beziehen:
gcloud logging read \ 'logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" \ AND resource.type="k8s_cluster" \ AND protoPayload.serviceName="anthosgke.googleapis.com" ' \ --limit 2 \ --freshness 300d
Ersetzen Sie PROJECT_ID
durch Ihre Projekt-ID.
Es werden zwei Logeinträge ausgegeben. Beachten Sie, dass das Feld logName
für jeden Logeintrag den Wert projects/<var>PROJECT_ID</var>/logs/externalaudit.googleapis.com%2Factivity
hat und protoPayload.serviceName
gleich anthosgke.googleapis.com
ist.
Audit-Richtlinie
Das Verhalten von Cloud-Audit-Logs wird durch eine statisch konfigurierte Audit-Logging-Richtlinie von Kubernetes bestimmt. Das Ändern dieser Richtlinie wird derzeit nicht unterstützt, wird aber in einer zukünftigen Version möglich sein.