Classe: Mongo::Crypt::KMS::Credentials Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
lib/mongo/crypt/KMS/credentials.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

O objeto Credenciais KMS contém credenciais para usar provedores KMS.

Colapsode resumo constante

ON_DEMAND_PROVIDERS =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Tipos de provedor KMS que oferecem suporte à recuperação de credenciais sob demanda.

%w[AWS GCP Azure].congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(kms_providers) ➤ Credenciais

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Observação:

Pode haver mais de um fornecedor de KMS especificado.

Cria um objeto de credenciais KMS a partir de um hash de parâmetros.

Parâmetros:

  • kms_providers (Hash)

    Um hash que contém credenciais para provedores KMS. As chaves podem ser tipos de provedor (:aws, :local, etc.) ou identificadores de provedor nomeados ("aws:name1", "local:name2", etc.). Os valores são hashes de credenciais para o tipo de provedor correspondente.

Aumenta:

  • (ArgumentError)

    Se as opções necessárias estiverem ausentes ou formatadas incorretamente.



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 40

def inicializar(kms_providers)
  aumentar ArgumentError.Novo('As opções dos fornecedores de KMS não devem ser nulas') se kms_providers.nada?

  @credentials_map = {}

  kms_providers.cada fazer |identificador, opciona|
    identifier_str = identificador.to_s
    provider_type = KMS.provider_base_type(identifier_str)

    credenciais = caso provider_type
            quando 'aws' então AWS::Credenciais.Novo(opciona)
            quando 'azure' então Azure::Credenciais.Novo(opciona)
            quando 'gcp' então GCP::Credenciais.Novo(opciona)
            quando 'kmip' então KMIP::Credenciais.Novo(opciona)
            quando 'local' então Local::Credenciais.Novo(opciona)
            mais
              aumentar ArgumentError.Novo(
                'As opções dos provedores KMS devem ter uma das seguintes chaves: ' \
                ':aws, :azure, :gcp, :kmip, :local'
              )
            end

    @credentials_map[identifier_str] = creds
  end

  return unless @credentials_map.empty?

  raise ArgumentError.new(
    'As opções dos provedores KMS devem ter uma das seguintes chaves: ' \
    ':aws, :azure, :gcp, :kmip, :local'
  )
end

Detalhes do atributo da instância

#credentials_mapObjeto (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.



27
28
29
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 27

def credentials_map
  @credentials_map
end

Detalhes do método de instância

#any_on_demand?Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna true se qualquer provedor configurado oferecer suporte à recuperação de credenciais sob demanda e tiver sido configurado com credenciais vazias.

Retorna:

  • (Booleano)


102
103
104
105
106
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 102

def any_on_demand?
  @credentials_map.algum? fazer |identificador, credenciais|
    ON_DEMAND_PROVIDERS.incluir?(KMS.provider_base_type(identificador)) && credenciais.vazio?
  end
end

#Amazon Web ServicesCredenciais::Amazon Web Services | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna credenciais do Amazon Web Services KMS (somente provedor não nomeado).

Retorna:

  • (Credenciais::AWS | nil)

    Credenciais do Amazon Web Services KMS (somente provedor não nomeado).



74
75
76
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 74

def AWS
  @credentials_map['aws']
end

#azureCredenciais::Azure | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna credenciais do Azure KMS (somente provedor não nomeado).

Retorna:

  • (Credenciais::Azure | nil)

    Credenciais do Azure KMS (somente provedor não nomeado).



79
80
81
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 79

def Azure
  @credentials_map['azure']
end

#gcpCredenciais::GCP | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna credenciais GCP KMS (somente provedor não nomeado).

Retorna:

  • (Credenciais::GCP | nil)

    Credenciais do GCP KMS (somente provedor não nomeado).



84
85
86
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 84

def GCP
  @credentials_map['gcp']
end

#kmipCredenciais::KMIP | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna credenciais KMIP KMS (somente provedor não nomeado).

Retorna:

  • (Credenciais::KMIP | nil)

    Credenciais KMIP KMS (somente provedor não nomeado).



89
90
91
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 89

def KMIP
  @credentials_map['kmip']
end

#localCredenciais::Local | nada

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna credenciais locais do KMS (somente provedor não nomeado).

Retorna:

  • (Credenciais::Local | nil)

    Credenciais KMS locais (somente provedor não nomeado).



94
95
96
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 94

def Local
  @credentials_map['local']
end

#to_document ➤ BSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Converta o objeto de credenciais em um documento BSON no formato libmongocrypt.

Retorna:

  • (BSON::Document)

    Credenciais como documento BSON.



111
112
113
114
115
116
117
# Arquivo 'lib/mongo/crypt/KMS/credentials.rb', linha 111

def to_document
  BSON::Documento.Novo.toque fazer |BSON|
    @credentials_map.cada fazer |identificador, credenciais|
      BSON[identificador] = credenciais.to_document
    end
  end
end