Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitoraggio dei log di controllo in Amazon Service OpenSearch
Se il tuo dominio Amazon OpenSearch Service utilizza un controllo granulare degli accessi, puoi abilitare i log di controllo per i tuoi dati. I log di controllo sono altamente personalizzabili e ti consentono di tenere traccia delle attività degli utenti sui tuoi OpenSearch cluster, compresi i successi e gli errori di autenticazione, le richieste, le modifiche all'indice e le query di ricerca in OpenSearch arrivo. La configurazione predefinita tiene traccia di una serie comune di azioni utente, ma si consiglia di personalizzare le impostazioni in base alle proprie esigenze.
Proprio come i log OpenSearch delle applicazioni e gli slow log, Service pubblica i log di controllo su Logs. OpenSearch CloudWatch Se abilitato, si applica il prezzo standard. CloudWatch
Nota
Per abilitare i log di controllo, il ruolo utente deve essere mappato al security_manager
ruolo, che consente di accedere all'API OpenSearch plugins/_security
REST. Per ulteriori informazioni, consulta Modifica dell'utente principale.
Argomenti
- Limitazioni
- Abilitazione dei log di verifica
- Abilita la registrazione di controllo utilizzando il AWS CLI
- Abilitare la registrazione di controllo tramite l'API di configurazione
- Livelli e categorie dei log di verifica
- Impostazioni dei log di verifica
- Esempi di log di verifica
- Configurazione dei log di verifica tramite la REST API
Limitazioni
I log di verifica hanno le seguenti limitazioni:
-
I log di verifica non includono le richieste della ricerca tra cluster rifiutate dalla policy di accesso al dominio della destinazione.
-
La dimensione massima di ogni messaggio del log di verifica è 10.000 caratteri. Il messaggio del log di verifica viene troncato se supera questo limite.
Abilitazione dei log di verifica
La procedura per abilitare i log di verifica prevede due fasi: Innanzitutto, configuri il tuo dominio per pubblicare i log di controllo in Logs. CloudWatch Quindi, abiliti i registri di controllo nelle OpenSearch dashboard e li configuri in base alle tue esigenze.
Importante
Se si verifica un errore durante la procedura descritta di seguito, consultare Impossibile abilitare i log di verifica per informazioni sulla risoluzione dei problemi.
Passaggio 1: abilitare i log di verifica e configurare una policy di accesso
In questi passaggi viene descritto come abilitare i log di verifica tramite la console. Puoi anche abilitarli utilizzando o AWS CLI l'API di OpenSearch servizio.
Per abilitare i registri di controllo per un dominio OpenSearch di servizio (console)
-
Scegliere il dominio per aprire la sua configurazione, quindi andare alla scheda Log.
-
Selezionare Audit logs (Log di verifica) e poi Enable (Abilita).
-
Crea un gruppo di CloudWatch log o scegline uno esistente.
-
Scegliere una policy d'accesso che contiene le autorizzazioni appropriate oppure creare una policy utilizzando il formato JSON che la console offre:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
" } ] }Si consiglia di aggiungere le chiavi di condizione
aws:SourceAccount
eaws:SourceArn
alla policy per proteggersi dal problema del "confused deputy". L'account fonte è il proprietario del flusso di log e l'ARN fonte è l'ARN del dominio. Per aggiungere queste chiavi di condizione, il dominio deve trovarsi sul software di servizio R20211203 o versioni successive.Ad esempio, è possibile aggiungere il seguente blocco di condizione alla policy:
"Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region
:account-id
:domain/domain-name
" } } -
Scegli Abilita .
Passaggio 2: attiva i registri di controllo nelle dashboard OpenSearch
Dopo aver abilitato i registri di controllo nella console di OpenSearch servizio, devi abilitarli anche nelle OpenSearch dashboard e configurarli in base alle tue esigenze.
-
Apri OpenSearch Dashboard e scegli Sicurezza dal menu a sinistra.
-
Scegliere Log di verifica.
-
Scegliere Abilita registrazione di verifica.
L'interfaccia utente di Dashboards offre il controllo completo delle impostazioni del log di verifica in Impostazioni generali e Impostazioni di conformità. Per una descrizione di tutte le opzioni di configurazione, consultare Impostazioni dei log di verifica.
Abilita la registrazione di controllo utilizzando il AWS CLI
Il AWS CLI comando seguente abilita i registri di controllo su un dominio esistente:
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}"
È inoltre possibile abilitare i log di verifica quando si crea un dominio. Per ulteriori informazioni, consultare Riferimento ai comandi AWS CLI.
Abilitare la registrazione di controllo tramite l'API di configurazione
La seguente richiesta all'API di configurazione abilita i log di verifica su un dominio esistente:
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 } } }
Per ulteriori informazioni, consulta il riferimento all'API OpenSearch di Amazon Service.
Livelli e categorie dei log di verifica
La comunicazione del cluster avviene su due livelli separati: il livello REST e il livello di trasporto.
-
Il livello REST copre la comunicazione con i client HTTP come curl, Logstash, OpenSearch Dashboards, il client REST di alto livello Java, la libreria Python Requests, tutte le richieste
HTTP che arrivano al cluster. -
Il livello di trasporto copre la comunicazione tra i nodi. Ad esempio, dopo che una richiesta di ricerca arriva al cluster (sul livello REST), il nodo di coordinamento che serve la richiesta invia la query ad altri nodi, riceve le risposte, raccoglie i documenti necessari e li unisce nella risposta finale. Operazioni come l'allocazione delle partizioni e il ribilanciamento si verificano anche sul livello di trasporto.
È possibile abilitare o disabilitare i log di verifica per interi livelli, nonché per singole categorie di controllo per un livello. La tabella seguente contiene un riepilogo delle categorie di verifica e dei livelli per i quali sono disponibili.
Categoria | Descrizione | Disponibile per REST | Disponibile per il trasporto |
---|---|---|---|
FALLITO_LOGIN |
Una richiesta conteneva credenziali non valide e l'autenticazione non è riuscita. | Sì | Sì |
MISSING_PRIVILEGES |
Un utente non disponeva dei privilegi per effettuare la richiesta. | Sì | Sì |
GRANTED_PRIVILEGES |
Un utente disponeva dei privilegi per effettuare la richiesta. | Sì | Sì |
OPENSEARCH_SECURITY_INDEX_ATTEMPT |
Una richiesta ha provato a modificare l'indice .opendistro_security . |
No | Sì |
AUTHENTICATED |
Una richiesta conteneva credenziali valide e l'autenticazione è riuscita. | Sì | Sì |
INDEX_EVENT |
Una richiesta ha eseguito un'operazione amministrativa su un indice, ad esempio la creazione, l'impostazione di un alias o l'esecuzione di un'unione forzata. L'elenco completo delle indices:admin/ azioni incluse in questa categoria è disponibile nella documentazione. OpenSearch |
No | Sì |
Oltre a queste categorie standard, il controllo granulare degli accessi offre diverse categorie aggiuntive progettate per soddisfare i requisiti di conformità dei dati.
Categoria | Descrizione |
---|---|
COMPLIANCE_DOC_READ |
Una richiesta ha eseguito un evento di lettura su un documento in un indice. |
COMPLIANCE_DOC_WRITE |
Una richiesta ha eseguito un evento di scrittura su un documento in un indice. |
COMPLIANCE_INTERNAL_CONFIG_READ |
Una richiesta ha eseguito un evento di lettura sull'indice |
COMPLIANCE_INTERNAL_CONFIG_WRITE |
Una richiesta ha eseguito un evento di scrittura sull'indice |
È possibile disporre di una combinazione di categorie e attributi di messaggio. Ad esempio, se si invia una richiesta REST per indicizzare un documento, è possibile che vengano visualizzate le seguenti righe nei log di verifica:
-
AUTHENTICATED sul livello REST (autenticazione)
-
GRANTED_PRIVILEGE a livello di trasporto (autorizzazione)
-
COMPLIANCE_DOC_WRITE (documento scritto su un indice)
Impostazioni dei log di verifica
I log di verifica dispongono di numerose opzioni di configurazione.
Impostazioni generali
Le impostazioni generali consentono di abilitare o disabilitare singole categorie o interi livelli. Si consiglia vivamente di lasciare GRANTED_PRIVILES e AUTHENTICATED come categorie escluse. In caso contrario, queste categorie vengono registrate per ogni richiesta valida al cluster.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Livello REST |
enable_rest |
Abilitare o disabilitare gli eventi che si verificano sul livello REST. |
Categorie REST disabilitate |
disabled_rest_categories |
Specificare le categorie di verifica da ignorare sul livello REST. La modifica di queste categorie può aumentare notevolmente le dimensioni dei log di verifica. |
Livello di trasporto |
enable_transport |
Abilitare o disabilitare gli eventi che si verificano sul livello di trasporto. |
Categorie di trasporto disabilitate |
disabled_transport_categories |
Specificare le categorie di verifica che devono essere ignorate sul livello di trasporto. La modifica di queste categorie può aumentare notevolmente le dimensioni dei log di verifica. |
Le impostazioni degli attributi consentono di personalizzare la quantità di dettagli in ogni riga di log.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Richieste in blocco |
resolve_bulk_requests |
L'abilitazione di questa impostazione genera un log per ogni documento in una richiesta in blocco, che può aumentare notevolmente le dimensioni dei log di verifica. |
Corpo della richiesta |
log_request_body |
Includere il corpo della richiesta delle richieste. |
Risoluzione di indici |
resolve_indices |
Risolvere gli alias sugli indici. |
Utilizzare Ignora impostazioni per escludere un set di utenti o percorsi API:
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Utenti ignorati |
ignore_users |
Specificare gli utenti che si desidera escludere. |
Richieste ignorate |
ignore_requests |
Specificare i modelli di richiesta che si desidera escludere. |
Impostazioni di conformità
Le impostazioni di conformità consentono di regolare l'accesso a livello di indice, documento o campo.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Registrazione della conformità |
enable_compliance |
Abilitare o disabilitare la registrazione della conformità. |
È possibile specificare le seguenti impostazioni per la registrazione degli eventi di lettura e scrittura.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Registrazione della configurazione interna |
internal_config |
Abilitare o disabilitare la registrazione degli eventi sull'indice |
È possibile specificare le seguenti impostazioni per gli eventi di lettura.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Lettura di metadati |
read_metadata_only |
Includere solo i metadati per gli eventi di lettura. Non includere campi di documento. |
Utenti ignorati |
read_ignore_users |
Non includere determinati utenti per gli eventi di lettura. |
Campi osservati |
read_watched_fields |
Specificare gli indici e i campi da controllare per gli eventi di lettura. L'aggiunta di campi controllati genera un log per accesso ai documenti, che può aumentare notevolmente le dimensioni dei log di verifica. I campi osservati supportano i modelli di indice e i modelli di campo:
|
È possibile specificare le seguenti impostazioni per gli eventi di scrittura.
Nome | Impostazione del back-end | Descrizione |
---|---|---|
Scrittura di metadati |
write_metadata_only |
Includere solo i metadati per gli eventi di scrittura. Non includere campi di documento. |
Differenze dei log |
write_log_diffs |
Se write_metadata_only è false, includere solo le differenze tra gli eventi di scrittura. |
Utenti ignorati |
write_ignore_users |
Non includere determinati utenti per gli eventi di scrittura. |
Osservazione di indici |
write_watched_indices |
Specificare gli indici o i modelli di indice da controllare per gli eventi di scrittura. L'aggiunta di campi controllati genera un log per accesso ai documenti, che può aumentare notevolmente le dimensioni dei log di verifica. |
Esempi di log di verifica
Questa sezione include una configurazione di esempio, una richiesta di ricerca e il log di verifica risultante per tutti gli eventi di lettura e scrittura di un indice.
Fase 1: Configurazione dei log di verifica
Dopo aver abilitato la pubblicazione dei log di controllo in un gruppo CloudWatch Logs, accedi alla pagina di registrazione di audit di OpenSearch Dashboards e scegli Abilita registrazione di controllo.
-
In Impostazioni generali, scegliere Configura e assicurarsi che il livello REST sia abilitato.
-
In Impostazioni di conformità, scegliere Configura.
-
In Scrittura, in Campi osservati, aggiungere
accounts
per tutti gli eventi di scrittura su questo indice. -
In Lettura, in Campi osservati, aggiungere i campi
ssn
eid-
dell'indiceaccounts
:{ "accounts-": [ "ssn", "id-" ] }
Fase 2: Esecuzione di eventi di lettura e scrittura
-
Passa a OpenSearch Dashboards, scegli Dev Tools e indicizza un documento di esempio:
PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
-
Per verificare un evento di lettura, inviare la seguente richiesta:
GET accounts/_search { "query": { "match_all": {} } }
Fase 3: Osservazione dei log
-
Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/
. -
Nel pannello di navigazione, selezionare Log groups (Gruppi di log).
-
Scegliere il gruppo di log specificato durante l'abilitazione dei log di verifica. All'interno del gruppo di log, OpenSearch Service crea un flusso di log per ogni nodo del dominio.
-
In Flussi di log, scegliere Cerca tutto.
-
Per gli eventi di lettura e scrittura, consultare i log corrispondenti. È possibile prevedere un ritardo di 5 secondi prima che venga visualizzato il log.
Log di verifica della scrittura di esempio
{ "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" ] }
Log di verifica della lettura di esempio
{ "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" ] }
Per includere il corpo della richiesta, torna alle impostazioni di conformità nei OpenSearch dashboard e disabilita Write metadata. Per escludere eventi da un utente specifico, aggiungere l'utente a Utenti ignorati.
Per una descrizione di ogni campo del log di verifica, consultare Riferimento ai campi dei log di verifica
Configurazione dei log di verifica tramite la REST API
Ti consigliamo di utilizzare OpenSearch le dashboard per configurare i log di controllo, ma puoi anche utilizzare l'API REST per il controllo degli accessi a grana fine. In questa sezione è riportata una richiesta di esempio. La documentazione completa sull'API REST è disponibile nella documentazione. 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" ] } }