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 das 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 in Amazon Logs auf. CloudWatch Wenn das Auditing aktiviert ist, exportiert Amazon DocumentDB die Audit-Aufzeichnungen Ihres Clusters (JSON-Dokumente) in Amazon Logs. CloudWatch Sie können Amazon CloudWatch Logs verwenden, um Ihre Amazon DocumentDB-Prüfungsereignisse zu analysieren, zu überwachen und zu archivieren.
Amazon DocumentDB erhebt zwar keine zusätzlichen Kosten für die Aktivierung der Prüfung, aber für die Nutzung von CloudWatch Logs werden Ihnen Standardtarife berechnet. Informationen zu den Preisen für CloudWatch Logs finden Sie unter CloudWatch Amazon-Preise
Die Amazon DocumentDB-Auditing-Funktion unterscheidet sich deutlich von der Nutzung der Serviceressourcen, mit der überwacht wird. AWS CloudTrail CloudTrail zeichnet Operationen auf, die mit AWS Command Line Interface (AWS CLI) oder AWS-Managementkonsole an Ressourcen wie Clustern, Instances, Parametergruppen und Snapshots ausgeführt werden. Die Überwachung 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:
-
Data Definition Language (DDL) — umfasst Datenbankverwaltungsvorgänge, Verbindungen, Benutzerverwaltung und Autorisierung.
-
Leseereignisse der Data Manipulation Language (DML-Lesevorgänge) — umfasst
find()und die verschiedenen Aggregationsoperatoren, arithmetischen Operatoren, boolesche Operatoren und andere Operatoren für Leseabfragen. -
Schreibereignisse der Data Manipulation Language (DML-Schreibvorgänge) — schließt ein und Operatoren ein
insert(), update(), delete(),bulkWrite()
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 Privilegien 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. |
Anmerkung
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.
Anmerkung
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 an CloudWatch Logs gesendet werden.
Schritt 1. Aktivieren Sie den Clusterparameter audit_logs
Um die Überwachung zu aktivieren, müssen Sie den audit_logs Parameter in der Parametergruppe ändern. audit_logsist 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, revoke, updateUser und drop aktiviert RolesToUser RolesFromUser AllUsersFromDatabase |
dml_read |
Wenn Sie dies einstellen, wird die Prüfung von DML-Leseereignissen wie find, sort count, distinct, group, projecta, unwind, geoNear, GeoIntersects, GeoWithin und anderen MongoDB-Leseabfrageoperatoren ermöglicht. |
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 die Überwachung deaktiviert |
enabled (veraltet) |
Dies ist eine ältere Parametereinstellung, die 'ddl' entspricht. Wenn Sie dies einstellen, wird die Überwachung von DDL-Ereignissen wie CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, createUser, dropUser, grant, revoke, updateUser und drop aktiviert. RolesToUser RolesFromUser AllUsersFromDatabase 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. |
Anmerkung
Der Standardwert für den Clusterparameter audit_logs ist 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 |
Anmerkung
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. Aktivieren Sie den Export von Amazon CloudWatch Logs
Wenn der Wert des audit_logs Cluster-Parametersenabled,,ddl, oder istdml_read, müssen Sie Amazon DocumentDB auch aktivierendml_write, um Protokolle nach Amazon CloudWatch zu exportieren. Wenn Sie einen dieser Schritte auslassen, werden keine Auditprotokolle an gesendet. CloudWatch
Wenn Sie einen Cluster erstellen, eine Point-in-Time-Wiederherstellung durchführen oder einen Snapshot wiederherstellen, können Sie CloudWatch Protokolle aktivieren, indem Sie die folgenden Schritte ausführen.
Auditing deaktivieren
Sie können die Überwachung deaktivieren, indem Sie den CloudWatch Protokollexport und den audit_logs Parameter deaktivieren.
Den Export von Protokollen deaktivieren CloudWatch
Sie können den Export von Auditprotokollen deaktivieren, indem Sie entweder den AWS-Managementkonsole oder den AWS CLI verwenden.
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.
Öffnen Sie die 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.
Filtern 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 atypecommand, usernamespace, und. auditAuthorizationSuccess
Anmerkung
DDL-Ereignisse werden nicht gefiltert.
Sie können die Überwachungsfilterung jederzeit aktivieren, indem Sie den Überwachungsfilter mithilfe der auditAuthorizationSuccess Parameter setAuditConfigfilter, und in der db.adminCommand( { command } ) Operation angeben:
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 Datenbanken users/roles mit berechtigter Aktion auditConfigure können die oben genannten Befehle ausführen, admindb wenn DML-Auditfilter gesetzt oder aufgelistet werden. Sie können entweder eine der integrierten Rollen von [clusterAdmin,hostManager,root] verwenden oder benutzerdefinierte Rollen mit auditConfigure Rechten erstellen. Im Folgenden finden Sie ein Beispiel für die Verwendung vorhandener Rollen mit dieser auditConfigure Berechtigung und ein Beispiel für benutzerdefinierte 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 })
Anmerkung
Alle DML-Protokolle haben authCheck alsatype. Nur DDL hat eine andere. atype Wenn Sie einen anderen Wert als authCheck in eingebenfilter, wird keine DML-Anmeldung generiert. 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})
Anmerkung
Auf der obersten Ebene $nor werden nur $and$or, und unterstützt. Alle anderen Operatoren werden nicht unterstützt und führen zu einem 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
Wenn Sie $in sowohl in als auch verwenden$nin, wird der Befehl nicht protokolliert, da zwischen den Bedingungen ein implizites „und“ steht. In diesem Beispiel blockiert Regex den find Befehl, sodass 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 } )