类:Mongo::Crypt::KMS::Credentials Private

继承:
对象
  • 对象
显示全部
定义于:
lib/ Mongo/crypt/ KMS/凭证.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

KMS 凭证对象包含使用 KMS 提供程序的凭证。

常量摘要折叠

ON_DEMAND_PROVIDERS =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

支持按需凭证检索的 KMS 提供商类型。

%w[AWS GCP AZURE].冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#initialize ( kms_providers ) ⇒ 档案

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

注意:

可能指定了多个 KMS 提供商。

从参数哈希中创建 KMS 凭证对象。

参数:

  • kms_providers (哈希)

    包含 KMS 提供商凭证的哈希值。密钥可以是提供商类型(:aws、:local 等)或命名提供商标识符("aws:name1"、"local:name2" 等)。值是对应提供商类型凭证的哈希值。

引发:

  • ( ArgumentError )

    如果必需的选项丢失或格式不正确。



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
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 40

def 初始化(kms_providers)
  提高 ArgumentError.new('KMS 提供商 options must not be nil') if kms_providers.nil?

  @credentials_map = {}

  kms_providers. do |标识符, opts|
    identifier_str = 标识符.to_s
    provider_type = KMS.provider_base_type(identifier_str)

    creds = 案例 provider_type
            when 'aws' then AWS::凭证.new(opts)
            when 'azure' then AZURE::凭证.new(opts)
            when 'gcp' then GCP::凭证.new(opts)
            when ' kmip ' then KMIP::凭证.new(opts)
            when ' local ' then local::凭证.new(opts)
            else
              提高 ArgumentError.new(
                'KMS 提供商选项必须具有以下键之一:' \
                ':aws, :azure, :gcp, :kmip, :local'
              )
            end

    @credentials_map[identifier_str] = creds
  end

  return unless @credentials_map.empty?raise ArgumentError.new('KMS 提供商选项必须具有以下键之一:' \
    ':aws, :azure, :gcp, :kmip, :local'
  )
end

实例属性详细信息

#credentials_map对象 (只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



27
28
29
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 27

def credentials_map
  @credentials_map
end

实例方法详细信息

#any_on_demand?Boolean

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

如果任何配置的提供商支持按需凭证检索并且已配置了空凭证,则返回 true。

返回:

  • 布尔值


102
103
104
105
106
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 102

def any_on_demand?
  @credentials_map.任何? do |标识符, creds|
    ON_DEMAND_PROVIDERS.包括?(KMS.provider_base_type(标识符)) && creds.空?
  end
end

#AWS凭证::AWS | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 Amazon Web Services KMS 凭证(仅适用于未命名的提供商)。

返回:

  • ( Credentials::AWS | nil )

    Amazon Web Services KMS 凭证(仅适用于未命名提供商)。



74
75
76
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 74

def AWS
  @credentials_map['aws']
end

#Azure凭证::Azure | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 Azure KMS 凭证(仅限未命名提供商)。

返回:

  • ( Credentials::Azure | nil )

    Azure KMS 凭证(仅限未命名提供商)。



79
80
81
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 79

def AZURE
  @credentials_map['azure']
end

#gcp凭证::GCP | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 GCP KMS 凭证(仅限未命名提供商)。

返回:

  • ( Credentials::GCP | nil )

    GCP KMS 凭证(仅限未命名提供商)。



84
85
86
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 84

def GCP
  @credentials_map['gcp']
end

#kmip凭证::KMIP | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回 KMIP KMS 凭证(仅限未命名提供商)。

返回:

  • ( Credentials::KMIP | nil )

    KMIP KMS 凭证(仅限未命名提供商)。



89
90
91
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 89

def KMIP
  @credentials_map[' kmip ']
end

#local凭证::Local | nil

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

返回本地 KMS 凭证(仅限未命名提供商)。

返回:

  • ( Credentials::Local | nil )

    本地 KMS 凭证(仅未命名提供商)。



94
95
96
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 94

def local
  @credentials_map[' local ']
end

# to_documentBSON::Document

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将凭证对象转换为 libmongocrypt 格式的BSON文档。

返回:

  • ( BSON::Document )

    BSON 文档形式的档案。



111
112
113
114
115
116
117
# File 'lib/ Mongo/crypt/ KMS/ 凭证.rb', line 111

def to_document
  BSON::文档.new.点击 do |bson|
    @credentials_map. do |标识符, creds|
      bson[标识符] = creds.to_document
    end
  end
end