Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Prüfung von Amazon DocumentDB-Ereignissen
Mit Amazon DocumentDB (mit MongoDB-Kompatibilität) können Sie Ereignisse überprüfen, die in Ihrem Cluster durchgeführt wurden. Beispiele für protokollierte Ereignisse sind erfolgreiche und fehlgeschlagene Authentifizierungsversuche, Drop-Ereignisse für Sammlungen in einer Datenbank oder das Erstellen eines Index. Standardmäßig ist Auditing in Amazon DocumentDB deaktiviert und erfordert, dass Sie sich für die Nutzung dieser Funktion anmelden.
Wenn die Überwachung aktiviert ist, zeichnet Amazon DocumentDB Ereignisse in den Bereichen Data Definition Language (DDL), Data Manipulation Language (DML), Authentifizierung, Autorisierung und Benutzerverwaltung bei Amazon auf CloudWatch Protokolle. Wenn das Auditing aktiviert ist, exportiert Amazon DocumentDB die Audit-Aufzeichnungen (JSON-Dokumente) Ihres Clusters nach Amazon CloudWatch Protokolle. Sie können Amazon verwenden CloudWatch Protokolle zur Analyse, Überwachung und Archivierung Ihrer Amazon DocumentDB-Auditing-Ereignisse.
Amazon DocumentDB berechnet zwar keine zusätzlichen Kosten für die Aktivierung der Prüfung, Ihnen werden jedoch Standardtarife für die Nutzung von berechnet CloudWatch Protokolle. Für Informationen über CloudWatch Preise für Protokolle finden Sie unter Amazon CloudWatch Preisgestaltung
Die Amazon DocumentDB-Auditing-Funktion unterscheidet sich deutlich von der Nutzung der Serviceressourcen, die mit überwacht wird AWS CloudTrail. CloudTrail zeichnet Operationen auf, die mit dem ausgeführt werden AWS Command Line Interface (AWS CLI) oder AWS-Managementkonsole auf Ressourcen wie Clustern, Instanzen, Parametergruppen und Snapshots. Prüfung von Ressourcen mit CloudTrail ist standardmäßig aktiviert und kann nicht deaktiviert werden. Die Amazon DocumentDB-Auditing-Funktion ist eine Opt-in-Funktion. Sie zeichnet Operationen auf, die innerhalb Ihres Clusters für Objekte, wie z. B. Datenbanken, Sammlungen, Indizes und Benutzer ausgeführt werden.
Themen
Unterstützte Ereignisse
Amazon DocumentDB Auditing unterstützt die folgenden Ereigniskategorien:
-
Datendefinitionssprache (DDL) - umfasst Datenbankverwaltungsvorgänge, Verbindungen, Benutzerverwaltung und Autorisierung.
-
Leseereignisse der Data Manipulation Language (DML-Lesevorgänge) - beinhaltet
find()und die verschiedenen Aggregationsoperatoren, arithmetischen Operatoren, booleschen Operatoren und andere Operatoren für Leseabfragen. -
Schreibereignisse der Data Manipulation Language (DML-Schreibvorgänge) - beinhaltet
insert(), update(), delete(),undbulkWrite()Betreiber
Folgende Ereignistypen werden unterstützt:
| Ereignistyp | Kategorie | Description |
|---|---|---|
authCheck |
Autorisierung | Ergebniscode 0: Erfolg |
| Ergebniscode 13: Unautorisierte Versuche, einen Vorgang auszuführen. | ||
authenticate |
Connection (Verbindung) | Erfolgreiche oder fehlgeschlagene Authentifizierungsversuche bei einer neuen Verbindung. |
auditConfigure |
DDL | Überprüfen Sie die Filterkonfiguration. |
createDatabase |
DDL | Erstellung einer neuen Datenbank. |
createCollection |
DDL | Erstellung einer neuen Sammlung innerhalb einer Datenbank. |
createIndex |
DDL | Erstellung eines neuen Index innerhalb einer Sammlung. |
dropCollection |
DDL | Löschen einer Sammlung in einer Datenbank. |
dropDatabase |
DDL | Löschen einer Datenbank. |
dropIndex |
DDL | Löschen eines Index innerhalb einer Sammlung. |
modifyChangeStreams |
DDL | Der Change-Stream wurde erstellt. |
renameCollection |
DDL | Umbenennen einer Sammlung innerhalb einer Datenbank. |
createRole |
Rollenverwaltung | Eine Rolle erstellen. |
dropAllRolesFromDatabase |
Rollenmanagement | Löschen aller Rollen in einer Datenbank. |
dropRole |
Rollenverwaltung | Eine Rolle fallen lassen. |
grantPrivilegesToRole |
Rollenmanagement | Einer Rolle Rechte gewähren. |
grantRolesToRole |
Rollenverwaltung | Einer benutzerdefinierten Rolle Rollen zuweisen |
revokePrivilegesFromRole |
Verwaltung der Rollen | Entzug von Rechten für eine Rolle. |
revokeRolesFromRole |
Rollenverwaltung | Widerruf von Rollen aus einer benutzerdefinierten Rolle. |
updateRole |
Verwaltung von Rollen | Eine Rolle aktualisieren. |
createUser |
Benutzerverwaltung | Anlegen eines neuen Benutzers. |
dropAllUsersFromDatabase |
Benutzerverwaltung | Löschen aller Benutzer innerhalb einer Datenbank. |
dropUser |
Benutzerverwaltung | Löschen eines bestehenden Benutzers. |
grantRolesToUser |
Benutzerverwaltung | Einem Benutzer Rollen zuweisen. |
revokeRolesFromUser |
Benutzerverwaltung | Einem Benutzer Rollen entziehen. |
updateUser |
UserManagement | Aktualisierung eines bestehenden Benutzers. |
insert |
DML schreiben | Fügt ein Dokument oder mehrere Dokumente in eine Sammlung ein. |
delete |
DML schreiben | Löscht ein Dokument oder mehrere Dokumente aus einer Sammlung. |
update |
DML schreiben | Ändert ein vorhandenes Dokument oder Dokumente in einer Sammlung. |
bulkWrite |
DML schreiben | Führt mehrere Schreibvorgänge mit Steuerelementen für die Ausführungsreihenfolge aus. |
setAuditConfig |
DML schreiben | Richten Sie einen neuen Filter für die DML-Überwachung ein. |
count |
DML gelesen | Gibt die Anzahl der Dokumente zurück, die einer find () -Abfrage für die Sammlung oder Ansicht entsprechen würden. |
countDocuments |
DML gelesen | Gibt die Anzahl der Dokumente zurück, die der Abfrage für eine Sammlung oder Ansicht entsprechen. |
find |
DML gelesen | Wählt Dokumente in einer Sammlung oder Ansicht aus und führt einen Cursor zu den ausgewählten Dokumenten zurück. |
getAuditConfig |
DML gelesen | Ruft den aktuellen Filter für die DML-Überwachung ab. |
findAndModify |
DML lesen und DML schreiben | Ändert ein einzelnes Dokument und gibt es zurück. |
findOneAndDelete |
DML lesen und DML schreiben | Löscht ein einzelnes Dokument auf der Grundlage der Filter- und Sortierkriterien und gibt das gelöschte Dokument zurück. |
findOneAndReplace |
DML lesen und DML schreiben | Ersetzt ein einzelnes Dokument auf der Grundlage des angegebenen Filters. |
findOneAndUpdate |
DML lesen und DML schreiben | Aktualisiert ein einzelnes Dokument auf der Grundlage der Filter- und Sortierkriterien. |
aggregate |
DML lesen und DML schreiben | Unterstützt APIs in der Aggregationspipeline. |
distinct |
DML lesen | Findet die unterschiedlichen Werte für ein bestimmtes Feld in einer einzelnen Sammlung oder Ansicht und gibt die Ergebnisse in einem Array zurück. |
Für Werte im Parameterfeld des DML-Ereignisdokuments gilt eine Größenbeschränkung von 1 KB. Amazon DocumentDB kürzt den Wert, wenn er 1 KB überschreitet.
TTL-Löschereignisse werden derzeit nicht überwacht.
Auditing aktivieren
Die Aktivierung des Prüfens für einen Cluster ist ein zweistufiger Prozess. Stellen Sie sicher, dass beide Schritte abgeschlossen sind, da sonst keine Audit-Logs gesendet werden CloudWatch Protokolle.
Schritt 1. Aktivieren Sie den Clusterparameter audit_logs
Um das Auditing zu aktivieren, müssen Sie das ändern audit_logs Parameter in der Parametergruppe. audit_logs ist eine kommagetrennte Liste der zu protokollierenden Ereignisse. Ereignisse müssen in Kleinbuchstaben angegeben werden und zwischen den Listenelementen darf kein Leerzeichen stehen.
Sie können die folgenden Werte für die Parametergruppe festlegen:
| Wert | Description |
|---|---|
ddl |
Wenn Sie dies einstellen, wird die Überwachung von DDL-Ereignissen wie CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, createUser, dropUser, grant aktiviertRolesToUser, widerrufenRolesFromUser, updateUser und dropAllUsersFromDatabase |
dml_read |
Wenn Sie dies einstellen, wird die Überwachung von DML-Leseereignissen wie find, sort count, distinct, group, projecta, unwind, geoNEAR, GeoIntersects, GeoWithin und anderen MongoDB-Operatoren für Lese-Abfragen aktiviert. |
dml_write |
Wenn Sie dies einstellen, wird die Überwachung von DML-Schreibereignissen wie insert (), update (), delete () und bulkWrite () aktiviert |
all |
Wenn Sie dies einstellen, wird die Überwachung Ihrer Datenbankereignisse wie Lese-Abfragen, Schreibabfragen, Datenbankaktionen und Administratoraktionen aktiviert. |
none |
Wenn Sie dies einstellen, wird das Auditing deaktiviert |
enabled (veraltet) |
Dies ist eine ältere Parametereinstellung, die 'ddl' entspricht. Wenn Sie diese Einstellung festlegen, wird die Überwachung von DDL-Ereignissen wie CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, createUser, dropUser, grant aktiviertRolesToUser, widerrufenRolesFromUser, updateUser und dropAllUsersFromDatabase. Wir raten davon ab, diese Einstellung zu verwenden, da es sich um eine ältere Einstellung handelt. |
disabled (Legacy) |
Dies ist eine ältere Parametereinstellung, die „keine“ entspricht. Wir raten davon ab, diese Einstellung zu verwenden, da es sich um eine ältere Einstellung handelt. |
Der Standardwert für den Clusterparameter audit_logs lautet none (Legacy)“disabled„).
Sie können die oben genannten Werte auch in Kombinationen verwenden.
| Wert | Description |
|---|---|
ddl, dml_read |
Wenn Sie dies einstellen, wird die Überwachung von DDL-Ereignissen und DML-Leseereignissen aktiviert. |
ddl, dml_write |
Wenn Sie dies einstellen, wird die Überwachung von DDL-Ereignissen und DML-Schreibvorgängen aktiviert |
dml_read, dml_write |
Wenn Sie dies einstellen, wird die Überwachung aller DML-Ereignisse aktiviert |
Eine Standardparametergruppe kann nicht abgeändert werden.
Weitere Informationen finden Sie hier:
-
Erstellen von Amazon DocumentDB-Cluster-Parametergruppen
Nach dem Erstellen einer Parametergruppe ändern Sie diese, indem Sie den
audit_logs-Parameterwert aufalländern.
Schritt 2. Amazon aktivieren CloudWatch Exportieren von Protokollen
Wenn der Wert von audit_logs Cluster-Parameter ist enabled, ddl, dml_read, oder dml_write, Sie müssen Amazon DocumentDB auch aktivieren, um Protokolle nach Amazon zu exportieren CloudWatch. Wenn Sie einen dieser Schritte auslassen, werden keine Auditprotokolle gesendet an CloudWatch.
Wenn Sie einen Cluster erstellen, eine Point-in-Time-Wiederherstellung durchführen oder einen Snapshot wiederherstellen, können Sie Folgendes aktivieren CloudWatch Protokolliert, indem Sie die folgenden Schritte ausführen.
Auditing deaktivieren
Sie können die Überwachung deaktivieren, indem Sie CloudWatch Export von Protokollen und Deaktivierung der audit_logs Parameter.
Deaktivierung CloudWatch Exportieren von Protokollen
Sie können den Export von Auditprotokollen mit einer der folgenden Optionen deaktivieren AWS-Managementkonsole oder der AWS CLI.
Deaktivierung des Parameters audit_logs
Um den Parameter audit_logs für Ihren Cluster zu deaktivieren, können Sie den Cluster so ändern, dass er eine Parametergruppe mit dem Wert disabled für den Parameter audit_logs verwendet. Sie können auch den Wert des Parameters audit_logs in der Parametergruppe des Clusters in disabled ändern.
Weitere Informationen finden Sie unter den folgenden Themen:
Zugriff auf Ihre Prüfereignisse
Gehen Sie wie folgt vor, um auf Ihre Audit-Ereignisse bei Amazon zuzugreifen CloudWatch.
Öffne das CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Stellen Sie sicher, dass Sie sich in derselben Region wie Ihr Amazon DocumentDB-Cluster befinden.
-
Wählen Sie im Navigationsbereich Protokolle aus.
-
Um die Prüfprotokolle für Ihren Cluster zu finden, suchen Sie in der Liste und wählen Sie
/aws/docdb/aus.yourClusterName/auditDie Prüfereignisse für Ihre Instances sind unter dem jeweiligen Instance-Namen verfügbar.
Filterung von DML-Audit-Ereignissen
Erste Schritte mit der DML-Auditfilterung
DML-Auditereignisse können gefiltert werden, bevor sie an Amazon geschrieben werden CloudWatch. Um diese Funktion nutzen zu können, müssen Audit-Log und DML-Logging aktiviert sein. Amazon DocumentDB unterstützt das Filtern nach atype, command, user, namespace, und auditAuthorizationSuccess.
DDL-Ereignisse werden nicht gefiltert.
Sie können die Überwachungsfilterung jederzeit aktivieren, indem Sie den Überwachungsfilter mithilfe der setAuditConfig, filter, und auditAuthorizationSuccess Parameter in der db.adminCommand( { command } ) Bedienung:
db.admin.runCommand( { setAuditConfig: 1, filter: { //filter conditions }, auditAuthorizationSuccess: true | false } )
Sie können die Überwachungsfiltereinstellungen auch abrufen, indem Sie den folgenden Befehl ausführen:
db.admin.runCommand( { getAuditConfig: 1})
Sicherheitsanforderungen
Nur Datenbank users/roles mit privilegierter Aktion auditConfigure kann die obigen Befehle ausführen gegen admindb beim Setzen oder Auflisten von DML-Auditfiltern. Sie können entweder eine der integrierten Rollen von [verwendenclusterAdmin, hostManager, root] oder erstellen Sie benutzerdefinierte Rollen, die auditConfigure Privilegien. Das Folgende ist ein Beispiel für die Verwendung vorhandener Rollen mit auditConfigure Privileg und ein Beispiel mit benutzerdefinierten Rollen.
Benutzer mit integrierter Rolle:
use admin db.createUser( { user: "myClusterAdmin", pwd: "password123", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
Benutzer mit benutzerdefinierten Rollen:
use admin db.createRole( { role: "myRole", privileges: [ { resource: { cluster: true }, actions: [ "auditConfigure" ] } ], roles: [] } ) db.createUser( { user: "myUser", pwd: "myPassword", roles: [ { role: "myRole", db: "admin" } ] } )
Anwendungsfälle filtern
Beispiel: Ereignisse anhand von Befehlen filtern
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ] }, auditAuthorizationSuccess: true } )
Beispiel: Ereignisse nach Benutzernamen filtern
In diesem Beispiel wird nur der Benutzer „myUser“ protokolliert:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.user": { $in: [ "myUser" ] } } ]}, auditAuthorizationSuccess: true})
Beispiel: Filtern nach atype
db.admin.runCommand( { setAuditConfig: 1, filter: {atype: "authCheck"}, auditAuthorizationSuccess: true })
Alle DML-Protokolle haben authCheck als atype. Nur DDL hat eine andere atype. Wenn Sie einen anderen Wert angeben als authCheck in der filter, es wird kein DML-Login erzeugt CloudWatch.
Beispiel: Filtern mithilfe mehrerer Filter, die durch Operatoren verbunden sind
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ], "$nor": [ { "param.command": { $in: ["count", "insert", "delete", "update", "findandmodify" ] } }] }, auditAuthorizationSuccess: true})
Nur auf der obersten Ebene $and, $or, und $nor werden unterstützt. Alle anderen Operatoren werden nicht unterstützt und verursachen einen Fehler.
Beispiel: Filtern nach Ereignissen nach auditAuthorizationSuccess
In diesem Filter werden alle Befehle, die die Autorisierung erfolgreich bestanden haben, nicht protokolliert:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: false } )
Beispiel: Filtern mit $in und $nin Bedingungen
Bei Verwendung von beidem in $in und $nin, der Befehl wird nicht protokolliert, da zwischen den Bedingungen ein implizites „und“ steht. In diesem Beispiel blockiert Regex find Befehl, damit nichts protokolliert wird:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { atype: "authCheck", "param.command": { $in: [ "find", "insert", "delete", "update", "findandmodify" ], $nin: ["count", "insert", "delete", "update", "findandmodify" ], $not: /^^find.*/ } }, ], "$or": [ { "param.command": { $nin: ["count", "insert", "delete", "update", "findandmodify" ] } }] }, auditAuthorizationSuccess: true})
Beispiel: Filtern nach namespace
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.ns": { $in: [ "test.foo" ] } } ]}, auditAuthorizationSuccess: true})
Beispiel: Auf Standardfilter zurücksetzen
Das Zurücksetzen auf den Standardwert bedeutet, dass jedes DML-Audit-Ereignis protokolliert wird. Führen Sie den folgenden Befehl aus, um die Filterung auf den Standardwert zurückzusetzen:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: true } )