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.
Überwachung von Auditprotokollen in Amazon OpenSearch Service
Wenn Ihre Amazon OpenSearch Service-Domain eine differenzierte Zugriffskontrolle verwendet, können Sie Audit-Logs für Ihre Daten aktivieren. Audit-Logs sind hochgradig anpassbar und ermöglichen es Ihnen, Benutzeraktivitäten in Ihren OpenSearch Clustern nachzuverfolgen, einschließlich erfolgreicher und fehlgeschlagener Authentifizierungen OpenSearch, Anfragen an, Indexänderungen und eingehende Suchanfragen. Die Standardkonfiguration verfolgt einen beliebten Satz von Benutzeraktionen. Wir empfehlen jedoch, die Einstellungen genau an Ihre Bedürfnisse anzupassen.
Genau wie OpenSearch Anwendungsprotokolle und langsame Protokolle veröffentlicht OpenSearch Service CloudWatch Auditprotokolle in Logs. Wenn diese Option aktiviert ist, gelten die CloudWatch Standardpreise
Anmerkung
Um Audit-Logs zu aktivieren, muss Ihre Benutzerrolle der security_manager
Rolle zugeordnet sein, die Ihnen Zugriff auf die OpenSearch plugins/_security
REST-API gewährt. Weitere Informationen hierzu finden Sie unter Hauptbenutzer ändern.
Themen
- Einschränkungen
- Aktivieren von Prüfprotokollen
- Aktivieren Sie die Audit-Protokollierung mithilfe der AWS CLI
- Aktivieren der Prüfungsprotokollierung über die Konfigurations-API
- Protokollebenen und -Kategorien prüfen
- Prüfprotokolleinstellungen
- Prüfungsprotokollbeispiel
- Konfigurieren von Prüfungsprotokollen mit der REST-API
Einschränkungen
Prüfungsprotokolle haben folgende Einschränkungen:
-
Prüfungsprotokolle enthalten keine clusterübergreifenden Suchanforderungen, die von der Domain-Zugriffsrichtlinie des Ziels abgelehnt wurden.
-
Die Maximalgröße jeder Prüfungsprotokollmeldung beträgt 10 000 Zeichen. Die Prüfungsprotokollmeldung wird abgeschnitten, wenn sie diesen Grenzwert überschreitet.
Aktivieren von Prüfprotokollen
Die Aktivierung des Prüfungsprotokolls für einen Cluster ist ein zweistufiger Prozess. Zunächst konfigurieren Sie Ihre Domain so, dass Audit-Logs in Logs veröffentlicht werden CloudWatch . Anschließend aktivieren Sie Audit-Logs in OpenSearch Dashboards und konfigurieren sie so, dass sie Ihren Anforderungen entsprechen.
Wichtig
Wenn beim Ausführen dieser Schritte ein Fehler auftritt, finden Sie unter Prüfungsprotokolle können nicht aktiviert werden Informationen zur Fehlerbehebung.
Schritt 1: Aktivieren von Überwachungsprotokolle und Konfigurieren einer Zugriffsrichtlinie
In diesen Schritten wird beschrieben, wie Sie mithilfe der Konsole Prüfungsprotokolle aktivieren. Sie können sie auch mithilfe der oder der AWS CLIOpenSearch Service-API aktivieren.
Um Audit-Logs für eine OpenSearch Service-Domain (Konsole) zu aktivieren
-
Wählen Sie die Domain aus, um ihre Konfiguration zu öffnen, und wechseln Sie dann zur Registerkarte Protokolle.
-
Wählen Sie Prüfungsprotokolle und dann Aktivieren aus.
-
Erstellen Sie eine CloudWatch Protokollgruppe oder wählen Sie eine bestehende aus.
-
Wählen Sie eine Zugriffsrichtlinie mit den entsprechenden Berechtigungen aus, oder erstellen Sie eine Richtlinie mit dem in der Konsole verfügbaren JSON:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
" } ] }Wir empfehlen Ihnen, die
aws:SourceAccount
- undaws:SourceArn
-Bedingungsschlüssel zur Richtlinie hinzuzufügen, um sich vor dem Problem des verwirrten Stellvertreters zu schützen. Das Quellkonto ist der Eigentümer der Domain und der Quell-ARN ist der ARN der Domain. Ihre Domain muss zum Hinzufügen dieser Bedingungsschlüssel über Service-Software R20211203 oder höher verfügen.Beispielsweise können Sie der Richtlinie den folgenden Bedingungsblock hinzufügen:
"Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region
:account-id
:domain/domain-name
" } } -
Wählen Sie Aktivieren aus.
Schritt 2: Aktivieren Sie die Audit-Logs in den OpenSearch Dashboards
Nachdem Sie die Auditprotokolle in der OpenSearch Servicekonsole aktiviert haben, müssen Sie sie auch in den OpenSearch Dashboards aktivieren und entsprechend Ihren Anforderungen konfigurieren.
-
Öffnen Sie OpenSearch Dashboards und wählen Sie im Menü auf der linken Seite Sicherheit aus.
-
Wählen Sie Prüfungsprotokolle aus.
-
Wählen Sie Überwachungsprotokollierung aktivieren aus.
Die Dashboards-Benutzeroberfläche bietet vollständige Kontrolle über die Prüfungsprotokolleinstellungen unter Allgemeine Einstellungen und Compliance-Einstellungen. Eine Beschreibung aller Konfigurationsoptionen finden Sie unter Prüfungsprotokolleinstellungen.
Aktivieren Sie die Audit-Protokollierung mithilfe der AWS CLI
Der folgende AWS CLI Befehl aktiviert Audit-Logs für eine bestehende Domain:
aws opensearch update-domain-config --domain-name
my-domain
--log-publishing-options "AUDIT_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group
,Enabled=true}"
Sie können Prüfungsprotokolle auch aktivieren, wenn Sie eine Domain erstellen. Weitere Informationen finden Sie in der AWS CLI -Befehlsreferenz.
Aktivieren der Prüfungsprotokollierung über die Konfigurations-API
Die folgende Anfrage an die Konfigurations-API aktiviert Prüfungsprotokolle für eine vorhandene Domain:
POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/
my-domain
/config { "LogPublishingOptions": { "AUDIT_LOGS": { "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1
:123456789012
:log-group1:sample-domain", "Enabled":true } } }
Weitere Informationen finden Sie in der Amazon OpenSearch Service API-Referenz.
Protokollebenen und -Kategorien prüfen
Cluster-Kommunikation erfolgt über zwei separate Ebenen: die REST- und die Transportebene.
-
Die REST-Schicht deckt die Kommunikation mit HTTP-Clients wie curl, Logstash, OpenSearch Dashboards, dem Java-High-Level-REST-Client und der Python-Anforderungsbibliothek ab — alle HTTP-Anfragen
, die im Cluster ankommen. -
Die Transportebene deckt die Kommunikation zwischen Knoten ab. Nachdem beispielsweise eine Suchanfrage im Cluster (über die REST-Ebene) eintrifft, sendet der koordinierende Knoten, der die Anfrage bedient, die Anfrage an andere Knoten, empfängt deren Antworten, sammelt die erforderlichen Dokumente und fasst sie in der endgültigen Antwort zusammen. Operationen wie Shard-Zuweisung und Neuverteilung erfolgen ebenfalls über die Transportebene.
Sie können Prüfungsprotokolle für ganze Ebenen sowie einzelne Prüfungskategorien für eine Ebene aktivieren oder deaktivieren. Die folgende Tabelle enthält eine Zusammenfassung der Überwachungskategorien und die Ebene, für die sie verfügbar sind.
Kategorie | Beschreibung | Für REST verfügbar | Transportfähig |
---|---|---|---|
FAILED_LOGIN |
Eine Anforderung enthielt ungültige Anmeldeinformationen und die Authentifizierung ist fehlgeschlagen. | Ja | Ja |
MISSING_PRIVILEGES |
Ein Benutzer hatte nicht die Berechtigung, die Anforderung zu stellen. | Ja | Ja |
GRANTED_PRIVILEGES |
Ein Benutzer hatte die Berechtigung, die Anforderung zu stellen. | Ja | Ja |
OPENSEARCH_SECURITY_INDEX_ATTEMPT |
Eine Anforderung hat versucht, den .opendistro_security -Index zu ändern. |
Nein | Ja |
AUTHENTICATED |
Eine Anforderung enthielt gültige Anmeldeinformationen und die Authentifizierung ist erfolgreich. | Ja | Ja |
INDEX_EVENT |
Eine Anforderung führte einen administrativen Vorgang für einen Index aus, z. B. das Erstellen eines Indexes, das Festlegen eines Alias oder das Ausführen einer erzwungenen Zusammenführung. Die vollständige Liste der indices:admin/ Aktionen, die diese Kategorie umfasst, ist in der Dokumentation verfügbar. OpenSearch |
Nein | Ja |
Zusätzlich zu diesen Standardkategorien bietet die fein abgestufte Zugriffskontrolle mehrere zusätzliche Kategorien, die darauf ausgelegt sind, die Anforderungen an die Daten-Compliance zu erfüllen.
Kategorie | Beschreibung |
---|---|
COMPLIANCE_DOC_READ |
Eine Anforderung führte ein Leseereignis für ein Dokument in einem Index aus. |
COMPLIANCE_DOC_WRITE |
Eine Anforderung führte ein Schreibereignis für ein Dokument in einem Index aus. |
COMPLIANCE_INTERNAL_CONFIG_READ |
Eine Anforderung führte ein Leseereignis auf dem |
COMPLIANCE_INTERNAL_CONFIG_WRITE |
Eine Anforderung führte ein Schreibereignis auf dem |
Es kann eine beliebige Kombination von Kategorien und Nachrichtenattributen vorliegen. Wenn Sie beispielsweise eine REST-Anforderung senden, um ein Dokument zu indizieren, werden möglicherweise die folgenden Zeilen in den Prüfungsprotokollen angezeigt:
-
Authentifiziert auf REST-Ebene (Authentifizierung)
-
GRANTED_PRIVILEGE auf Transportebene (Autorisierung)
-
COMPLIANCE_DOC_WRITE (Dokument in einen Index geschrieben)
Prüfprotokolleinstellungen
Prüfungsprotokolle verfügen über zahlreiche Konfigurationsoptionen.
Allgemeine Einstellungen
Mit den allgemeinen Einstellungen können Sie einzelne Kategorien oder ganze Ebenen aktivieren oder deaktivieren. Wir empfehlen, GRANTED_PRIVILEGES und AUTHENTICATED als ausgeschlossene Kategorien. Andernfalls werden diese Kategorien für jede gültige Anforderung an den Cluster protokolliert.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
REST-Ebene |
enable_rest |
Aktivieren oder Deaktivieren von Ereignissen, die auf der REST-Ebene auftreten. |
REST-Kategorien |
disabled_rest_categories |
Geben Sie Prüfungskategorien an, die auf der REST-Ebene ignoriert werden sollen. Durch Ändern dieser Kategorien kann die Größe der Prüfungsprotokolle erheblich erhöht werden. |
Transportebene |
enable_transport |
Aktivieren oder deaktivieren Sie Ereignisse, die auf der Transportebene auftreten. |
Transportkategorien |
disabled_transport_categories |
Geben Sie Prüfungskategorien an, die auf der Transportebene ignoriert werden müssen. Durch Ändern dieser Kategorien kann die Größe der Prüfungsprotokolle erheblich erhöht werden. |
Mit Attributeinstellungen können Sie die Detailmenge in jeder Protokollzeile anpassen.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Massenanfragen |
resolve_bulk_requests |
Wenn Sie diese Einstellung aktivieren, wird für jedes Dokument in einer Massenanforderung ein Protokoll generiert, das die Größe der Prüfungsprotokolle erheblich erhöhen kann. |
Anforderungstext |
log_request_body |
Fügen Sie den Anforderungstext der Anforderungen ein. |
Lösen von Indizes |
resolve_indices |
Alias in Indizes auflösen. |
Verwenden Sie Ignorier-Einstellungen, um eine Gruppe von Benutzern oder API-Pfaden auszuschließen:
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Ignorierte Benutzer |
ignore_users |
Geben Sie die Benutzer an, die Sie ausschließen möchten. |
Ignorierte Anforderungen |
ignore_requests |
Geben Sie Anforderungsmuster an, die Sie ausschließen möchten. |
Compliance-Einstellungen
Mit den Compliance-Einstellungen können Sie den Zugriff auf Index-, Dokument- oder Feldebene optimieren.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Compliance-Protokollierung |
enable_compliance |
Aktivieren oder deaktivieren Sie die Compliance-Protokollierung. |
Sie können die folgenden Einstellungen für die Lese- und Schreibereignisprotokollierung festlegen.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Interne Konfigurationsprotokollierung |
internal_config |
Aktivieren oder deaktivieren Sie die Protokollierung von Ereignissen im |
Sie können die folgenden Einstellungen für Lese-Ereignisse festlegen.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Lesen von Metadaten |
read_metadata_only |
Nur Metadaten für Leseereignisse einschließen. Fügen Sie keine Dokumentfelder ein. |
Ignorierte Benutzer |
read_ignore_users |
Schließen Sie bestimmte Benutzer nicht für Leseereignisse ein. |
Beobachtete Felder |
read_watched_fields |
Geben Sie die Indizes und Felder an, die auf Leseereignisse überwacht werden sollen. Durch das Hinzufügen überwachter Felder wird ein Protokoll pro Dokumentzugriff generiert, wodurch die Größe der Prüfungsprotokolle erheblich vergrößert wird. Beobachtete Felder unterstützen Indexmuster und Feldmuster:
|
Sie können die folgenden Einstellungen für Schreibereignisse festlegen.
Name | Backend-Einstellung | Beschreibung |
---|---|---|
Schreiben von Metadaten |
write_metadata_only |
Nur Metadaten für Schreibereignisse einschließen. Fügen Sie keine Dokumentfelder ein. |
Protokoll-Differenzen |
write_log_diffs |
Wenn write_metadata_only false ist, schließen Sie nur die Unterschiede zwischen Schreibereignissen ein. |
Ignorierte Benutzer |
write_ignore_users |
Geben Sie bestimmte Benutzer für Schreibereignisse nicht ein. |
Angesehene Indizes |
write_watched_indices |
Geben Sie die Indizes oder Indexmuster an, die auf Schreibereignisse überwacht werden sollen. Durch das Hinzufügen überwachter Felder wird ein Protokoll pro Dokumentzugriff generiert, wodurch die Größe der Prüfungsprotokolle erheblich vergrößert wird. |
Prüfungsprotokollbeispiel
Dieser Abschnitt enthält eine Beispielkonfiguration, eine Suchanforderung und das resultierende Prüfungsprotokoll für alle Lese- und Schreibereignisse eines Indexes.
Schritt 1: Konfigurieren von Prüfungsprotokollen
Nachdem Sie die Veröffentlichung von Audit-Logs in einer CloudWatch Logs-Gruppe aktiviert haben, navigieren Sie zur Seite „Audit-Protokollierung“ der OpenSearch Dashboards und wählen Sie Audit-Protokollierung aktivieren aus.
-
Wählen Sie unter Allgemeine Einstellungen Konfigurieren und stellen Sie sicher, dass die REST-Ebene aktiviert ist.
-
Wählen Sie in den Compliance-Einstellungen die Option Konfigurieren aus.
-
Fügen Sie unter Schreiben in Beobachtete Felder
accounts
für alle Schreibereignisse zu diesem Index hinzu. -
Fügen Sie unter Lesen in Beobachtete Felder
ssn
- undid-
-Felder desaccounts
-Index hinzu:{ "accounts-": [ "ssn", "id-" ] }
Schritt 2: Ausführen von Lese- und Schreibereignissen
-
Navigieren Sie zu OpenSearch Dashboards, wählen Sie Dev Tools und indexieren Sie ein Beispieldokument:
PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
-
Um ein Leseereignis zu testen, senden Sie die folgende Anforderung:
GET accounts/_search { "query": { "match_all": {} } }
Schritt 3: Beobachten der Protokolle
-
Öffnen Sie die CloudWatch Konsole unter https://console.aws.amazon.com/cloudwatch/
. -
Wählen Sie im Navigationsbereich Protokollgruppen aus.
-
Wählen Sie die Protokollgruppe aus, die Sie beim Aktivieren von Prüfungsprotokollen festgelegt haben. Innerhalb der Protokollgruppe erstellt OpenSearch Service einen Protokollstream für jeden Knoten in Ihrer Domain.
-
Wählen Sie unter Protokollströme die Option Alle durchsuchen aus.
-
Die Lese- und Schreibereignisse finden Sie in den entsprechenden Protokollen. Sie können eine Verzögerung von 5 Sekunden erwarten, bevor das Protokoll angezeigt wird.
Beispiel für Schreibprüfungsprotokoll
{ "audit_compliance_operation": "CREATE", "audit_cluster_name": "824471164578:audit-test", "audit_node_name": "be217225a0b77c2bd76147d3ed3ff83c", "audit_category": "COMPLIANCE_DOC_WRITE", "audit_request_origin": "REST", "audit_compliance_doc_version": 1, "audit_node_id": "3xNJhm4XS_yTzEgDWcGRjA", "@timestamp": "2020-08-23T05:28:02.285+00:00", "audit_format_version": 4, "audit_request_remote_address": "3.236.145.227", "audit_trace_doc_id": "lxnJGXQBqZSlDB91r_uZ", "audit_request_effective_user": "admin", "audit_trace_shard_id": 8, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Beispiel für Leseprüfungsprotokoll
{ "audit_cluster_name": "824471164578:audit-docs", "audit_node_name": "806f6050cb45437e2401b07534a1452f", "audit_category": "COMPLIANCE_DOC_READ", "audit_request_origin": "REST", "audit_node_id": "saSevm9ASte0-pjAtYi2UA", "@timestamp": "2020-08-31T17:57:05.015+00:00", "audit_format_version": 4, "audit_request_remote_address": "54.240.197.228", "audit_trace_doc_id": "config:7.7.0", "audit_request_effective_user": "admin", "audit_trace_shard_id": 0, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Um den Text der Anfrage einzubeziehen, kehren Sie zu den Compliance-Einstellungen in den OpenSearch Dashboards zurück und deaktivieren Sie die Option Metadaten schreiben. Um Ereignisse eines bestimmten Benutzers auszuschließen, fügen Sie den Benutzer zu Ignorierte Benutzer hinzu.
Eine Beschreibung der einzelnen Prüfungsprotokoll-Felder finden Sie unter Referenz des Prüfungsprotokolls
Konfigurieren von Prüfungsprotokollen mit der REST-API
Wir empfehlen die Verwendung von OpenSearch Dashboards zur Konfiguration von Audit-Logs, Sie können aber auch die detaillierte REST-API für die Zugriffskontrolle verwenden. Dieser Abschnitt enthält eine Beispielanforderung. Die vollständige Dokumentation zur REST-API ist in der Dokumentation verfügbar. OpenSearch
PUT _opendistro/_security/api/audit/config { "enabled": true, "audit": { "enable_rest": true, "disabled_rest_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "enable_transport": true, "disabled_transport_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "resolve_bulk_requests": true, "log_request_body": true, "resolve_indices": true, "exclude_sensitive_headers": true, "ignore_users": [ "kibanaserver" ], "ignore_requests": [ "SearchRequest", "indices:data/read/*", "/_cluster/health" ] }, "compliance": { "enabled": true, "internal_config": true, "external_config": false, "read_metadata_only": true, "read_watched_fields": { "read-index-1": [ "field-1", "field-2" ], "read-index-2": [ "field-3" ] }, "read_ignore_users": [ "read-ignore-1" ], "write_metadata_only": true, "write_log_diffs": false, "write_watched_indices": [ "write-index-1", "write-index-2", "log-*", "*" ], "write_ignore_users": [ "write-ignore-1" ] } }