In diesem Dokument wird beschrieben, wie Sie Cloud-Audit-Logs für Google Distributed Cloud (nur Software) verwenden. Google Distributed Cloud verwendet Kubernetes-Audit-Logging, das Aufrufe an den Kubernetes API-Server eines Clusters chronologisch speichert. Audit-Logs sind nützlich, um verdächtige API-Anfragen zu untersuchen und Statistiken zu erfassen. Informationen zum Audit-Logging für die GKE On-Prem API finden Sie unter Cloud API-Audit-Logging.
Informationen zu Cloud-Audit-Logs
Audit-Logs werden 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 dem Erfassen von Logs in einem lokalen Logging-System:
- Audit-Logs für alle 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 Google Distributed Cloud enthalten.
- Sie können Google Distributed Cloud so konfigurieren, dass Logs auf ein Laufwerk oder in Cloud-Audit-Logs geschrieben werden.
Audit-Logging auf Laufwerken
Wenn Cloud-Audit-Logs explizit deaktiviert wird, werden Audit-Logs in einen nichtflüchtigen Speicher geschrieben, damit Neustarts und Upgrades von Clustern nicht zum Verschwinden der Logs führen. In Google Distributed Cloud (nur Software) werden bis zu 1 GiB an Audit-Logeinträgen aufbewahrt.
Melden Sie sich bei den Steuerungsebenenknoten an, um auf die laufwerkbasierten Audit-Logs zuzugreifen. Die Logs befinden sich im Verzeichnis /var/log/apiserver/.
Cloud-Audit-Logs
Audit-Logeinträge zur Administratoraktivität von allen Kubernetes API-Servern werden unter Verwendung des Projekts und des Speicherorts, den Sie beim Erstellen eines Nutzerclusters angeben, anGoogle Cloudgesendet. Zum Zwischenspeichern und Schreiben von Logeinträgen in Cloud-Audit-Logs stellt Google Distributed Cloud ein audit-proxy-Daemon-Set bereit, das auf den Knoten der Steuerungsebene ausgeführt wird.
Beschränkungen
Für Cloud-Audit-Logs gelten die folgenden Einschränkungen:
- Das Datenzugriffs-Logging (get, list, watch-Anfragen) 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 Cloudexportiert werden können, werden sie in einem 10-GB-Laufwerkzwischenspeicher gespeichert. Wenn dieser Puffer gefüllt wird, werden die ältesten Einträge gelöscht.
- Ein Projekt kann bis zu etwa 1.000 Dienstkonten für die Verwendung mit Cloud-Audit-Logs unterstützen. Mehrere Cluster können dasselbe Dienstkonto verwenden.
Dienstkonto für Cloud-Audit-Logs erstellen
Bevor Sie Cloud Logging und Cloud Monitoring mit Google Distributed Cloud (nur Software) verwenden können, müssen Sie Folgendes konfigurieren:
Erstellen Sie einen Cloud Monitoring-Arbeitsbereich im Google Cloud -Projekt, falls Sie noch keinen haben.
Klicken Sie in der Google Cloud Console auf den folgenden Button und folgen Sie dem Workflow.
Klicken Sie auf die folgenden Buttons, um die erforderlichen APIs zu aktivieren:
Weisen Sie dem Dienstkonto, das von den Stackdriver-Agents verwendet wird, die folgenden IAM-Rollen zu:
logging.logWritermonitoring.metricWriterstackdriver.resourceMetadata.writermonitoring.dashboardEditor
Auf Cloud-Audit-Logs zugreifen
Console
Rufen Sie in der Google Cloud Console im Menü Logging die Seite Log-Explorer auf.
Wenn die Seite Legacy-Loganzeige geöffnet wird, wählen Sie im Drop-down-Menü Upgrade die Option Upgrade auf den neuen Log-Explorer durchführen aus.
Klicken Sie in das Feld Abfrage, um eine Abfrage einzugeben.
Geben Sie die folgende Abfrage in das Feld Query ein:
resource.type="k8s_cluster" logName="projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity" protoPayload.serviceName="anthosgke.googleapis.com"Ersetzen Sie
PROJECT_IDdurch Ihre Projekt-ID.Klicken Sie auf Abfrage ausführen, um alle Audit-Logs von Clustern anzuzeigen, die für die Anmeldung in diesem Projekt konfiguriert wurden.
gcloud
- Listen Sie die ersten beiden Logeinträge im Administratoraktivitätsprotokoll des Projekts auf, die sich auf den Ressourcentyp
k8s_clusterbeziehen:
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_IDdurch Ihre Projekt-ID.
Es werden zwei Logeinträge ausgegeben. Beachten Sie, dass das Feld logName für jeden Logeintrag den Wert projects/PROJECT_ID/logs/externalaudit.googleapis.com%2Factivity hat und protoPayload.serviceName gleich anthosgke.googleapis.com ist.
Audit-Richtlinie
In der Audit-Richtlinie von Kubernetes ist definiert, welche Ereignisse als Logeinträge erfasst werden. Außerdem wird angegeben, welche Daten die Logeinträge enthalten sollen. Das Verhalten von Cloud-Audit-Logs wird durch eine statisch konfigurierte Audit-Logging-Richtlinie von Kubernetes bestimmt. Das Ändern dieser Richtlinie zum Ändern des Verhaltens von Cloud-Audit-Logs wird nicht unterstützt.