As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Auditar eventos do Amazon DocumentDB
Com o Amazon DocumentDB (compatível com MongoDB), é possível auditar eventos que foram realizados em seu cluster. Exemplos de eventos registrados incluem tentativas de autenticação bem-sucedidas e com falha, eliminação de uma coleção em um banco de dados ou criação de um índice. Por padrão, a auditoria fica desabilitada no Amazon DocumentDB e requer que você opte por esse atributo.
Quando a auditoria está habilitada, o Amazon DocumentDB registra eventos de Data Definition Language DDL (), Data Manipulation Language DML (), autenticação, autorização e gerenciamento de usuários no Amazon Logs. CloudWatch Quando a auditoria está habilitada, o Amazon DocumentDB exporta os registros de auditoria JSON (documentos) do seu cluster para o Amazon Logs. CloudWatch Você pode usar o Amazon CloudWatch Logs para analisar, monitorar e arquivar seus eventos de auditoria do Amazon DocumentDB.
Embora o Amazon DocumentDB não cobre um custo adicional para permitir a auditoria, são cobradas taxas padrão pelo uso de registros. CloudWatch Para obter informações sobre CloudWatch os preços do Logs, consulte os CloudWatch preços da Amazon
O recurso de auditoria do Amazon DocumentDB é nitidamente diferente do uso de recursos de serviço que é monitorado com. AWS CloudTrail CloudTrail registra operações que são realizadas com o AWS Command Line Interface (AWS CLI) ou AWS Management Console em recursos como clusters, instâncias, grupos de parâmetros e instantâneos. A auditoria de recursos com CloudTrail está ativada por padrão e não pode ser desativada. O atributo de auditoria do Amazon DocumentDB é um atributo opcional. Ele registra operações que ocorrem dentro do seu cluster em objetos, como bancos de dados, coleções, índices e usuários.
Tópicos
Eventos com suporte
A auditoria do Amazon DocumentDB oferece suporte às seguintes categorias de eventos:
-
Linguagem de definição de dados (DDL) - inclui operações de gerenciamento de banco de dados, conexões, gerenciamento de usuários e autorização.
-
Eventos de leitura (DMLleituras) da Data Manipulation Language - inclui vários operadores de agregação, operadores aritméticos, operadores booleanos
find()
e outros operadores de consulta de leitura. -
Eventos de gravação (DMLgravações) da linguagem de manipulação de dados - inclusões
insert(), update(), delete(),
e operadoresbulkWrite()
Os tipos de evento são os seguintes.
Tipo de evento | Categoria | Descrição |
---|---|---|
authCheck |
Autorização | Código de resultado 0: Sucesso |
Código de resultado 13: Tentativas não autorizadas de executar uma operação. | ||
authenticate |
Conexão | Tentativas de autenticação bem-sucedidas ou com falha em uma nova conexão. |
auditConfigure |
DDL | Auditar configuração de filtro. |
createDatabase |
DDL | Criação de um novo banco de dados. |
createCollection |
DDL | Criação de uma nova coleção em um banco de dados. |
createIndex |
DDL | Criação de um novo índice em uma coleção. |
dropCollection |
DDL | Eliminação de uma coleção em um banco de dados. |
dropDatabase |
DDL | Eliminação de um banco de dados. |
dropIndex |
DDL | Eliminação de um índice em uma coleção. |
modifyChangeStreams |
DDL | O fluxo de alteração foi criado. |
renameCollection |
DDL | Como renomear uma coleção em um banco de dados. |
createRole |
Gerenciamento de funções | Como criar uma função. |
dropAllRolesFromDatabase |
Gerenciamento de funções | Eliminação de todos os usuários em um banco de dados. |
dropRole |
Gerenciamento de funções | Eliminação de uma função. |
grantPrivilegesToRole |
Gerenciamento de funções | Como conceder privilégios a uma função. |
grantRolesToRole |
Gerenciamento de funções | Como coonceder funções a um perfil definido pelo usuário. |
revokePrivilegesFromRole |
Gerenciamento de funções | Revogação de privilégios de uma função. |
revokeRolesFromRole |
Gerenciamento de funções | Como revogar funções de um perfil definido pelo usuário. |
updateRole |
Gerenciamento de funções | Como atualizar uma função. |
createUser |
Gerenciamento de usuários | Criação de um novo usuário. |
dropAllUsersFromDatabase |
Gerenciamento de usuários | Eliminação de todos os usuários em um banco de dados. |
dropUser |
Gerenciamento de usuários | Eliminação de um usuário existente. |
grantRolesToUser |
Gerenciamento de usuários | Como conceder funções a um usuário. |
revokeRolesFromUser |
Gerenciamento de usuários | Como revogar funções de um usuário. |
updateUser |
UserManagement | Atualização de um usuário existente. |
insert |
DMLescrever | Insere um documento ou documentos em uma coleção. |
delete |
DMLescrever | Exclui um documento ou documentos de uma coleção. |
update |
DMLescrever | Modifica um documento ou documentos existentes em uma coleção. |
bulkWrite |
DMLescrever | Executa várias operações de gravação com controles para ordem de execução. |
setAuditConfig |
DMLescrever | Defina um novo filtro para DML auditoria. |
count |
DMLleia | Retorna a contagem de documentos que corresponderiam a uma consulta find() para a coleção ou visualização. |
countDocuments |
DMLleia | Retorna a contagem de documentos que correspondem a uma consulta para a coleção ou visualização. |
find |
DMLleia | Seleciona documentos em uma coleção ou exibição e retorna um cursor para os documentos selecionados. |
getAuditConfig |
DMLleia | Recupere o filtro atual para DML auditoria. |
findAndModify |
DMLler e DML escrever | Modifica e retorna um único documento. |
findOneAndDelete |
DMLler e DML escrever | Exclui um único documento com base nos critérios de filtragem e classificação, retornando o documento excluído. |
findOneAndReplace |
DMLler e DML escrever | Substitui um único documento com base no filtro especificado. |
findOneAndUpdate |
DMLler e DML escrever | Atualiza um único documento com base nos critérios de filtragem e classificação. |
aggregate |
DMLler e DML escrever | Suportes APIs no pipeline de agregação. |
distinct |
DMLleia | Encontra os valores distintos de um campo especificado em uma única coleção ou exibição e retorna os resultados em uma matriz. |
nota
Os valores no campo de parâmetro do documento do DML evento têm um limite de tamanho de 1 KB. O Amazon DocumentDB trunca o valor se ele exceder 1 KB.
nota
TTLeventos de exclusão não são auditados no momento.
Ativar a auditoria
A ativação da auditoria em um cluster é um processo de duas etapas. Verifique se as duas etapas foram concluídas ou os registros de auditoria não serão enviados para o CloudWatch Logs.
Etapa 1. Habilitar o parâmetro de cluster audit_logs
Para habilitar a auditoria, você precisa modificar o parâmetro audit_logs
no grupo de parâmetros. audit_logs
é uma lista de eventos delimitada por vírgulas, os quais serão registrados. Os eventos devem ser especificados em letras maiúsculas, e não pode haver espaço em branco entre os elementos da lista.
É possível especificar os seguintes valores para o grupo de parâmetros:
Valor | Descrição |
---|---|
ddl |
Essa configuração permitirá a auditoria de DDL eventos comocreateDatabase,,dropDatabase,createCollection,dropCollection,createIndex, dropIndexauthCheck, autenticar,createUser,dropUser, grantRolesTo Usuário, revokeRolesFrom Usuário e updateUser dropAllUsers FromDatabase |
dml_read |
Essa configuração permitirá a auditoria de eventos de DML leitura, como find, sort count, distinct, group, projecta, unwind,, e geoWithin outros operadores de consulta geoNear de leitura do MongoDB. geoIntersects |
dml_write |
Definir isso habilitará a auditoria para eventos de DML gravação, como inserir (), atualizar (), excluir () e bulkWrite () |
all |
Essa configuração habilitará a auditoria de eventos do seu banco de dados, como consultas de leitura, consultas de gravação, ações de banco de dados e ações de administrador. |
none |
Essa configuração desabilitará a auditoria |
enabled (legado) |
Essa é uma configuração de parâmetro herdada que é equivalente a 'ddl'. Definir isso permitirá a auditoria de DDL eventos comocreateDatabase,dropDatabase, createCollectiondropCollection,createIndex,dropIndex,authCheck,, autenticarcreateUser,dropUser,, grantRolesTo revokeRolesFrom UsuárioupdateUser, e. dropAllUsers FromDatabase Não é recomendável usar essa configuração, pois ela é uma configuração herdada. |
disabled (legado) |
Essa é uma configuração de parâmetro herdada que é equivalente a 'none'. Não é recomendável usar essa configuração, pois ela é uma configuração herdada. |
nota
O valor padrão do parâmetro de cluster audit_logs é none
(legacy "disabled
").
Você também pode usar os valores mencionados acima em combinações.
Valor | Descrição |
---|---|
ddl, dml_read |
Essa configuração permitirá a auditoria de DDL eventos e a DML leitura de eventos. |
ddl, dml_write |
Definir isso permitirá a auditoria de DDL eventos e DML a gravação. |
dml_read, dml_write |
Definir isso habilitará a auditoria para todos os DML eventos. |
nota
Não é possível modificar um grupo de parâmetros padrão.
Para obter mais informações, consulte as informações a seguir:
-
Criando grupos de parâmetros de cluster do Amazon DocumentDB
Depois que criar um grupo de parâmetros, modifique-o alterando o valor do parâmetro
audit_logs
paraall
. -
Modificando grupos de parâmetros de cluster do Amazon DocumentDB
Etapa 2. Ativar a exportação do Amazon CloudWatch Logs
Quando o valor do parâmetro do audit_logs
cluster éenabled
,,, ou ddl
dml_read
dml_write
, você também deve habilitar o Amazon DocumentDB para exportar registros para a Amazon. CloudWatch Se você omitir qualquer uma dessas etapas, os registros de auditoria não serão enviados para CloudWatch.
Ao criar um cluster, executar um point-in-time-restore ou restaurar um snapshot, você pode ativar CloudWatch os registros seguindo estas etapas.
Desativar a auditoria
Você pode desativar a auditoria desativando a exportação de CloudWatch registros e desativando o parâmetro. audit_logs
Desativando a exportação de CloudWatch registros
Você pode desativar a exportação de registros de auditoria usando o AWS Management Console ou o. AWS CLI
Desativar o parâmetro audit_logs
Para desabilitar o parâmetro audit_logs
para o cluster, é possível modificar o cluster para que ele use um grupo de parâmetros em que o valor do parâmetro audit_logs
é disabled
. Ou é possível modificar o valor do parâmetro audit_logs
no grupo de parâmetros de cluster para que ele seja disabled
.
Para obter mais informações, consulte os tópicos a seguir.
Acessar seus eventos de auditoria
Use as etapas a seguir para acessar seus eventos de auditoria na Amazon CloudWatch.
Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/
. -
Certifique-se de estar na mesma região que seu cluster do Amazon DocumentDB.
-
No painel de navegação, selecione Logs.
-
Para localizar os logs de auditoria para o seu cluster, na lista, localize e escolha
/aws/docdb/
.yourClusterName
/auditOs eventos de auditoria para cada uma das suas instâncias estão disponíveis em cada um dos respectivos nomes de instância.
Filtrando eventos DML de auditoria
Introdução à filtragem DML de auditoria
DMLos eventos de auditoria podem ser filtrados antes de serem gravados na Amazon CloudWatch. Para utilizar esse recurso, o registro e DML o registro de auditoria devem estar habilitados. O Amazon DocumentDB oferece suporte à filtragem em atype
, command
, user
, namespace
e auditAuthorizationSuccess
.
nota
DDLos eventos não são filtrados.
Você pode ativar a filtragem de auditoria a qualquer momento especificando o filtro de auditoria usando os parâmetros setAuditConfig
, filter
e auditAuthorizationSuccess
na operação db.adminCommand( { command } )
:
db.admin.runCommand( { setAuditConfig: 1, filter: { //filter conditions }, auditAuthorizationSuccess: true | false } )
Você também pode recuperar as configurações do filtro de auditoria executando o seguinte comando:
db.admin.runCommand( { getAuditConfig: 1})
Requisitos de segurança
Somente usuários/funções do banco de dados com ação privilegiada auditConfigure
podem executar os comandos acima admindb
ao definir ou listar DML filtros de auditoria. Você pode usar uma das funções integradas de [clusterAdmin
, hostManager
, root
] ou criar funções personalizadas com privilégios auditConfigure
. Veja a seguir um exemplo do uso de funções existentes com o privilégio auditConfigure
e um exemplo com funções personalizadas.
Usuário com função integrada:
use admin db.createUser( { user: "myClusterAdmin", pwd: "password123", roles: [ { role: "clusterAdmin", db: "admin" } ] } )
Usuário com funções personalizadas:
use admin db.createRole( { role: "myRole", privileges: [ { resource: { cluster: true }, actions: [ "auditConfigure" ] } ], roles: [] } ) db.createUser( { user: "myUser", pwd: "myPassword", roles: [ { role: "myRole", db: "admin" } ] } )
Filtrar casos de uso
Exemplo: filtrar eventos por comandos
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.command": { $in: [ "find","count", "insert", "delete", "update", "findandmodify" ] } } ] }, auditAuthorizationSuccess: true } )
Exemplo: filtrar eventos por nome de usuário
Neste exemplo, somente o usuário myUser "" será registrado:
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.user": { $in: [ "myUser" ] } } ]}, auditAuthorizationSuccess: true})
Exemplo: filtrar por atype
db.admin.runCommand( { setAuditConfig: 1, filter: {atype: "authCheck"}, auditAuthorizationSuccess: true })
nota
Todos os DML registros têm authCheck
comoatype
. Só DDL tem um diferenteatype
. Se você colocar um valor diferente authCheck
defilter
, ele não produzirá um DML login CloudWatch.
Exemplo: filtrar usando vários 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
No nível superior, somente $and
, $or
e $nor
têm suporte. Quaisquer outros operadores não têm suporte e causarão um erro.
Exemplo: filtragem por eventos por auditAuthorizationSuccess
Nesse filtro, todos os comandos aprovados com sucesso na autorização não serão registrados:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: false } )
Exemplo: filtrar com as condições $in
e $nin
Ao usar tanto em $in
quanto em $nin
, o comando não será registrado, pois haverá um “e” implícito entre as condições. Neste exemplo, a regex bloqueará o comando find
para que nada seja registrado:
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})
Exemplo: filtrar por namespace
db.admin.runCommand( { setAuditConfig: 1, filter: { "$and": [ { "param.ns": { $in: [ "test.foo" ] } } ]}, auditAuthorizationSuccess: true})
Exemplo: redefinir para o filtro padrão
A redefinição para o valor padrão significa que cada evento de DML auditoria será registrado. Para redefinir a filtragem para o valor padrão, execute o comando a seguir:
db.admin.runCommand( { setAuditConfig: 1, filter: {}, auditAuthorizationSuccess: true } )