모듈: Mongo::Mongoing::Event::Secure

포함 항목:
CommandFailed, CommandStarted, CommandSucceeded, Protocol::Msg, Protocol::Query
다음에 정의됨:
build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb

개요

명령 및 응답에서 민감한 정보를 삭제하는 동작을 제공합니다.

이후:

  • 2.1.0

상수 요약 접기

REDACTED_COMMANDS =

보안을 위해 데이터가 수정된 명령 목록입니다.

이후:

  • 2.1.0

[
  '인증',
  'saslStart',
  'saslContinue',
  'getnonce',
  'createUser',
  'updateUser',
  'copydbgetnonce',
  'copydbsaslstart',
  'copydb'
].동결

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#Compression_allowed?(command_name) ⇒ true, false

지정된 명령 메시지에 대해 압축이 허용됩니까?

예시:

특정 명령에 압축이 허용되는지 확인합니다.

secure.compression_allowed?(selector)

매개변수:

  • command_name (string, 기호)

    명령 이름입니다.

반환합니다:

  • (true, false)

    압축을 사용할 수 있는지 여부입니다.

이후:

  • 2.5.0



106
107
108
# 파일 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', 줄 106

def Compression_allowed?(command_name)
  @compression_allowed ||= !REDACTED_COMMANDS.포함?(command_name.to_s)
end

#redacted(command_name, document) ⇒ BSON::Document

다음과 같은 경우 문서에서 보안 정보를 삭제합니다.

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

예시:

수정된 문서 를 가져옵니다.

secure.redacted(command_name, document)

매개변수:

  • command_name (string, 기호)

    명령 이름입니다.

  • 문서 (BSON::Document)

    문서입니다.

반환합니다:

  • (BSON::Document)

    수정된 문서 입니다.

이후:

  • 2.1.0



83
84
85
86
87
88
89
90
91
92
93
# 파일 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', 줄 83

def 편집됨(command_name, 문서)
  만약 %w(1 true ).포함?(ENV['MONGO_RUBY_DRIVER_UNREDACT_EVENTS']&.downcase)
    문서
  elsif response_to?(:started_event) && started_event.민감한
    반환 BSON::문서.신규
  elsif 민감한?(command_name: command_name, 문서: 문서)
    BSON::문서.신규
  other
    문서
  end
end

#민감한?(command_name:, 문서:) ⇒ true | false

명령 모니터링 사양 측면에서 명령이 민감한지 확인합니다. 명령이 목록에 있거나 hello/legacy hello 명령인 경우 민감한 명령으로 감지되며 추측 인증 이 활성화됩니다.

매개변수:

  • command_name (string, 기호)

    명령 이름입니다.

  • 문서 (BSON::Document)

    문서입니다.

반환합니다:

  • (true | false)

    명령이 민감한지 여부입니다.

이후:

  • 2.1.0



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 파일 'build/ruby-driver-v2.19/lib/mongo/monitoring/event/secure.rb', 줄 52

def 민감한?(command_name:, 문서:)
  만약 REDACTED_COMMANDS.포함?(command_name.to_s)
    true
  elsif %w(hello isMaster isMaster).포함?(command_name.to_s) &&
    문서['speculativeAuthenticate']
    then
    # hello/legacy hello 명령의 경우 명령 모니터링 사양에 따름
    # speculativeAuthenticate가 있는 경우 해당 명령과 응답
    # 이벤트에서 삭제해야 합니다.
    # https://github.com/mongodb/specations/lob/master/source/command-monitoring/command-monitoring.rst#security를 참조하세요.
    true
  other
    거짓
  end
end