Я хочу зашифровать значения в одном столбце моего фрейма данных панд (или py / spark), например взять столбец mobno
в следующем фрейме данных, зашифровать его и поместить результат в столбец encrypted_value
:
Я хочу использовать ключ шифрования 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
).
Я хотел бы получить некоторые разъяснения по поводу процесса шифрования, а также порекомендовать, каков наилучший подход к шифрованию столбцов.