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à.
Verifica degli eventi di Amazon DocumentDB
Con Amazon DocumentDB (compatibile con MongoDB), puoi controllare gli eventi che sono stati eseguiti nel tuo cluster. Sono esempi di eventi registrati i tentativi di autenticazione riusciti e non riusciti, l'eliminazione di una raccolta in un database o la creazione di un indice. Per impostazione predefinita, il controllo è disabilitato su Amazon DocumentDB e richiede l'attivazione di questa funzionalità.
Quando il controllo è abilitato, Amazon DocumentDB registra gli eventi di Data Definition Language (DDL), Data Manipulation Language (DML), autenticazione, autorizzazione e gestione degli utenti in Amazon Logs. CloudWatch Quando il controllo è abilitato, Amazon DocumentDB esporta i record di controllo del cluster (documenti JSON) in Amazon Logs. CloudWatch Puoi utilizzare Amazon CloudWatch Logs per analizzare, monitorare e archiviare i tuoi eventi di audit di Amazon DocumentDB.
Sebbene Amazon DocumentDB non addebiti costi aggiuntivi per abilitare l'audit, ti vengono addebitate tariffe standard per l'utilizzo dei log. CloudWatch Per informazioni sui prezzi di CloudWatch Logs, consulta i prezzi di Amazon CloudWatch .
La funzionalità di controllo di Amazon DocumentDB è nettamente diversa dall'utilizzo delle risorse di servizio con cui viene monitorato. AWS CloudTrail CloudTrail registra le operazioni eseguite con AWS Command Line Interface (AWS CLI) o Console di gestione AWS su risorse come cluster, istanze, gruppi di parametri e istantanee. Il controllo delle risorse con CloudTrail è attivo per impostazione predefinita e non può essere disabilitato. La funzionalità di controllo di Amazon DocumentDB è una funzionalità opzionale. Registra le operazioni eseguite all'interno del cluster sugli oggetti, ad esempio database, raccolte, indici e utenti.
Argomenti
Eventi supportati
Il controllo di Amazon DocumentDB supporta le seguenti categorie di eventi:
-
Data Definition Language (DDL): include operazioni di gestione del database, connessioni, gestione degli utenti e autorizzazione.
-
Eventi di lettura del linguaggio di manipolazione dei dati (letture DML): include
find()e i vari operatori di aggregazione, operatori aritmetici, operatori booleani e altri operatori di query di lettura. -
Eventi di scrittura in Data Manipulation Language (scritture DML): include operatori
insert(), update(), delete(),bulkWrite()
I tipi di evento sono i seguenti:
| Tipo di evento | Categoria | Description |
|---|---|---|
authCheck |
Autorizzazione | Codice risultato 0: successo |
| Codice risultato 13: tentativi non autorizzati di eseguire un'operazione. | ||
authenticate |
Connessione | Tentativi di autenticazione riusciti o non riusciti in una nuova connessione. |
auditConfigure |
DDL | Configurazione del filtro di controllo. |
createDatabase |
DDL | Creazione di un nuovo database. |
createCollection |
DDL | Creazione di una nuova raccolta all'interno di un database. |
createIndex |
DDL | Creazione di un nuovo indice all'interno di una raccolta. |
dropCollection |
DDL | Eliminazione di una raccolta all'interno di un database. |
dropDatabase |
DDL | Eliminazione di un database. |
dropIndex |
DDL | Eliminazione di un indice all'interno di una raccolta. |
modifyChangeStreams |
DDL | Il flusso di modifiche è stato creato. |
renameCollection |
DDL | Rinominazione di una raccolta all'interno di un database. |
createRole |
Gestione dei ruoli | Creazione di un ruolo. |
dropAllRolesFromDatabase |
Gestione dei ruoli | Eliminazione di tutti i ruoli all'interno di un database. |
dropRole |
Gestione dei ruoli | Abbandono di un ruolo. |
grantPrivilegesToRole |
Gestione dei ruoli | Concessione di privilegi a un ruolo. |
grantRolesToRole |
Gestione dei ruoli | Assegnazione di ruoli a un ruolo definito dall'utente. |
revokePrivilegesFromRole |
Gestione dei ruoli | Revoca dei privilegi da un ruolo. |
revokeRolesFromRole |
Gestione dei ruoli | Revoca di ruoli da un ruolo definito dall'utente. |
updateRole |
Gestione dei ruoli | Aggiornamento di un ruolo. |
createUser |
Gestione degli utenti | Creazione di un nuovo utente. |
dropAllUsersFromDatabase |
Gestione degli utenti | Eliminazione di tutti gli utenti all'interno di un database. |
dropUser |
Gestione degli utenti | Eliminazione di un utente esistente. |
grantRolesToUser |
Gestione degli utenti | Assegnazione di ruoli a un utente. |
revokeRolesFromUser |
Gestione degli utenti | Revoca dei ruoli a un utente. |
updateUser |
UserManagement | Aggiornamento di un utente esistente. |
insert |
Scrittura DML | Inserisce uno o più documenti in una raccolta. |
delete |
Scrittura in formato DML | Elimina uno o più documenti da una raccolta. |
update |
Scrittura in formato DML | Modifica uno o più documenti esistenti in una raccolta. |
bulkWrite |
Scrittura in formato DML | Esegue più operazioni di scrittura con controlli per l'ordine di esecuzione. |
setAuditConfig |
Scrittura DML | Imposta un nuovo filtro per il controllo DML. |
count |
DML letto | Restituisce il numero di documenti che corrisponderebbero a una query find () per la raccolta o la visualizzazione. |
countDocuments |
DML letto | Restituisce il numero di documenti che corrispondono alla query per una raccolta o una visualizzazione. |
find |
DML letto | Seleziona i documenti in una raccolta o visualizzazione e riporta un cursore ai documenti selezionati. |
getAuditConfig |
DML letto | Recupera il filtro corrente per il controllo DML. |
findAndModify |
Lettura DML e scrittura DML | Modifica e restituisce un singolo documento. |
findOneAndDelete |
Lettura DML e scrittura DML | Elimina un singolo documento in base ai criteri di filtro e ordinamento, restituendo il documento eliminato. |
findOneAndReplace |
Lettura DML e scrittura DML | Sostituisce un singolo documento in base al filtro specificato. |
findOneAndUpdate |
Lettura DML e scrittura DML | Aggiorna un singolo documento in base ai criteri di filtro e ordinamento. |
aggregate |
Lettura DML e scrittura DML | Supporta le API nella pipeline di aggregazione. |
distinct |
DML letto | Trova i valori distinti per un campo specificato in una singola raccolta o visualizzazione e restituisce i risultati in un array. |
Nota
I valori nel campo del parametro del documento relativo agli eventi DML hanno un limite di dimensione di 1 KB. Amazon DocumentDB tronca il valore se supera 1 KB.
Nota
Gli eventi di eliminazione TTL non vengono controllati in questo momento.
Abilitazione del controllo
La procedura per abilitare l'audit in un cluster prevede due fasi: Assicurati che entrambi i passaggi siano completati, altrimenti i log di controllo non verranno inviati a CloudWatch Logs.
Passaggio 1. Abilita il parametro del cluster audit_logs
Per abilitare il controllo, è necessario modificare il audit_logs parametro nel gruppo di parametri. audit_logsè un elenco delimitato da virgole di eventi da registrare. Gli eventi devono essere specificati in minuscolo e non devono esserci spazi vuoti tra gli elementi dell'elenco.
È possibile impostare i seguenti valori per il gruppo di parametri:
| Valore | Description |
|---|---|
ddl |
L'impostazione di questa impostazione consentirà il controllo degli eventi DDL come CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, CreateUser, DropUser, grant, revoke, updateUser e drop RolesToUser RolesFromUser AllUsersFromDatabase |
dml_read |
L'impostazione di questa impostazione consentirà il controllo degli eventi di lettura DML come find, sort count, distinct, group, projecta, unwind, GeoNear, GeoIntersects, GeoWithin e altri operatori di query di lettura MongoDB. |
dml_write |
L'impostazione di questa impostazione consentirà il controllo degli eventi di scrittura DML come insert (), update (), delete () e bulkWrite () |
all |
L'impostazione di questa impostazione consentirà il controllo degli eventi del database, come le query di lettura, le query di scrittura, le azioni del database e le azioni dell'amministratore. |
none |
L'impostazione di questa impostazione disabiliterà il controllo |
enabled(versione precedente) |
Questa è un'impostazione dei parametri legacy equivalente a 'ddl'. L'impostazione di questa impostazione consentirà il controllo di eventi DDL come CreateDatabase, DropDatabase, CreateCollection, DropCollection, CreateIndex, DropIndex, AuthCheck, authenticate, CreateUser, DropUser, grant, revoke, updateUser e drop. RolesToUser RolesFromUser AllUsersFromDatabase Non è consigliabile utilizzare questa impostazione perché è un'impostazione precedente. |
disabled (legacy) |
Questa è un'impostazione dei parametri legacy equivalente a 'nessuno'. Non è consigliabile utilizzare questa impostazione perché è un'impostazione precedente. |
Nota
Il valore predefinito per il parametro del cluster audit_logs è none (legacy "disabled«).
È inoltre possibile utilizzare i valori sopra indicati in combinazioni.
| Valore | Description |
|---|---|
ddl, dml_read |
L'impostazione di questa impostazione consentirà il controllo degli eventi DDL e degli eventi di lettura DML. |
ddl, dml_write |
L'impostazione di questa impostazione consentirà il controllo degli eventi DDL e della scrittura DML |
dml_read, dml_write |
L'impostazione di questa impostazione consentirà il controllo di tutti gli eventi DML |
Nota
Non è consentito modificare un gruppo di parametri predefinito.
Per ulteriori informazioni, consulta gli argomenti seguenti:
-
Creazione di gruppi di parametri del cluster Amazon DocumentDB
Dopo la creazione di un gruppo personalizzato di parametri, modificarlo impostando il valore del parametro
audit_logssuall. -
Modifica dei gruppi di parametri del cluster Amazon DocumentDB
Passaggio 2. Abilita l'esportazione di Amazon Logs CloudWatch
Quando il valore del parametro del audit_logs cluster èenabled,, o ddl dml_readdml_write, devi anche abilitare Amazon DocumentDB per esportare i log in Amazon CloudWatch. Se ometti uno di questi passaggi, i log di controllo non verranno inviati a. CloudWatch
Quando si crea un cluster, si esegue un ripristino point-in-time o si ripristina un'istantanea, è possibile abilitare i log seguendo questi passaggi. CloudWatch
Disattivazione del controllo
È possibile disattivare il controllo disattivando l'esportazione dei CloudWatch log e disabilitando il parametro. audit_logs
Disattivazione dell'esportazione dei log CloudWatch
È possibile disattivare l'esportazione dei log di controllo utilizzando il Console di gestione AWS o il. AWS CLI
Disattivazione del parametro audit_logs
Per disabilitare il parametro audit_logs per il cluster, puoi modificarlo in modo che venga utilizzato un gruppo di parametri in cui il parametro audit_logs ha il valore disabled. In alternativa, puoi modificare il valore del parametro audit_logs nel gruppo di parametri del cluster in modo che sia disabled.
Per ulteriori informazioni, consulta i seguenti argomenti:
Accesso ai tuoi eventi di controllo
Utilizza i seguenti passaggi per accedere ai tuoi eventi di audit su Amazon CloudWatch.
Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/
. -
Assicurati di trovarti nella stessa regione del cluster Amazon DocumentDB.
-
Nel riquadro di navigazione scegli Logs (Log).
-
Per trovare i log di audit del cluster, dall'elenco individuare e scegliere
/aws/docdb/.yourClusterName/auditGli eventi di audit per ogni istanza sono disponibili nei rispettivi nomi di istanza.
Filtraggio degli eventi di controllo DML
Guida introduttiva al filtro di controllo DML
Gli eventi di controllo DML possono essere filtrati prima di essere scritti su Amazon. CloudWatch Per utilizzare questa funzionalità, è necessario abilitare il registro di controllo e il registro DML. Amazon DocumentDB supporta il filtraggio suatype,, ecommand. user namespace auditAuthorizationSuccess
Nota
Gli eventi DDL non vengono filtrati.
È possibile abilitare il filtro di controllo in qualsiasi momento specificando il filtro di controllo utilizzando i parametrisetAuditConfig,filter, e auditAuthorizationSuccess nell'operazione: db.adminCommand( { command } )
db.admin.runCommand( { setAuditConfig: 1, filter: { //filter conditions }, auditAuthorizationSuccess: true | false } )
È inoltre possibile recuperare le impostazioni del filtro di controllo eseguendo il comando seguente:
db.admin.runCommand( { getAuditConfig: 1})
Requisiti di sicurezza
Solo il database users/roles con un'azione privilegiata auditConfigure può eseguire i comandi precedenti admindb quando si impostano o si elencano i filtri di controllo DML. È possibile utilizzare uno dei ruoli predefiniti di [clusterAdmin,hostManager,root] o creare ruoli personalizzati con auditConfigure privilegi. Di seguito è riportato un esempio di utilizzo di ruoli esistenti con il auditConfigure privilegio e un esempio con ruoli personalizzati.
Utente con ruolo integrato:
use admin db.createUser( { user: "myClusterAdmin", pwd: "password123", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
Utente con ruoli personalizzati:
use admin db.createRole( { role: "myRole", privileges: [ { resource: { cluster: true }, actions: [ "auditConfigure" ] } ], roles: [] } ) db.createUser( { user: "myUser", pwd: "myPassword", roles: [ { role: "myRole", db: "admin" } ] } )
Filtraggio dei casi d'uso
Esempio: filtraggio degli eventi in base ai comandi
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ] }, auditAuthorizationSuccess: true } )
Esempio: filtraggio degli eventi in base al nome utente
In questo esempio, verrà registrato solo l'utente «myUser»:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.user": { $in: [ "myUser" ] } } ]}, auditAuthorizationSuccess: true})
Esempio: filtraggio per atype
db.admin.runCommand( { setAuditConfig: 1, filter: {atype: "authCheck"}, auditAuthorizationSuccess: true })
Nota
Tutti i log DML hanno authCheck come. atype Solo DDL ne ha una diversa. atype Se inserisci un valore diverso da quello authCheck difilter, non verrà prodotto un accesso DML. CloudWatch
Esempio: filtraggio utilizzando più filtri uniti da operatori
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})
Nota
Solo al livello superiore $and$or, e $nor sono supportati. Qualsiasi altro operatore non è supportato e causerà un errore.
Esempio: filtraggio per eventi per auditAuthorizationSuccess
In questo filtro, tutti i comandi che hanno superato con successo l'autorizzazione non verranno registrati:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: false } )
Esempio: filtraggio con e condizioni $in $nin
Quando si utilizza $in sia in che$nin, il comando non verrà registrato poiché tra le condizioni sarà presente un «e» implicito. In questo esempio, regex bloccherà il find comando in modo che non venga registrato nulla:
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})
Esempio: filtraggio per namespace
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.ns": { $in: [ "test.foo" ] } } ]}, auditAuthorizationSuccess: true})
Esempio: ripristino del filtro predefinito
Il ripristino del valore predefinito significa che ogni evento di controllo DML verrà registrato. Per ripristinare il filtro al valore predefinito, eseguite il comando seguente:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: true } )