Clase de cifrado
La transformación Encrypt
cifra las columnas de origen mediante la clave de AWS Key Management Service. La transformación Encrypt
puede cifrar hasta 128 MiB por celda. Intentará conservar el formato al descifrarlo. Para conservar el tipo de datos, los metadatos del tipo de datos deben serializarse a menos de 1 KB. De lo contrario, debe establecer el parámetro preserve_data_type
en “false”. Los metadatos del tipo de datos se almacenarán en texto plano en el contexto de cifrado.
Ejemplo
from pyspark.context import SparkContext from pyspark.sql import SparkSession from awsgluedi.transforms import * kms = "${KMS}" sc = SparkContext() spark = SparkSession(sc) input_df = spark.createDataFrame( [ (1, "1234560000"), (2, "1234560001"), (3, "1234560002"), (4, "1234560003"), (5, "1234560004"), (6, "1234560005"), (7, "1234560006"), (8, "1234560007"), (9, "1234560008"), (10, "1234560009"), ], ["id", "phone"], ) try: df_encrypt = pii.Encrypt.apply( data_frame=input_df, spark_context=sc, source_columns=["phone"], kms_key_arn=kms ) except: print("Unexpected Error happened ") raise
Salida
El resultado será un elemento DataFrame de PySpark con la columna `id` original y una columna adicional que contendrá los valores cifrados de la columna `phone`.
``` +---+------------+-------------------------+ | id| phone | phone_encrypted | +---+------------+-------------------------+ | 1| 1234560000| EncryptedData1234...abc | | 2| 1234560001| EncryptedData5678...def | | 3| 1234560002| EncryptedData9012...ghi | | 4| 1234560003| EncryptedData3456...jkl | | 5| 1234560004| EncryptedData7890...mno | | 6| 1234560005| EncryptedData1234...pqr | | 7| 1234560006| EncryptedData5678...stu | | 8| 1234560007| EncryptedData9012...vwx | | 9| 1234560008| EncryptedData3456...yz0 | | 10| 1234560009| EncryptedData7890...123 | +---+------------+-------------------------+ ```
La transformación Encrypt
toma las `source_columns` como `["phone"]` y `kms_key_arn` como el valor de la variable de entorno `${KMS}`. La transformación cifra los valores de la columna `phone` mediante la clave de KMS especificada. El elemento DataFrame `df_encrypt` resultante contiene la columna `id` original, la columna `phone` original y una columna adicional denominada `phone_encrypted` que contiene los valores cifrados de la columna `phone`.
Métodos
__call__(spark_context, data_frame, source_columns, kms_key_arn, entity_type_filter=None, preserve_data_type=None)
La transformación Encrypt
cifra las columnas de origen mediante la clave de AWS Key Management Service.
-
source_columns
: matriz de columnas existentes. -
kms_key_arn
: el ARN de la clave de AWS Key Management Service que se utilizará para cifrar las columnas de origen. -
entity_type_filter
: matriz opcional de tipos de entidades. Se puede usar para cifrar solo la PII detectada en la columna de texto libre. -
preserve_data_type
: booleano opcional. El valor predeterminado es true (verdadero). Si es “false”, el tipo de datos no se almacenará.
apply(cls, *args, **kwargs)
Heredado de GlueTransform
apply.
name(cls)
Heredado de GlueTransform
name.
describeArgs(cls)
Heredado de GlueTransform
describeArgs.
describeReturn(cls)
Heredado de GlueTransform
describeReturn.
describeTransform(cls)
Heredado de GlueTransform
describeTransform.
describeErrors(cls)
Heredado de GlueTransform
describeErrors.
describe(cls)
Heredado de GlueTransform
describe.