Módulo: Mongo::Monitoramento::Evento::Seguro

Incluído em:
CommandFailed, CommandStarted, CommandSucceeded, protocolo::Msg, protocolo::query, Tracing::OpenTelemetry::CommandTracer
Definido em:
lib/mongo/monitoring/ evento/secure.rb

Visão geral

Fornece comportamento para redigir informações confidenciais de comandos e respostas.

Desde:

  • 2.1.0

Colapsode resumo constante

redacted_commands =

A lista de comandos que tem os dados editados por segurança.

Desde:

  • 2.1.0

%w[
  autenticar
  saslStart
  sasl Continue
  pegue uma vez
  createUser
  updateUser
  copydbgetnonce
  copydbsaslstart
  copydb
].congelar

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#comparison_allowed?(command_name) ⇒ true, false

A compactação é permitida para uma determinada mensagem de comando.

Exemplos:

Determine se a compressão é permitida para um determinado comando.

secure.compression_allowed?(selector)

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

Retorna:

  • (verdadeiro, falso)

    Se a compressão pode ser usada.

Desde:

  • 2.5.0



96
97
98
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 96

def compressão_allowed?(command_name)
  @compression_allowed ||= !redacted_commands.incluir?(command_name.to_s)
end

#redigido(command_name, document) ➤ BSON::Document

Reduzir informações seguras do documento se:

- 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.

Exemplos:

Obtenha o documento editado .

secure.redacted(command_name, document)

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

  • documento (BSON::Document)

    O documento.

Retorna:

  • (BSON::Document)

    O documento editado .

Desde:

  • 2.1.0



75
76
77
78
79
80
81
82
83
84
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 75

def editado(command_name, documento)
  Método documento se %w[1 true sim].incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.downcase)

  se (respond_to?(:started_event) && started_event.sensível) ||
     sensível?(command_name: command_name, Documento: documento)
    BSON::Documento.Novo
  mais
    documento
  end
end

#sensível?(command_name:, documento:) ➤ true | false

Verifique se o comando é sensível em termos de especificação de monitoramento de comando. Um comando é detectado como sensível se estiver na lista ou se for um comando hello/ legado hello e a autenticação especulativa estiver habilitada.

Parâmetros:

  • command_name (string, símbolo)

    O nome do comando.

  • documento (BSON::Document)

    O documento.

Retorna:

  • (verdadeiro | falso)

    Se o comando é sensível.

Desde:

  • 2.1.0



49
50
51
52
53
54
55
56
57
58
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 49

def sensível?(command_name:, Documento:)
  Método true se redacted_commands.incluir?(command_name.to_s)

  # De acordo com a especificação do Monitoramento de Comando, para comandos de olá/olá legado
  # quando speculativeAuthenticate está presente, seus comandos E respostas
  # DEVE ser eliminado dos eventos.
  # Consulte https://github.com/mongodb/specifications/blob/master/source/command-logging-and-monitoring/command-logging-and-monitoring.md#security
  %w[olá isMaster isMaster].incluir?(command_name.to_s) &&
    !!documento['speculativeAuthenticate']
end