모듈: Mongoid::Tasks::Encryption

확장자:
암호화 (Encryption)
포함 항목:
암호화 (Encryption)
다음에 정의됨:
lib/mongoid/tasks/ 암호화.rb

개요

이 모듈에는 데이터 암호화 를 위한 헬퍼 메서드가 포함되어 있습니다.

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#create_data_key(client_name: nil, kms_provider_name: nil, key_alt_name: nil) ⇒ 해시

클라이언트 구성의 auto_encryption_options를 사용하여 지정된 KMS 제공자 에 대한 데이터 암호화 키 를 생성합니다.

매개변수:

  • kms_provider_name (string | nil) (기본값: nil)

    사용할 KMS 제공자 의 이름입니다. 제공하지 않으면 클라이언트의 auto_encryption_options에 있는 첫 번째 제공자 가 사용됩니다.

  • client_name (string | nil) (기본값: nil)

    auto_encryption_options를 가져올 클라이언트 의 이름입니다. 지정하지 않으면 기본값 클라이언트 가 사용됩니다.

  • key_alt_name (string | nil) (기본값: nil)

    키의 대체 이름입니다.

반환합니다:

  • (해시)

    키 ID 는 :key_id, KMS 제공자 이름은 :kms_provider, 키 볼트 네임스페이스 는 :key_vault_namespace로 포함하는 해시입니다.



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 파일 'lib/mongoid/tasks/ 암호화.rb', 줄 24

def create_data_key(client_name: nil, kms_provider_name: nil, key_alt_name: nil)
  kms_provider_name, kms_providers, key_Vault_namespace = prepare_arguments(
    kms_provider_name,
    client_name
  )
  key_Vault_client = 몽고이드::클라이언트.기본.(database: key_Vault_namespace.split('.').first)
  client_encryption = mongo::ClientEncryption.신규(
    key_Vault_client,
    key_vault_namespace: key_Vault_namespace,
    kms_providers: kms_providers
  )
  client_encryption_opts = {}. do |opts|
    opts[:key_alt_names] = [key_alt_name] 만약 key_alt_name
  end
  data_key_id = client_encryption.create_data_key(kms_provider_name, client_encryption_opts)
  {
    key_id: Base64.strict_encode64(data_key_id.데이터),
    kms_provider: kms_provider_name,
    key_vault_namespace: key_Vault_namespace,
    key_alt_name: key_alt_name
  }.컴팩트
end