Clase de cifrado - AWS Glue

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.