Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Auditoría de eventos de Amazon DocumentDB
Con Amazon DocumentDB (con compatibilidad con MongoDB), puede auditar eventos que se realizaron en su clúster. Los intentos de autenticación correctos e incorrectos, la eliminación de una colección en una base de datos o la creación de un índice son algunos ejemplos de eventos registrados. De forma predeterminada, la auditoría está deshabilitada en Amazon DocumentDB y, para utilizar esta característica, es necesario suscribirse.
Cuando la auditoría está habilitada, Amazon DocumentDB registra los eventos del lenguaje de definición de datos (DDL), el lenguaje de manipulación de datos (DML), la autenticación, la autorización y la administración de usuarios en Amazon CloudWatch Logs. Cuando la auditoría está habilitada, Amazon DocumentDB exporta los registros de auditoría (JSONdocumentos) del clúster a Amazon CloudWatch Logs. Puede utilizar Amazon CloudWatch Logs para analizar, supervisar y archivar sus eventos de auditoría de Amazon DocumentDB.
Aunque Amazon DocumentDB no cobra ningún coste adicional por habilitar la auditoría, se le cobran tarifas estándar por el uso de CloudWatch Logs. Para obtener información sobre CloudWatch los precios de Logs, consulta CloudWatch los precios de Amazon
La función de auditoría de Amazon DocumentDB es claramente diferente del uso de los recursos de servicio con el que se supervisa. AWS CloudTrail CloudTrail registra las operaciones que se realizan con AWS Command Line Interface (AWS CLI) o AWS Management Console en recursos como clústeres, instancias, grupos de parámetros e instantáneas. La auditoría de los recursos CloudTrail está activada de forma predeterminada y no se puede deshabilitar. La característica de auditoría de Amazon DocumentDB es opcional. Registra las operaciones que tienen lugar dentro del clúster en los distintos objetos, como, por ejemplo, bases de datos, colecciones, índices y usuarios.
Temas
Eventos admitidos
La auditoría de Amazon DocumentDB admite las siguientes categorías de eventos:
-
Lenguaje de definición de datos (DDL): incluye las operaciones de administración de bases de datos, las conexiones, la administración de usuarios y la autorización.
-
Eventos de lectura (DMLlecturas) del lenguaje de manipulación de datos: incluye
find()
los distintos operadores de agregación, operadores aritméticos, operadores booleanos y otros operadores de consulta de lectura. -
El lenguaje de manipulación de datos escribe eventos (DMLescribe): incluye operadores
insert(), update(), delete(),
bulkWrite()
Los tipos de eventos son los siguientes.
Tipo de evento | Categoría | Descripción |
---|---|---|
authCheck |
Autorización | Código de resultado 0: éxito |
Código de resultado 13: intentos no autorizados de realizar una operación. | ||
authenticate |
Connection | Intentos de autenticación correctos e incorrectos en una nueva conexión. |
auditConfigure |
DDL | Configuración del filtro de auditoría. |
createDatabase |
DDL | Creación de una nueva base de datos. |
createCollection |
DDL | Creación de una nueva colección en una base de datos. |
createIndex |
DDL | Creación de un nuevo índice en una colección. |
dropCollection |
DDL | Eliminación de una nueva colección en una base de datos. |
dropDatabase |
DDL | Eliminación de una base de datos. |
dropIndex |
DDL | Eliminación de un índice en una colección. |
modifyChangeStreams |
DDL | Se creó el flujo de cambios. |
renameCollection |
DDL | Renombrar una nueva colección en una base de datos. |
createRole |
Administración de roles | Creación de un rol. |
dropAllRolesFromDatabase |
Administración de roles | Eliminación de todos los roles en una base de datos. |
dropRole |
Administración de roles | Descartando un rol. |
grantPrivilegesToRole |
Administración de roles | Concediendo privilegios a un rol. |
grantRolesToRole |
Administración de roles | Concediendo roles a un rol definido por el usuario. |
revokePrivilegesFromRole |
Administración de roles | Revocando los privilegios de un rol. |
revokeRolesFromRole |
Administración de roles | Revocando roles de un rol definido por el usuario. |
updateRole |
Administración de roles | Actualización de un rol. |
createUser |
Administración de usuarios | Creación de un nuevo usuario. |
dropAllUsersFromDatabase |
Administración de usuarios | Eliminación de todos los usuarios en una base de datos. |
dropUser |
Administración de usuarios | Eliminación de un usuario existente. |
grantRolesToUser |
Administración de usuarios | Concesión de roles a un usuario. |
revokeRolesFromUser |
Administración de usuarios | Revocando roles de un usuario. |
updateUser |
UserManagement | Actualización de un usuario existente. |
insert |
DMLescribir | Inserta uno o varios documentos en una colección. |
delete |
DMLescribir | Elimina uno o varios documentos de una colección. |
update |
DMLescribir | Modifica uno o varios documentos existentes en una colección. |
bulkWrite |
DMLescribir | Realiza múltiples operaciones de escritura con controles para determinar el orden de ejecución. |
setAuditConfig |
DMLescribir | Establezca un nuevo filtro para la DML auditoría. |
count |
DMLleer | Devuelve el recuento de documentos que coincidirían con una consulta find() de la colección o vista. |
countDocuments |
DMLleer | Devuelve el recuento de documentos que coinciden con una consulta para una colección o vista. |
find |
DMLleer | Selecciona los documentos de una colección o vista y devuelve el cursor a los documentos seleccionados. |
getAuditConfig |
DMLleer | Recupera el filtro actual para DML auditarlo. |
findAndModify |
DMLleer y DML escribir | Modifica y devuelve un único documento. |
findOneAndDelete |
DMLleer y DML escribir | Elimina un solo documento en función de los criterios de filtro y clasificación y devuelve el documento eliminado. |
findOneAndReplace |
DMLleer y DML escribir | Sustituye un único documento en función del filtro especificado. |
findOneAndUpdate |
DMLleer y DML escribir | Actualiza un único documento en función de los criterios de filtrado y clasificación. |
aggregate |
DMLleer y DML escribir | Soporta APIs la canalización de agregación. |
distinct |
DMLleer | Busca los valores distintos de un campo especificado en una sola colección o vista y devuelve los resultados en una matriz. |
nota
Los valores del campo de parámetros del documento de DML eventos tienen un límite de tamaño de 1 KB. Amazon DocumentDB trunca el valor si supera 1 KB.
nota
TTLlos eventos de eliminación no se auditan en este momento.
Habilitar la auditoría
Para habilitar la auditoría en un clúster, hay que seguir un proceso de dos pasos. Asegúrese de completar ambos pasos o los registros de auditoría no se enviarán a CloudWatch Logs.
Paso 1. Habilitación del parámetro de clúster audit_logs
Para habilitar la auditoría, debe modificar el parámetro audit_logs
en el grupo de parámetros. audit_logs
es una lista delimitada por comas de los eventos que se deben registrar. Los eventos se deben especificar en minúsculas y no debe haber espacios en blanco entre los elementos de la lista.
Puede especificar los siguientes valores para el grupo de parámetro:
Valor | Descripción |
---|---|
ddl |
Al configurarlo, se habilitará la auditoría de DDL eventos como createDatabase dropDatabasecreateCollection,dropCollection,createIndex,dropIndex,authCheck,, autenticarcreateUser,dropUser,, grantRolesTo revokeRolesFrom UsuarioupdateUser, Usuario y dropAllUsers FromDatabase |
dml_read |
Al configurar esto, se habilitará la auditoría de eventos de DML lectura como find, sort count, distinct, group, projecta, unwind geoIntersects y geoWithin otros operadores de consulta de lectura de MongoDB. geoNear |
dml_write |
Si lo configuras, se habilitará la auditoría de eventos de DML escritura como insert (), update (), delete () y () bulkWrite |
all |
Al configurarlo, se habilitará la auditoría de los eventos de la base de datos, como las consultas de lectura y escritura, las acciones de la base de datos y las acciones del administrador. |
none |
Si lo configura, se deshabilitará la auditoría |
enabled (heredado) |
Se trata de una configuración de parámetros antigua que equivale a “ddl”. Al configurarlo, se habilitará la auditoría de DDL eventos como createDatabase dropDatabase createCollectiondropCollection,createIndex,dropIndex,authCheck,,, autenticar createUserdropUser,,, grantRolesTo revokeRolesFrom UsuarioupdateUser, y dropAllUsersFromDatabase. No se recomienda utilizar este ajuste porque se trata de un ajuste heredado. |
disabled (heredado) |
Se trata de una configuración de parámetros antigua que equivale a “none”. No se recomienda utilizar este ajuste porque se trata de un ajuste heredado. |
nota
El valor predeterminado del parámetro de clúster audit_logs es none
(“disabled
” heredado).
También puede utilizar los valores mencionados anteriormente en combinaciones.
Valor | Descripción |
---|---|
ddl, dml_read |
Al configurar esto, se habilitará la auditoría de DDL eventos y la DML lectura de eventos. |
ddl, dml_write |
Si lo configuras, se habilitará la audición de DDL eventos y la escritura DML |
dml_read, dml_write |
Si lo configura, se habilitará la auditoría de todos los eventos DML |
nota
No es posible modificar un grupo de parámetros predeterminado.
Para más información, consulte los siguientes temas:
-
Creación de grupos de parámetros de clúster de Amazon DocumentDB
Después de crear un grupo de parámetros, para modificarlo, debe cambiar el valor del parámetro
audit_logs
aenabled
. -
Modificación de grupos de parámetros de clúster de Amazon DocumentDB
Paso 2. Habilitar la exportación CloudWatch de Amazon Logs
Si el valor del parámetro de audit_logs
clúster esenabled
,ddl
, o dml_read
dml_write
, también debe habilitar Amazon DocumentDB para exportar los registros a Amazon. CloudWatch Si omite alguno de estos pasos, no se enviarán los registros de auditoría a. CloudWatch
Al crear un clúster, realizar una point-in-time-restore instantánea o restaurar una instantánea, puede habilitar CloudWatch los registros siguiendo estos pasos.
Deshabilitar la auditoría
Puede deshabilitar la auditoría deshabilitando la exportación de CloudWatch registros y deshabilitando el audit_logs
parámetro.
Desactivar CloudWatch la exportación de registros
Puede deshabilitar la exportación de registros de auditoría mediante el AWS Management Console o el AWS CLI.
Deshabilitar el parámetro audit_logs
Para deshabilitar el parámetro audit_logs
del clúster, puede modificar el clúster para que utilice un grupo de parámetros donde el valor del parámetro audit_logs
esté disabled
. O bien, puede modificar el valor del parámetro audit_logs
en el grupo de parámetros del clúster para que esté disabled
.
Para obtener más información, consulte los temas siguientes:
Acceder a sus eventos de auditoría
Sigue los siguientes pasos para acceder a tus eventos de auditoría en Amazon CloudWatch.
Abre la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/
. -
Asegúrese de que se encuentra en la misma región que el clúster de Amazon DocumentDB.
-
En el panel de navegación, elija Logs (Registros).
-
Para buscar los registros de auditoría del clúster, busque y elija en la lista
/aws/docdb/
.yourClusterName
/auditLos eventos de auditoría de cada una de las instancias están disponibles debajo del nombre de instancia correspondiente.
Filtrar eventos DML de auditoría
Cómo empezar con el filtrado DML de auditorías
DMLlos eventos de auditoría se pueden filtrar antes de que se escriban en Amazon CloudWatch. Para utilizar esta función, el registro y DML el registro de auditoría deben estar habilitados. Amazon DocumentDB admite el filtrado deatype
, command
user
namespace
, y. auditAuthorizationSuccess
nota
DDLlos eventos no se filtran.
Puede activar el filtrado de auditoría en cualquier momento especificando el filtro de auditoría mediante los auditAuthorizationSuccess
parámetros setAuditConfig
filter
, y de la db.adminCommand( { command } )
operación:
db.admin.runCommand( { setAuditConfig: 1, filter: { //filter conditions }, auditAuthorizationSuccess: true | false } )
También puede recuperar la configuración del filtro de auditoría ejecutando el siguiente comando:
db.admin.runCommand( { getAuditConfig: 1})
Requisitos de seguridad
Solo los usuarios o roles de la base de datos con acciones privilegiadas auditConfigure
pueden ejecutar los comandos anteriores admindb
al configurar o enumerar los filtros de DML auditoría. Puede utilizar uno de los roles integrados de [clusterAdmin
,hostManager
,root
] o crear roles personalizados con privilegios. auditConfigure
A continuación se muestra un ejemplo del uso de los roles existentes con el auditConfigure
privilegio y un ejemplo con los roles personalizados.
Usuario con función integrada:
use admin db.createUser( { user: "myClusterAdmin", pwd: "password123", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
Usuario con roles personalizados:
use admin db.createRole( { role: "myRole", privileges: [ { resource: { cluster: true }, actions: [ "auditConfigure" ] } ], roles: [] } ) db.createUser( { user: "myUser", pwd: "myPassword", roles: [ { role: "myRole", db: "admin" } ] } )
Filtrado de casos de uso
Ejemplo: filtrar eventos por comandos
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ] }, auditAuthorizationSuccess: true } )
Ejemplo: filtrar eventos por nombre de usuario
En este ejemplo, solo se registrará el usuario myUser "»:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.user": { $in: [ "myUser" ] } } ]}, auditAuthorizationSuccess: true})
Ejemplo: filtrar por atype
db.admin.runCommand( { setAuditConfig: 1, filter: {atype: "authCheck"}, auditAuthorizationSuccess: true })
nota
Todos los DML registros tienen authCheck
comoatype
. Solo DDL tiene una diferenteatype
. Si pones un valor que no sea el indicado authCheck
enfilter
, no se producirá un DML inicio de sesión CloudWatch.
Ejemplo: filtrar mediante varios filtros unidos por operadores
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 en el nivel superior $and
$or
, y $nor
son compatibles. Cualquier otro operador no es compatible y provocará un error.
Ejemplo: filtrar por eventos por auditAuthorizationSuccess
En este filtro, no se registrarán todos los comandos que hayan pasado la autorización correctamente:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: false } )
Ejemplo: filtrar con $nin
condiciones $in
y
Si se utilizan $in
tanto en como$nin
, el comando no se registrará, ya que habrá un «y» implícito entre las condiciones. En este ejemplo, regex bloqueará el find
comando para que no se registre nada:
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})
Ejemplo: filtrar por namespace
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.ns": { $in: [ "test.foo" ] } } ]}, auditAuthorizationSuccess: true})
Ejemplo: restablecer el filtro predeterminado
Si se restablece el valor predeterminado, se registrarán todos los eventos de DML auditoría. Para restablecer el filtrado al valor predeterminado, ejecute el siguiente comando:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: true } )