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

Incluído em:
CommandFailed, CommandStarted, CommandSucceeded, Protocol::Msg, Protocol::Query
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



101
102
103
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 101

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



79
80
81
82
83
84
85
86
87
88
89
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 79

def editado(command_name, documento)
  se %w[1 true sim].incluir?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.downcase)
    documento
  elsif respond_to?(:started_event) && started_event.sensível
    BSON::Documento.Novo
  elsif 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
59
60
61
62
# File 'lib/mongo/monitoring/ evento/secure.rb', linha 49

def sensível?(command_name:, Documento:)
  se redacted_commands.incluir?(command_name.to_s)
    true
  elsif %w[olá isMaster isMaster].incluir?(command_name.to_s) &&
        documento['speculativeAuthenticate']
    # 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
    true
  mais
    false
  end
end