Как зашифровать столбец в фрейме данных Pandas / Spark с помощью AWS KMS - PullRequest
1 голос
/ 03 июня 2019

Я хочу зашифровать значения в одном столбце моего фрейма данных панд (или py / spark), например взять столбец mobno в следующем фрейме данных, зашифровать его и поместить результат в столбец encrypted_value:

encrypted-dataframe

Я хочу использовать ключ шифрования AWS KSM. У меня вопрос: какой самый элегантный способ этого добиться?

Я подумываю об использовании UDF, который вызовет клиент KMS для boto3. Что-то вроде:

@udf
def encrypt(plaintext):
  response = kms_client.encrypt(
    KeyId=aws_kms_key_id,
    Plaintext=plaintext
  )
  ciphertext = response['CiphertextBlob']
  return ciphertext

и затем применить этот udf ко всему столбцу.

Но я не совсем уверен, что это правильный путь. Это связано с тем, что я новичок в шифровании - во-первых, я даже не знаю, эта функция kms_client_encrypt предназначена для шифрования значений (из столбцов) или для манипулирования ключами. Возможно, лучший способ - получить ключ, а затем использовать некоторую библиотеку шифрования python (например, hashlib).

Я хотел бы получить некоторые разъяснения по поводу процесса шифрования, а также порекомендовать, каков наилучший подход к шифрованию столбцов.

...