Modulo: Mongo::supervisión::evento::Secure

Incluido en:
CommandFailed, CommandStarted, CommandSucceeded, protocolo::Msg, protocolo::query, Tracing::OpenTelemetry::CommandTracer
Definido en:
lib/mongo/supervisión/evento/secure.rb

Overview

Proporciona un comportamiento para enmascarar información sensible de los comandos y respuestas.

Desde:

  • 2.1.0

Resumen de constantes colapsar

REDACTED_COMMANDS =

Lista de comandos en la que los datos se ocultan por motivos de seguridad.

Desde:

  • 2.1.0

%w[
  Autenticar
  saslStart
  saslContinue
  getnonce
  createUser
  updateUser
  copydbgetnonce
  copydbsaslstart
  copydb
].freeze

Resumen del método de instancia colapsar

Detalles del método de instancia

#compression_allowed?(command_name) ⇒ true, false

Si la compresión está permitida para un mensaje de comando dado.

Ejemplos:

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

secure.compression_allowed?(selector)

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

Devuelve:

  • (true, false)

    Si se puede usar la compresión.

Desde:

  • 2.5.0



96
97
98
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 96

def compression_allowed?(command_name)
  @compression_allowed ||= !REDACTED_COMMANDS.incluir?(command_name.to_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:

Obtiene el documento editado.

secure.redacted(command_name, document)

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

  • Documento (BSON::Document)

    El documento.

Devuelve:

  • (BSON::Document)

    El documento editado.

Desde:

  • 2.1.0



75
76
77
78
79
80
81
82
83
84
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 75

def redactado(command_name, Documento)
  return Documento si %w[1 true ].incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.minúscula)

  si (respond_to?(evento_iniciado) && evento_inicio.sensible) ||
     ¿sensible?(command_name: command_name, documento: Documento)
    BSON::Documento.Nuevo
  else
    Documento
  end
end

#¿sensitivo?(nombre_de_comando:, documento:) ⇒ verdadero | falso

Comprueba si el comando es sensible en términos de la especificación de supervisión de comandos. Un comando se detecta como sensible si está en la lista o si es un comando hello/hello heredado, y la autenticación especulativa está habilitada.

Parámetros:

  • command_name (String, Símbolo)

    El nombre del comando.

  • Documento (BSON::Document)

    El documento.

Devuelve:

  • (true | false)

    Si el comando es confidencial.

Desde:

  • 2.1.0



49
50
51
52
53
54
55
56
57
58
# Archivo 'lib/mongo/monitoring/event/secure.rb', línea 49

def ¿sensible?(command_name:, documento:)
  return true si REDACTED_COMMANDS.incluir?(command_name.to_s)

  # Según la especificación de supervisión de comandos, para los comandos hello/hello legados
  # cuando speculativeAuthenticate está presente, sus comandos Y respuestas
  # DEBE eliminarse de los eventos.
  # Consulta https://github.com/mongodb/specifications/blob/master/source/command-logging-and-monitoring/command-logging-and-monitoring.md#security
  %w[hola esprincipal esMaestro].incluir?(command_name.to_s) &&
    !!Documento['speculativeAuthenticate']
end