Módulo: Mongo::Monitoring::Event::Secure

Incluido en:
CommandFailed, CommandStarted, CommandSucceeded, Protocol::Msg, Protocol::Query
Definido en:
lib/mongo/monitoreo/evento/seguro.rb

Overview

Proporciona comportamiento para redactar información confidencial de comandos y respuestas.

Desde:

  • 2.1.0

Colapso delresumen constante

COMANDOS REDACTADOS =

La lista de comandos cuyos datos están redactados por motivos de seguridad.

Desde:

  • 2.1.0

[
  'autenticar ',
  'saslStart',
  'saslContinuar ',
  'getnonce',
  'crearUsuario',
  'updateUser',
  'copydbgetnonce',
  'copydbsaslstart',
  'copydb'
].freeze

Colapso del resumen del método de instancia

Detalles del método de instancia

#¿compresión_permitida?(nombre_del_comando) ⇒ verdadero, falso

¿Se permite la compresión para un mensaje de comando determinado?

Ejemplos:

Determinar si se permite la compresión para un comando determinado.

secure.compression_allowed?(selector)

Parámetros:

  • nombre_del_comando (Cadena,Símbolo)

    El nombre del comando.

Devuelve:

  • (verdadero,falso)

    Si se puede utilizar la compresión.

Desde:

  • 2.5.0



106
107
108
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 106

def ¿compresión_permitida?(nombre_del_comando)
  @compresión_permitida ||= !COMANDOS REDACTADOS.¿incluir?(nombre_del_comando.a_s)
end

#se ha redactado(command_name, documento) ⇒ BSON::Document

Redacta la información segura del documento si:

- its command is in the sensitive commands;
- its command is a hello/legacy hello command, and
  speculative authentication is enabled;
- corresponding started event is sensitive.

Ejemplos:

Obtenga el documento redactado.

secure.redacted(command_name, document)

Parámetros:

  • nombre_del_comando (Cadena,Símbolo)

    El nombre del comando.

  • Documento (BSON::Documento)

    El documento.

Devuelve:

  • (BSON::Documento)

    El documento redactado.

Desde:

  • 2.1.0



83
84
85
86
87
88
89
90
91
92
93
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 83

def redactado(nombre_del_comando, Documento)
  Si %w(1 true ).¿incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.mayúsculas y minúsculas)
    Documento
  elsif respond_to?(:evento_iniciado) && evento iniciado.sensible
    return BSON::Documento.Nuevo
  elsif ¿sensible?(nombre_del_comando: nombre_del_comando, documento: Documento)
    BSON::Documento.Nuevo
  else
    Documento
  end
end

#¿sensible?(nombre_comando:, documento:) ⇒ verdadero | falso

Comprueba si el comando es sensible según la especificación de monitorización de comandos. Un comando se detecta como sensible si está en la lista o si es un comando de saludo/saludo heredado, y la autenticación especulativa está habilitada.

Parámetros:

  • nombre_del_comando (Cadena,Símbolo)

    El nombre del comando.

  • Documento (BSON::Documento)

    El documento.

Devuelve:

  • (verdadero | falso)

    Si el comando es confidencial.

Desde:

  • 2.1.0



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 52

def ¿sensible?(nombre_del_comando:, documento:)
  Si COMANDOS REDACTADOS.¿incluir?(nombre_del_comando.a_s)
    true
  elsif %w(¡Hola Ismaster esMaestro).¿incluir?(nombre_del_comando.a_s) &&
    Documento['Autenticación especulativa ']
    entonces
    # Según la especificación de Monitoreo de Comandos, para comandos hello/hello legacy
    # cuando speculativeAuthenticate está presente, sus comandos Y respuestas
    # DEBE ser eliminado de los eventos.
    # Consulta https://github.com/mongodb/specifications/blob/master/source/command-logging-and-monitoring/command-logging-and-monitoring.md#security
    true
  else
    false
  end
end