

# Tutoriales de S3 Object Lambda
<a name="olap-tutorials"></a>

**nota**  
A partir del 7 de noviembre de 2025, S3 Object Lambda solo estará disponible para los clientes actuales que utilizan el servicio actualmente, así como para socios seleccionados de la red de socios de AWS (APN). Para obtener más información sobre capacidades similares a las de S3 Object Lambda, haga clic aquí: [Cambio de disponibilidad de Amazon S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html).

Los siguientes tutoriales presentan procedimientos integrales completos para algunas tareas comunes de S3 Object Lambda.

Con S3 Object Lambda, puede agregar su propio código para procesar los datos recuperados de S3 antes de devolverlos a una aplicación. Cada uno de los siguientes tutoriales modificará los datos a medida que se recuperen de Amazon S3, sin cambiar el objeto existente ni mantener varias copias de los datos. El primer tutorial explica cómo añadir una función de AWS Lambda a una solicitud GET de S3 para modificar un objeto recuperado de S3. El segundo tutorial muestra cómo utilizar una función de Lambda precompilada con la tecnología de Amazon Comprehend para proteger la información de identificación personal (PII) recuperada de S3 antes de devolverla a una aplicación. El tercer tutorial utiliza S3 Object Lambda para añadir una marca de agua a una imagen a medida que se recupera de Amazon S3.
+ [Tutorial: transformación de datos para su aplicación con S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md)
+ [Tutorial: detección y redacción de datos de PII con S3 Object Lambda y Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md)
+ [Tutorial: Uso de S3 Object Lambda para agregar marcas de agua dinámicas a las imágenes a medida que se recuperan](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/olap-tutorials.html)

# Tutorial: transformación de datos para su aplicación con S3 Object Lambda
<a name="tutorial-s3-object-lambda-uppercase"></a>

**nota**  
A partir del 7 de noviembre de 2025, S3 Object Lambda solo estará disponible para los clientes actuales que utilizan el servicio actualmente, así como para socios seleccionados de la red de socios de AWS (APN). Para obtener más información sobre capacidades similares a las de S3 Object Lambda, haga clic aquí: [Cambio de disponibilidad de Amazon S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html).

Cuando almacena datos en Amazon S3, puede compartirlos fácilmente para utilizarlos en varias aplicaciones. Sin embargo, cada aplicación puede tener requisitos únicos de formato de datos y es posible que necesite modificar o procesar sus datos para un caso de uso específico. Por ejemplo, un conjunto de datos creado por una aplicación de comercio electrónico puede incluir información de identificación personal (PII). Cuando se procesan los mismos datos para análisis, esta PII no es necesaria y debe ser borrada. Sin embargo, si se utiliza el mismo conjunto de datos para una campaña de marketing, es posible que deba enriquecer los datos con detalles adicionales, como información de la base de datos de fidelización del cliente.

Con [S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda), puede agregar su propio código para procesar los datos recuperados de S3 antes de devolverlos a una aplicación. En concreto, puede configurar una función AWS Lambda y asociarla a un punto de acceso de S3 Object Lambda. Cuando una aplicación envía [solicitudes GET de S3 estándar](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) a través del punto de acceso de S3 Object Lambda, se invoca la función de Lambda especificada para procesar cualquier dato recuperado de un origen de datos subyacente a través del punto de acceso de S3 compatible. Luego, el punto de acceso de S3 Object Lambda devuelve el resultado transformado a la aplicación. Puede crear y ejecutar sus propias funciones Lambda personalizadas, adaptando la transformación de datos de S3 Object Lambda a su caso de uso específico, todo ello sin necesidad de cambios en suAplicaciones de.

![\[Diagrama de flujo de trabajo de S3 Object Lambda.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/ol-example-image-global.png)


**Objetivo**  
En este aprendizaje, aprenderá a agregar código personalizado a las solicitudes GET S3 estándar para modificar el objeto solicitado recuperado de S3 de modo que el objeto se ajuste a las necesidades del cliente o aplicación solicitante. Específicamente, aprenderá cómo transformar todo el texto del objeto original almacenado en un bucket de S3 a mayúsculas a través de S3 Object Lambda. 

**nota**  
En este tutorial, se usa código Python para transformar los datos. Para ver ejemplos sobre cómo usar otros AWS SDK, consulte [Transformación de datos para su aplicación con S3 Object Lambda](https://docs.aws.amazon.com/code-library/latest/ug/lambda_example_cross_ServerlessS3DataTransformation_section.html) en la biblioteca de ejemplos de código de AWS SDK. 

**Topics**
+ [Requisitos previos](#ol-upper-prerequisites)
+ [Paso 1: Crear un bucket de S3](#ol-upper-step1)
+ [Paso 2: cargar un archivo al bucket de S3.](#ol-upper-step2)
+ [Paso 3: Crear un punto de acceso de S3](#ol-upper-step3)
+ [Paso 4: Crear una función de Lambda](#ol-upper-step4)
+ [Paso 5: Configurar una política de IAM para el rol de ejecución de su función de Lambda](#ol-upper-step5)
+ [Paso 6: Crear un punto de acceso de S3 Object Lambda](#ol-upper-step6)
+ [Paso 7: Ver los datos transformados](#ol-upper-step7)
+ [Paso 8: Eliminación](#ol-upper-step8)
+ [Siguientes pasos](#ol-upper-next-steps)

## Requisitos previos
<a name="ol-upper-prerequisites"></a>

Antes de empezar este tutorial, debe tener una Cuenta de AWS en la que puede iniciar sesión como usuario de AWS Identity and Access Management (IAM) con los permisos correctos. También debe instalar la versión 3.8 o posterior de Python.

**Topics**
+ [Crear un usuario de IAM con permisos en la Cuenta de AWS (consola)](#ol-upper-prerequisites-account)
+ [Instale Python 3.8 o posterior en su equipo local](#ol-upper-prerequisites-python)

### Crear un usuario de IAM con permisos en la Cuenta de AWS (consola)
<a name="ol-upper-prerequisites-account"></a>

Puede crear un usuario de IAM para el tutorial. Para completar este tutorial, el usuario de IAM debe adjuntar las siguientes políticas de IAM para acceder a los recursos de AWS y realizar acciones específicas. Para obtener más información acerca de cómo crear un usuario de IAM, consulte [Creación del primer grupo de usuarios y administradores de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *guía del usuario de IAM*.

El usuario de IAM requiere las siguientes directivas:
+ [AmazonS3FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor): otorga permisos a todas las acciones de Amazon S3, incluidos los permisos para crear y utilizar un punto de acceso de Object Lambda. 
+ [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor)— Otorga permisos a todas las acciones de Lambda. 
+ [IAMFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor)— Otorga permisos a todas las acciones de IAM. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor): concede permisos para leer toda la información de acceso proporcionada por IAM Access Analyzer. 
+ [CloudWatchLogsFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/CloudWatchLogsFullAccess$jsonEditor): concede acceso total a Registros de CloudWatch. 

**nota**  
Para simplificar, este tutorial crea y utiliza un usuario de IAM. Después de completar este tutorial, recuerde [Eliminación del rol de IAM](#ol-upper-step8-delete-user). Para uso en producción, le recomendamos que siga las [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*. Una práctica recomendada exige que los usuarios humanos utilicen la federación con un proveedor de identidades para acceder a AWS con credenciales temporales. Otra práctica recomendada es exigir a las cargas de trabajo que utilicen credenciales temporales con roles de IAM para acceder a AWS. Para obtener información sobre el uso de AWS IAM Identity Center para crear usuarios con credenciales temporales, consulte [Introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del usuario de AWS IAM Identity Center*.   
Este tutorial también utiliza políticas administradas de AWS de acceso completo. Para uso en producción, le recomendamos que otorgue solo los permisos mínimos necesarios para su caso de uso, de acuerdo con las [prácticas recomendadas de seguridad](security-best-practices.md#security-best-practices-prevent).

### Instale Python 3.8 o posterior en su equipo local
<a name="ol-upper-prerequisites-python"></a>

Utilice el siguiente procedimiento para instalar Python 3.8 o posterior en su equipo local. Para obtener instrucciones de instalación, consulte la página [Downloading Python](https://wiki.python.org/moin/BeginnersGuide/Download) en la *Guía para principiantes* de Python.

1. Abra su terminal o shell local y ejecute el siguiente comando para determinar si Python ya está instalado y, en caso afirmativo, qué versión está instalada. 

   ```
   python --version
   ```

1. Si no dispone de Python 3.8 ni posterior, descargue el [Instalador oficial](https://www.python.org/downloads/) de Python 3.8 o posterior que sea adecuado para su máquina local. 

1. Ejecute el instalador haciendo doble clic en el archivo descargado y siga los pasos para completar la instalación. 

   Para **Usuarios de Windows**, elija **Agregar Python 3.X a PATH** en el asistente de instalación antes de elegir **Instalar ahora**. 

1. Reinicie el terminal cerrándolo y volviéndolo a abrirlo. 

1. Ejecute el siguiente comando para verificar que Python 3.8 o posterior se instaló correctamente. 

   Para **Usuarios de macOS**, ejecute este comando: 

   ```
   python3 --version
   ```

   Para **usuarios de Windows**, ejecute este comando: 

   ```
   python --version
   ```

1. Ejecute el siguiente comando para comprobar que el administrador de paquetes pip3 está instalado. Si ve un número de versión pip y python 3.8 o posterior en la respuesta del comando, eso significa que el gestor de paquetes pip3 se instaló correctamente.

   ```
   pip --version
   ```

## Paso 1: Crear un bucket de S3
<a name="ol-upper-step1"></a>

Cree un bucket para almacenar los datos originales que tiene previsto transformar. 

**nota**  
Los puntos de acceso se pueden adjuntar a otro origen de datos, como un volumen de Amazon FSx para OpenZFS. Sin embargo, este tutorial utiliza un punto de acceso compatible adjunto a un bucket de S3.

**Creación de un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. Elija **Crear bucket**. 

   Se abrirá la página **Crear bucket**.

1. En **Nombre de bucket**, escriba el nombre del bucket (por ejemplo: **tutorial-bucket**). 

   Para obtener más información acerca de las reglas de nomenclatura del bucket de Amazon S3, consulte [Reglas de nomenclatura de buckets de uso general](bucketnamingrules.md).

1. En **Región**, elija la Región de AWS en la que desea que se encuentre el bucket. 

   Para obtener más información acerca de bucket Region, consulte [Información general de los buckets de uso general](UsingBucket.md).

1. Para **Configuración de Block Public Access para este bucket**, conserve la configuración predeterminada (**Bloquear *todo *acceso público** está habilitado). 

   Le recomendamos que deje todas las configuraciones habilitadas a menos que sepa que necesita desactivar una o varias de ellas para su caso de uso, como alojar un sitio web público. Para obtener más información acerca del bloqueo del acceso público, consulte [Bloquear el acceso público a su almacenamiento de Amazon S3](access-control-block-public-access.md).

1. Mantenga la configuración restante establecida en los valores predeterminados. 

   (Opcional) Si desea configurar opciones de bucket adicionales para el caso de uso específico, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

1. Elija **Crear bucket**.

## Paso 2: cargar un archivo al bucket de S3.
<a name="ol-upper-step2"></a>

Cargue el archivo en un bucket de &S3;. Este archivo de texto contiene los datos originales que transformará a mayúsculas más adelante en este tutorial. 

Por ejemplo, puede cargar un archivo `tutorial.txt` que contiene el siguiente texto:

```
Amazon S3 Object Lambda Tutorial:
You can add your own code to process data retrieved from S3 before 
returning it to an application.
```

**Para cargar un archivo en un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el nombre del bucket que creó en el[Paso 1](#ol-upper-step1) (por ejemplo: **tutorial-bucket**) para cargar el archivo.

1. En la pestaña **Objetos** del bucket, elija **Cargar**.

1. En la página **Cargar**, en **Archivos y carpetas**, elija **Añadir archivos**.

1. Seleccione un archivo que cargar y luego seleccione **Abrir**. Por ejemplo, puede cargar el archivo de ejemplo `tutorial.txt` mencionado anteriormente.

1. Seleccione **Cargar**.

## Paso 3: Crear un punto de acceso de S3
<a name="ol-upper-step3"></a>

Para utilizar un punto de acceso de S3 Object Lambda para acceder y transformar los datos originales, debe crear un punto de acceso de S3 y asociarlo con el bucket de S3 que creó en el [Paso 1](#ol-upper-step1). El punto de acceso debe estar en la misma Región de AWS que los objetos que desea transformar.

Más adelante en este tutorial, utilizará este punto de acceso como punto de acceso de soporte para su punto de acceso de Object Lambda. 

**Para crear un punto de acceso**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Puntos de acceso**.

1. En la página de **Puntos de acceso**, elija **Crear punto de acceso**.

1. Introduzca el nombre que desee (por ejemplo: **tutorial-access-point**) para el punto de acceso en el campo **Nombre del punto de acceso**.

   Para obtener más información acerca de cómo nombrar los puntos de acceso, consulte [Reglas de nomenclatura para los puntos de acceso](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. En el campo **Origen de datos**, escriba el nombre del bucket que creó en el [Paso 1](#ol-upper-step1) (por ejemplo, **tutorial-bucket**). A continuación, asocie dicha política al bucket de S3. 

   (Opcional) Puede elegir **Examinar S3)** para explorar su cuenta y buscar buckets. Si elige **Examinar S3**, seleccione el bucket que le interese y seleccione **Elegir ruta** para rellenar el campo **Nombre del bucket** con el nombre del bucket en cuestión.

1. Para **Origen de la red**, elija **Internet**. 

   Para obtener más información acerca de los orígenes de red para los puntos de acceso, consulte [Crear puntos de acceso restringidos a una nube privada virtual](access-points-vpc.md).

1. Todas las configuraciones de bloqueo de acceso público están habilitadas de forma predeterminada para los puntos de acceso. Le recomendamos que deje habilitada **Block *all* public access** (Bloquear todo el acceso público).

   Para obtener más información, consulte [Administración del acceso público a los puntos de acceso para buckets de propósito general](access-points-bpa-settings.md).

1. En el resto de configuraciones de punto de acceso, mantenga la configuración predeterminada.

   (Opcional) Puede modificar la configuración del punto de acceso para admitir el caso de uso. En este tutorial, le recomendamos que mantenga la configuración predeterminada. 

   (Opcional) Si necesita administrar el acceso al punto de acceso, puede especificar una directiva de punto de acceso. Para obtener más información, consulte [Ejemplos de políticas de puntos de acceso](access-points-policies.md#access-points-policy-examples). 

1. Elija **Crear punto de acceso**.

## Paso 4: Crear una función de Lambda
<a name="ol-upper-step4"></a>

Para transformar los datos originales, cree una función de Lambda para utilizarla con el punto de acceso de S3 Object Lambda. 

**Topics**
+ [Escribir el código de función de Lambda y crear un paquete de implementación con un entorno virtual](#ol-upper-step4-write-lambda)
+ [Crear una función de Lambda con un rol de ejecución (consola)](#ol-upper-step4-create-function)
+ [Implemente su código de función de Lambda con archivos .zip y configure la función de Lambda (consola)](#ol-upper-step4-deploy-function)

### Escribir el código de función de Lambda y crear un paquete de implementación con un entorno virtual
<a name="ol-upper-step4-write-lambda"></a>

1. En el equipo local, cree una carpeta con el nombre de carpeta `object-lambda` para entorno virtual para utilizarlo más adelante en este tutorial.

1. En la carpeta `object-lambda`, cree un archivo con una función de Lambda que cambie todo el texto del objeto original a mayúsculas. Por ejemplo, puede utilizar la siguiente función escrita en Python. Guarde esta función en un archivo llamado `transform.py`. 

   ```
   import boto3
   import requests
   from botocore.config import Config
   
   # This function capitalizes all text in the original object
   def lambda_handler(event, context):
       object_context = event["getObjectContext"]
       # Get the presigned URL to fetch the requested original object 
       # from S3
       s3_url = object_context["inputS3Url"]
       # Extract the route and request token from the input context
       request_route = object_context["outputRoute"]
       request_token = object_context["outputToken"]
       
       # Get the original S3 object using the presigned URL
       response = requests.get(s3_url)
       original_object = response.content.decode("utf-8")
   
       # Transform all text in the original object to uppercase
       # You can replace it with your custom code based on your use case
       transformed_object = original_object.upper()
   
       # Write object back to S3 Object Lambda
       s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
       # The WriteGetObjectResponse API sends the transformed data
       # back to S3 Object Lambda and then to the user
       s3.write_get_object_response(
           Body=transformed_object,
           RequestRoute=request_route,
           RequestToken=request_token)
   
       # Exit the Lambda function: return the status code  
       return {'status_code': 200}
   ```
**nota**  
La función de Lambda de ejemplo anterior carga todo el objeto solicitado en la memoria antes de transformarlo y devolverlo al cliente. Alternativamente, puede transmitir el objeto desde S3 para evitar cargar todo el objeto en la memoria. Este enfoque puede resultar útil cuando se trabaja con objetos grandes. Para obtener más información acerca del streaming de respuestas con puntos de acceso Object Lambda, consulte los ejemplos de transmisión en [Trabajar con solicitudes `GetObject` en Lambda](olap-writing-lambda.md#olap-getobject-response).

   Cuando está escribiendo una función de Lambda para su uso con un punto de acceso de S3 Object Lambda, la función se basa en el contexto de evento de entrada que S3 Object Lambda proporciona a la función de Lambda. S3 Object Lambda proporciona contexto sobre la solicitud que se realiza en el evento pasado a Lambda. Contiene los parámetros que utiliza para crear la función de Lambda.

   Los campos utilizados para crear la función de Lambda anterior son los siguientes: 

   El campo de `getObjectContext` se refiere a los detalles de entrada y salida de las conexiones a Amazon S3 y S3 Object Lambda. Tiene los subcampos siguientes:
   + `inputS3Url`— URL prefirmada que la función de Lambda puede utilizar para descargar el objeto original desde el punto de acceso de soporte. Al utilizar una URL prefirmada, la función de Lambda no necesita tener permisos de lectura de Amazon S3 para recuperar el objeto original y solo puede acceder al objeto procesado por cada invocación.
   + `outputRoute` ‐ un token de enrutamiento que se agrega a la URL de S3 Object Lambda cuando la función de Lambda llama a `WriteGetObjectResponse`.
   + `outputToken`: un token utilizado por S3 Object Lambda para hacer coincidir el`WriteGetObjectResponse`con la persona que llama original al enviar de vuelta el objeto transformado.

   Para obtener más información acerca de todos los campos del contexto de evento, consulte [Formato y uso del contexto del evento](olap-event-context.md) y [Escritura de funciones de Lambda para puntos de acceso de S3 Object Lambda](olap-writing-lambda.md).

1. En el terminal local, introduzca el siguiente comando para instalar el paquete `virtualenv`:

   ```
   python -m pip install virtualenv
   ```

1. En su terminal local, abra el `object-lambda` que creó anteriormente y, a continuación, escriba el siguiente comando para crear e inicializar un entorno virtual denominado `venv`.

   ```
   python -m virtualenv venv
   ```

1. Para activar el entorno virtual, ingrese el siguiente comando para ejecutar el archivo `activate` desde la carpeta del entorno:

   Para **Usuarios de macOS**, ejecute este comando:

   ```
   source venv/bin/activate
   ```

   En **Windows**, ejecute este comando:

   ```
   .\venv\Scripts\activate
   ```

   El símbolo del sistema cambia para mostrar **(venv)** que indica que el entorno virtual está activo.

1. Para instalar las bibliotecas requeridas, ejecute los siguientes comandos línea por línea en el `venv` entorno virtual.

   Estos comandos instalan versiones actualizadas de las dependencias de su `lambda_handler` función de Lambda. Estas dependencias son AWS SDK para Python (Boto3) y el módulo de solicitudes.

   ```
   pip3 install boto3
   ```

   ```
   pip3 install requests
   ```

1. Para desactivar el entorno virtual, puede ejecutar el siguiente comando:

   ```
   deactivate
   ```

1. Para crear un paquete de implementación con las bibliotecas instaladas como un archivo `.zip` llamado `lambda.zip` en la raíz del directorio `object-lambda`, ejecute los siguientes comandos línea por línea en el terminal local.
**sugerencia**  
Es posible que sea necesario ajustar los siguientes comandos para que funcionen en su entorno concreto. Por ejemplo, una biblioteca puede aparecer en `site-packages` o `dist-packages`, y la primera carpeta podría ser `lib` o `lib64`. Además, la carpeta `python` puede tener un nombre con una versión de Python diferente. Puede utilizar el comando `pip show` para localizar un paquete específico.

   Para **Usuarios de macOS** ejecute estos comandos:

   ```
   cd venv/lib/python3.8/site-packages 
   ```

   ```
   zip -r ../../../../lambda.zip .
   ```

   Para **Usuarios de Windows** ejecute estos comandos:

   ```
   cd .\venv\Lib\site-packages\ 
   ```

   ```
   powershell Compress-Archive * ../../../lambda.zip
   ```

   El último comando guarda el paquete de implementación en la raíz del directorio `object-lambda`.

1. Agregue archivos de código de función `transform.py` a la raíz del paquete de implementación.

   Para **Usuarios de macOS** ejecute estos comandos:

   ```
   cd ../../../../ 
   ```

   ```
   zip -g lambda.zip transform.py
   ```

   Para **Usuarios de Windows** ejecute estos comandos: 

   ```
   cd ..\..\..\
   ```

   ```
   powershell Compress-Archive -update transform.py lambda.zip
   ```

   Cuando realice este paso, tendrá la siguiente estructura de directorio:

   ```
   lambda.zip$
     │ transform.py
     │ __pycache__
     | boto3/
     │ certifi/
     │ pip/
     │ requests/
     ...
   ```

### Crear una función de Lambda con un rol de ejecución (consola)
<a name="ol-upper-step4-create-function"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

   

1. En el panel de navegación izquierdo, elija **Funciones**.

1. Elija **Create function** (Crear función).

1. Elija **Crear desde cero**.

1. Bajo **Información básica**, haga lo siguiente:

   1. En **Nombre de la función**, introduzca **tutorial-object-lambda-function**.

   1. En **Tiempo de ejecución**, elija **Python 3.8** o una versión posterior.

1. Expanda la sección **Cambiar el rol de ejecución predeterminado**. En **Rol de ejecución**, elija **Crear un nuevo rol con permisos básicos de Lambda**.

   En el [Paso 5](#ol-upper-step5) más adelante en este tutorial, adjunte el archivo**AmazonS3ObjectLambdaExecutionRolePolicy** a este rol de ejecución de la función de Lambda. 

1. Mantenga la configuración restante establecida en los valores predeterminados.

1. Seleccione **Creación de función**.

### Implemente su código de función de Lambda con archivos .zip y configure la función de Lambda (consola)
<a name="ol-upper-step4-deploy-function"></a>

1. En la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), elija **Funciones** En el panel de navegación izquierdo. 

1. Elija la función de Lambda que creó anteriormente (por ejemplo, **tutorial-object-lambda-function**). 

1. En la página de detalles de la función de Lambda, elija la pestaña **Code (Código)**. En el sector **Code Source (Código fuente)**, seleccione **Upload from (Cargar desde)** y luego **.zip file (archivo .zip)**.

1. Seleccione **Upload (Cargar)** para seleccionar el archivo `.zip` local.

1. Elija el archivo `lambda.zip` que creó anteriormente y, a continuación, elija **Open (Abrir)**.

1. Seleccione **Save (Guardar)**.

1. En la sección **Runtime settings (Configuración de tiempo de ejecución)**, elija **Edit (Editar)**. 

1. En la página **Edit runtime settings (Editar la configuración de tiempo de ejecución)**, confirme que **Runtime (Tiempo de ejecución):** toma el valor **Python 3.8** o una versión posterior. 

1. Para decirle al tiempo de ejecución de Lambda qué método de controlador en su código de función de Lambda invocar, ingrese **transform.lambda\$1handler**: para**Handler (Controlador):**.

   Al configurar una función en Python, el valor de la configuración del controlador es el nombre del archivo y el nombre del módulo del controlador, separados por un punto. Por ejemplo, `transform.lambda_handler` llama al método `lambda_handler` definido en `transform.py`.

1. Seleccione **Save**.

1. (Opcional) En la página de detalles de la función de Lambda, seleccione la pestaña **Configuración**. En el panel de navegación izquierdo, elija **Configuración general** y, a continuación, elija **Editar**. En el campo **Tiempo de espera**, introduzca **1** min **0** s. Mantenga la configuración restante establecida en los valores predeterminados y elija **Guardar**.

   **Tiempo de espera**: período durante el cual Lambda permite que se ejecute una función antes de pararla. El valor predeterminado es de 3 segundos. La duración máxima de una función de Lambda utilizada por S3 Object Lambda es de 60 segundos. Los precios se basan en la cantidad de memoria configurada y en la cantidad de tiempo durante la que se ejecuta el código.

## Paso 5: Configurar una política de IAM para el rol de ejecución de su función de Lambda
<a name="ol-upper-step5"></a>

Para habilitar la función de Lambda para proporcionar datos personalizados y encabezados de respuesta a `GetObject`, el rol de ejecución de la función de Lambda debe tener permisos de IAM para llamar a la API de `WriteGetObjectResponse`.

**Para asociar una política de IAM a su función de Lambda**



1. En la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), elija **Functions (Funciones)** en el panel de navegación izquierdo. 

1. Elija la función que creó en el [paso 4](#ol-upper-step4) (por ejemplo: **tutorial-object-lambda-function**).

1. En la página de detalles de su función de Lambda, elija la opción **Configuration (Configuración)** y, a continuación, elija **Permissions (Permisos)** en el panel de navegación izquierdo. 

1. En **Execution role (Rol de ejecución)**, elija el enlace del **Role name (Nombre del rol)**. Abra la consola de IAM. 

1. En la página **Summary (Resumen)** de la consola de IAM para el rol de ejecución de la función de Lambda, elija la pestaña **Permissions** (Permisos). A continuación, en el menú **Add Permissions** (Agregar permisos), elija **Attach policies** (Asociar políticas).

1. En la página **Attach Permissions (Asociar permisos)**, introduzca **AmazonS3ObjectLambdaExecutionRolePolicy** en el campo de búsqueda para filtrar la lista de políticas. Active la casilla de verificación que hay junto al nombre del cuadro de diálogo**AmazonS3ObjectLambdaExecutionRolePolicy**política. 

1. Seleccione **Asociar políticas**. 

## Paso 6: Crear un punto de acceso de S3 Object Lambda
<a name="ol-upper-step6"></a>

Un punto de acceso de S3 Object Lambda proporciona la flexibilidad para invocar una función de Lambda directamente desde una solicitud GET S3 para que la función pueda procesar datos recuperados de un punto de acceso de S3. Al crear y configurar un punto de acceso de S3 Object Lambda, debe especificar la función de Lambda para invocar y proporcionar el contexto de evento en formato JSON como parámetros personalizados para utilizar Lambda.

**Para crear un punto de acceso de S3 Object Lambda**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación del lado izquierdo de la consola, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Object Lambda Access Points (Puntos de acceso Object Lambda)**, elija **Create Object Lambda Access Point (Crear un punto de acceso de Object Lambda)**.

1. En **Nombre del punto de acceso del objeto Lambda**, introduzca el nombre que desea utilizar para el punto de acceso del objeto Lambda (por ejemplo: **tutorial-object-lambda-accesspoint**). 

1. Para **Supporting Access Point (Soporte de punto de acceso)**, introduzca o busque el punto de acceso estándar que ha creado en el [Paso 3](#ol-upper-step3)(por ejemplo: **tutorial-access-point**), y luego elija **Choose Supporting Access Point (Elegir soporte de punto de acceso)**. 

1. Para las **S3 APIs** (API de S3), para recuperar objetos del bucket de S3 para que la función de Lambda los procese, seleccione **GetObject**.

1. Para **Invoke Lambda function (Invocación de una función de Lambda)**, puede elegir una de las dos opciones siguientes. 
   + Seleccione **Elegir entre las funciones de la cuenta** y, a continuación, elija la función de Lambda que ha creado en el [Paso 4](#ol-upper-step4) (por ejemplo, **tutorial-object-lambda-function**) desde la lista desplegable de **Función de Lambda**.
   + Elegir **Enter ARN (Ingresar ARN)** y, a continuación, introduzca el nombre de recurso de Amazon (ARN) de la función de Lambda que ha creado en el [Paso 4](#ol-upper-step4).

1. Para **Lambda function version (Versión de función de Lambda)**, elija **\$1LATEST** (la última versión de la función de Lambda que ha creado en el [Paso 4](#ol-upper-step4)).

1. (Opcional) Si necesita su función de Lambda para reconocer y procesar solicitudes GET con encabezados de rango y número de pieza, seleccione **Lambda function supports requests using range (La función de Lambda admite solicitudes usando rango)** y **Lambda function supports requests using part numbers (La función de Lambda admite solicitudes usando números de pieza)**. De lo contrario, desactive estas dos casillas de verificación.

   Para obtener más información acerca de cómo utilizar números de rango o rango con S3 Object Lambda, consulte [Trabajar con encabezados Range y partNumber](range-get-olap.md).

1. (Opcional) En **Payload - *optional* (Carga - opcional)**, agregue texto JSON para proporcionar información adicional a su función de Lambda.

   Una carga es texto JSON opcional que puede proporcionar a su función de Lambda como entrada para todas las invocaciones procedentes de un punto de acceso de S3 Object Lambda específico. Puede configurar cargas con diferentes parámetros para diferentes puntos de acceso Object Lambda que invoquen la misma función de Lambda, ampliando así la flexibilidad de su función de Lambda.

   Para obtener más información acerca de patones de rutas, consulte [Formato y uso del contexto del evento](olap-event-context.md).

1. (Opcional) Para las **Métricas de solicitudes: *opcional***, elija **Deshabilitar** o **Habilitar** para agregar la supervisión de Amazon S3 al punto de acceso de Object Lambda. Las métricas de solicitud se facturan según la tarifa de Amazon CloudWatch estándar. Para obtener más información, consulte los [precios de CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

1. En **Object Lambda Access Point policy - *optional* (Política de punto de acceso Object Lambda -opcional)**, conserve la configuración predeterminada. 

   (Opcional) Ejecute para establecer la política de recursos. Esta política de recursos concede el permiso de la API `GetObject` para usar el punto de acceso del objeto Lambda específico.

1. Mantenga la configuración restante establecida en los valores predeterminados y elija **Create Object Lambda Access Point (Creación de punto de acceso Object Lambda)**.

## Paso 7: Ver los datos transformados
<a name="ol-upper-step7"></a>

Ahora, S3 Object Lambda está listo para transformar sus datos para su caso de uso. En este tutorial, S3 Object Lambda transforma todo el texto de su objeto a mayúsculas.

**Topics**
+ [Visualización de los datos transformados en el punto de acceso de S3 Object Lambda](#ol-upper-step7-check-data)
+ [Ejecución de una secuencia de comandos de Python para imprimir los datos originales y transformados](#ol-upper-step7-python-print)

### Visualización de los datos transformados en el punto de acceso de S3 Object Lambda
<a name="ol-upper-step7-check-data"></a>

Cuando solicita recuperar un archivo a través de su punto de acceso de S3 Object Lambda, cree una llamada de la API `GetObject` a S3 Object Lambda. S3 Object Lambda invoca la función de Lambda para transformar sus datos, y luego devuelve los datos transformados como la respuesta a la llamada a la API estándar S3 `GetObject`.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Puntos de acceso del objeto lambda**, elija el punto de acceso de S3 Object Lambda que ha creado en el [Paso 6](#ol-upper-step6) (por ejemplo, **tutorial-object-lambda-accesspoint**).

1. En la pestaña **Objetos** de su punto de acceso de S3 Object Lambda, seleccione el archivo que tenga el mismo nombre (por ejemplo, `tutorial.txt`) como el que cargó en el bucket de S3 en el [Paso 2](#ol-upper-step2). 

   Este archivo debe contener todos los datos transformados.

1. Para ver los datos transformados, elija **Open (Abrir) ** o **Download (Descargar)**.

### Ejecución de una secuencia de comandos de Python para imprimir los datos originales y transformados
<a name="ol-upper-step7-python-print"></a>

Puede utilizar S3 Object Lambda con sus aplicaciones existentes. Para ello, actualice la configuración de la aplicación para utilizar el nuevo ARN de punto de acceso de S3 Object Lambda que creó en el [Paso 6](#ol-upper-step6) para recuperar datos desde S3.

El siguiente ejemplo de secuencia de comandos de Python imprime tanto los datos originales del bucket de S3 como los datos transformados desde el punto de acceso de S3 Object Lambda. 

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Puntos de acceso del objeto Lambda**, elija el botón de opción situado a la izquierda del punto de acceso de S3 Object Lambda que ha creado en el [Paso 6](#ol-upper-step6)(por ejemplo, **tutorial-object-lambda-accesspoint**).

1. Seleccionar **Copy ARN (Copiar ARN)**.

1. Guarde el ARN para utilizarlo más tarde.

1. Escriba un script de Python en su máquina local para imprimir los datos originales (por ejemplo, `tutorial.txt`) de su S3 Bucket y los datos transformados (por ejemplo, `tutorial.txt`) desde el punto de acceso de S3 Object Lambda). Puede realizar una prueba con el siguiente script de ejemplo. 

   ```
   import boto3
   from botocore.config import Config
   
   s3 = boto3.client('s3', config=Config(signature_version='s3v4'))
   
   def getObject(bucket, key):
       objectBody = s3.get_object(Bucket = bucket, Key = key)
       print(objectBody["Body"].read().decode("utf-8"))
       print("\n")
   
   print('Original object from the S3 bucket:')
   # Replace the two input parameters of getObject() below with 
   # the S3 bucket name that you created in Step 1 and 
   # the name of the file that you uploaded to the S3 bucket in Step 2
   getObject("tutorial-bucket", 
             "tutorial.txt")
   
   print('Object transformed by S3 Object Lambda:')
   # Replace the two input parameters of getObject() below with 
   # the ARN of your S3 Object Lambda Access Point that you saved earlier and
   # the name of the file with the transformed data (which in this case is
   # the same as the name of the file that you uploaded to the S3 bucket 
   # in Step 2)
   getObject("arn:aws:s3-object-lambda:us-west-2:111122223333:accesspoint/tutorial-object-lambda-accesspoint",
             "tutorial.txt")
   ```

1. Guarde su script de Python con un nombre personalizado (por ejemplo: `tutorial_print.py`) en la carpeta (por ejemplo: `object-lambda`) que ha creado en el [Paso 4](#ol-upper-step4) en el equipo local.

1. En el terminal local, ejecute el siguiente comando desde la raíz del directorio (por ejemplo: `object-lambda`) que ha creado en el [Paso 4](#ol-upper-step4).

   ```
   python3 tutorial_print.py
   ```

   Debería ver tanto los datos originales como los datos transformados (todo el texto en mayúsculas) a través del terminal. Debería ver algo parecido a lo siguiente.

   ```
   Original object from the S3 bucket:
   Amazon S3 Object Lambda Tutorial:
   You can add your own code to process data retrieved from S3 before 
   returning it to an application.
   
   Object transformed by S3 Object Lambda:
   AMAZON S3 OBJECT LAMBDA TUTORIAL:
   YOU CAN ADD YOUR OWN CODE TO PROCESS DATA RETRIEVED FROM S3 BEFORE 
   RETURNING IT TO AN APPLICATION.
   ```

## Paso 8: Eliminación
<a name="ol-upper-step8"></a>

Si transformó sus datos a través de S3 Object Lambda solo como un ejercicio de aprendizaje, elimine los recursos de AWS que asignó para dejar de acumular cargos. 

**Topics**
+ [Eliminar el punto de acceso del objeto Lambda](#ol-upper-step8-delete-olap)
+ [Elimine el punto de acceso de S3](#ol-upper-step8-delete-ap)
+ [Busque el rol de ejecución de la función de Lambda.](#ol-upper-step8-delete-lambda-role)
+ [Para eliminar la función de Lambda](#ol-upper-step8-delete-lambda-function)
+ [Eliminación del grupo de registros de CloudWatch](#ol-upper-step8-delete-cloudwatch)
+ [Elimine el archivo original en el bucket de origen de S3](#ol-upper-step8-delete-file)
+ [Eliminar el bucket de origen de S3](#ol-upper-step8-delete-bucket)
+ [Eliminación del rol de IAM](#ol-upper-step8-delete-user)

### Eliminar el punto de acceso del objeto Lambda
<a name="ol-upper-step8-delete-olap"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Puntos de acceso del objeto Lambda**, elija el botón de opción situado a la izquierda del punto de acceso de S3 Object Lambda que ha creado en el [Paso 6](#ol-upper-step6) (por ejemplo, **tutorial-object-lambda-accesspoint**).

1. Elija **Delete** (Eliminar).

1. Confirme que desea eliminar el punto de acceso del objeto Lambda. Para ello, escriba su nombre en el campo de texto que aparece y elija **Eliminar**.

### Elimine el punto de acceso de S3
<a name="ol-upper-step8-delete-ap"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Access Points (Puntos de acceso)**.

1. Desplácese hasta el punto de acceso que creó en el [Paso 3](#ol-upper-step3) (por ejemplo: **tutorial-access-point**) y elija el botón de opción situado junto al nombre del punto de acceso.

1. Elija **Eliminar**.

1. Confirme que desea eliminar el punto de acceso escribiendo su nombre en el campo de texto que aparece y elija **Delete (Eliminar)**.

### Busque el rol de ejecución de la función de Lambda.
<a name="ol-upper-step8-delete-lambda-role"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación izquierdo, elija **Funciones**.

1. Elija la función que creó en el [paso 4](#ol-upper-step4) (por ejemplo: **tutorial-object-lambda-function**).

1. En la página de detalles de su función de Lambda, elija la opción **Configuration (Configuración)** y, a continuación, elija **Permissions (Permisos)** en el panel de navegación izquierdo. 

1. En **Execution role (Rol de ejecución)**, elija el enlace del **Role name (Nombre del rol)**. Abra la consola de IAM.

1. En la página **Summary (Resumen)** de la consola de IAM de la página de ejecución de su función de Lambda, elija **Delete role (Eliminar rol)**.

1. En el cuadro de diálogo **Delete role (Eliminar rol)**, elija **Yes, delete (Sí, eliminar)**.

### Para eliminar la función de Lambda
<a name="ol-upper-step8-delete-lambda-function"></a>

1. En la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), elija **Funciones** en el panel de navegación izquierdo. 

1. Active la casilla de verificación situada a la izquierda del nombre de la función que ha creado en el [Paso 4](#ol-upper-step4) (por ejemplo: **tutorial-object-lambda-function**).

1. Elija **Acciones** y, a continuación, elija **Eliminar**.

1. En el cuadro de diálogo **Eliminar función**, elija **Eliminar**.

### Eliminación del grupo de registros de CloudWatch
<a name="ol-upper-step8-delete-cloudwatch"></a>

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación izquierdo, elija Registros, **Grupos de registros**.

1. Busque el grupo de registros cuyo nombre termina con la función de Lambda que creó en el [Paso 4](#ol-upper-step4)(por ejemplo: **tutorial-object-lambda-function**).

1. Active la casilla de verificación situada a la izquierda del nombre del grupo de registros.

1. Elija **Actions (Acciones)** y, a continuación, elija **Delete log group (Eliminar grupo de registro)**.

1. En el cuadro de diálogo **Delete log group(s)**, Eliminar grupo(s) de registro(s) elija **Delete** (Eliminar).

### Elimine el archivo original en el bucket de origen de S3
<a name="ol-upper-step8-delete-file"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Nombre del bucket**, seleccione el nombre del bucket al que ha subido el archivo original en el [Paso 2](#ol-upper-step2) (por ejemplo: **tutorial-bucket**).

1. Seleccione la casilla de verificación situada a la izquierda de los nombres de los objetos que desea eliminar (por ejemplo: )., `tutorial.txt`).

1. Elija **Eliminar**.

1. En la página **Delete objects (Eliminar objetos)**, en la sección **Permanently delete objects? (¿Eliminar objetos de forma permanente?)**, confirme que desea eliminar este objeto escribiendo **permanently delete** en el cuadro de texto.

1. Elija **Eliminar objetos**.

### Eliminar el bucket de origen de S3
<a name="ol-upper-step8-delete-bucket"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el botón de opción situado junto al nombre del bucket que ha creado en el [Paso 1](#ol-upper-step1) (por ejemplo: **tutorial-bucket**).

1. Elija **Eliminar**.

1. En la página **Delete bucket (Eliminar bucket)** confirme que desea eliminar el bucket introduciendo el nombre del bucket en el campo de texto y, a continuación, elija **Delete bucket (Eliminar bucket)**.

### Eliminación del rol de IAM
<a name="ol-upper-step8-delete-user"></a>

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, elija **Roles** y, a continuación, seleccione la casilla de verificación junto al nombre del rol que desee eliminar.

1. En la parte superior de la página, elija **Delete user (Eliminar usuario)**.

1. En el cuadro de diálogo **Delete *user name*?** (¿Eliminar Nombre de usuario?), introduzca el nombre de usuario en el campo de entrada de texto para confirmar la eliminación del usuario. Elija **Eliminar**.

## Siguientes pasos
<a name="ol-upper-next-steps"></a>

Después de completar este tutorial, puede personalizar la función de Lambda para su caso de uso para modificar los datos devueltos por solicitudes GET de S3 estándar.

La siguiente es una lista de casos de uso comunes para S3 Object Lambda:
+ Enmascarar datos confidenciales para garantizar la seguridad y el cumplimiento.

  Para obtener más información, consulte [Tutorial: detección y redacción de datos de PII con S3 Object Lambda y Amazon Comprehend](tutorial-s3-object-lambda-redact-pii.md).
+ Filtrar ciertas filas de datos para entregar información específica.
+ Aumentar los datos con información de otros servicios o bases de datos.
+ Convertir entre formatos de datos, como convertir XML a JSON para la compatibilidad de aplicaciones.
+ Comprimir o descomprimir archivos a medida que se descargan.
+ Cambio de tamaño y marcas de agua de las imágenes

  Para obtener más información, consulte [Tutorial: Uso de S3 Object Lambda para agregar marcas de agua dinámicas a las imágenes a medida que se recuperan](https://aws.amazon.com/getting-started/hands-on/amazon-s3-object-lambda-to-dynamically-watermark-images/?ref=docs_gateway/amazons3/tutorial-s3-object-lambda-uppercase.html).
+ Implementar reglas de autorización personalizadas para acceder a los datos.

Para obtener más información acerca de S3 Object Lambda, consulte [Transformación de objetos con Lambda para objetos S3](transforming-objects.md).

# Tutorial: detección y redacción de datos de PII con S3 Object Lambda y Amazon Comprehend
<a name="tutorial-s3-object-lambda-redact-pii"></a>

**nota**  
A partir del 7 de noviembre de 2025, S3 Object Lambda solo estará disponible para los clientes actuales que utilizan el servicio actualmente, así como para socios seleccionados de la red de socios de AWS (APN). Para obtener más información sobre capacidades similares a las de S3 Object Lambda, haga clic aquí: [Cambio de disponibilidad de Amazon S3 Object Lambda](https://docs.aws.amazon.com/AmazonS3/latest/userguide/amazons3-ol-change.html).

Cuando utiliza Amazon S3 para conjuntos de datos compartidos para varias aplicaciones y usuarios a los que acceder, es importante restringir la información privilegiada, como la información de identificación personal (PII), solo a entidades autorizadas. Por ejemplo, cuando una aplicación de marketing utiliza algunos datos que contienen PII, es posible que deba enmascarar primero los datos de PII para cumplir con los requisitos de privacidad de datos. Además, cuando una aplicación de análisis utiliza un conjunto de datos de inventario de pedidos de producción, es posible que deba redactar primero la información de la tarjeta de crédito del cliente para evitar fugas de datos no intencionadas.

Con [S3 Object Lambda](https://aws.amazon.com/s3/features/object-lambda) y una función AWS Lambda con la tecnología de Amazon Comprehend, puede proteger los datos de PII recuperados de S3 antes de devolverlos a una aplicación. En concreto, puede utilizar la [función de Lambda](https://aws.amazon.com/lambda/) prediseñada como función de redacción y adjuntarla a un punto de acceso de S3 Object Lambda. Cuando una aplicación (por ejemplo, una aplicación de análisis) envía [solicitudes GET de S3 estándar](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html), estas solicitudes realizadas a través del punto de acceso de S3 Object Lambda invocan la función de Lambda de redacción prediseñada para detectar y redactar datos de PII recuperados de un origen de datos subyacente a través de un punto de acceso de S3 compatible. A continuación, el punto de acceso de S3 Object Lambda devuelve el resultado redactado a la aplicación.

![\[Este es un diagrama de flujo de trabajo de S3 Object Lambda.\]](http://docs.aws.amazon.com/es_es/AmazonS3/latest/userguide/images/ol-comprehend-image-global.png)


En el proceso, la función de Lambda prediseñada utiliza [Amazon Comprehend](https://aws.amazon.com/comprehend/), un servicio de procesamiento de lenguaje natural (NLP), para capturar variaciones en la forma en que se representa la PII, independientemente de cómo exista la PII en el texto (como numéricamente o como una combinación de palabras y números). Amazon Comprehend puede incluso utilizar el contexto en el texto para entender si un número de 4 dígitos es un PIN, los cuatro últimos números de un número de Seguro Social (SSN) o un año. Amazon Comprehend procesa cualquier archivo de texto en formato UTF-8 y puede proteger la información personal a escala sin afectar a la precisión. Para obtener más información, consulte [¿Qué es Amazon Comprehend?](https://docs.aws.amazon.com/comprehend/latest/dg/what-is.html) en la *Guía para desarrolladores de Amazon Comprehend*.

**Objetivo**  
En este tutorial, aprenderá a utilizar S3 Object Lambda con la función de Lambda preconstruida`ComprehendPiiRedactionS3ObjectLambda`. Esta función utiliza Amazon Comprehend para detectar entidades de PII. A continuación, redacta estas entidades reemplazándolas con asteriscos. Al redactar la información personal, oculta los datos confidenciales, lo que puede ayudar con la seguridad y el cumplimiento normativo.

También aprenderá a usar y configurar una AWS LambdaFunction en la [AWS Serverless Application Repository](https://aws.amazon.com/serverless/serverlessrepo/) para trabajar junto con S3 Object Lambda para facilitar la implementación. 

**Topics**
+ [Requisitos previos: cree un usuario de IAM con permisos](#ol-pii-prerequisites)
+ [Paso 1: Crear un bucket de S3](#ol-pii-step1)
+ [Paso 2: Cargar un archivo a S3 bucket](#ol-pii-step2)
+ [Paso 3: Crear un punto de acceso de S3](#ol-pii-step3)
+ [Paso 4: Configurar e implementar una función de Lambda prefabricada](#ol-pii-step4)
+ [Paso 5: Crear un punto de acceso de S3 Object Lambda](#ol-pii-step5)
+ [Paso 6: Utilizar el punto de acceso de S3 Object Lambda para recuperar el archivo redactado](#ol-pii-step6)
+ [Paso 7: Limpiar](#ol-pii-step7)
+ [Siguientes pasos](#ol-pii-next-steps)

## Requisitos previos: cree un usuario de IAM con permisos
<a name="ol-pii-prerequisites"></a>

Antes de empezar este tutorial, debe tener una cuenta de AWS en la que puede iniciar sesión como usuario de AWS Identity and Access Management (usuario de IAM) con los permisos correctos.

Puede crear un usuario de IAM para el tutorial. Para completar este tutorial, el usuario de IAM debe adjuntar las siguientes políticas de IAM para acceder a los recursos de AWS y realizar acciones específicas. 

**nota**  
Para simplificar, este tutorial crea y utiliza un usuario de IAM. Después de completar este tutorial, recuerde [Eliminación del rol de IAM](#ol-pii-step8-delete-user). Para uso en producción, le recomendamos que siga las [Prácticas recomendadas de seguridad de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*. Una práctica recomendada exige que los usuarios humanos utilicen la federación con un proveedor de identidades para acceder a AWS con credenciales temporales. Otra práctica recomendada es exigir a las cargas de trabajo que utilicen credenciales temporales con roles de IAM para acceder a AWS. Para obtener información sobre el uso de AWS IAM Identity Center para crear usuarios con credenciales temporales, consulte [Introducción](https://docs.aws.amazon.com/singlesignon/latest/userguide/getting-started.html) en la *Guía del usuario de AWS IAM Identity Center*.   
Este tutorial también utiliza políticas de acceso completo. Para uso en producción, le recomendamos que otorgue solo los permisos mínimos necesarios para su caso de uso, de acuerdo con las [prácticas recomendadas de seguridad](security-best-practices.md#security-best-practices-prevent).

Su usuario de IAM requiere las siguientes políticas administradas de AWS:
+ [AmazonS3FullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AmazonS3FullAccess$jsonEditor): otorga permisos a todas las acciones de Amazon S3, incluidos los permisos para crear y utilizar un punto de acceso de Object Lambda. 
+ [AWSLambda\$1FullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSLambda_FullAccess$jsonEditor)— Otorga permisos a todas las acciones de Lambda. 
+ [AWSCloudFormationFullAccess](https://console.aws.amazon.com/iam/home?#/policies/arn:aws:iam::aws:policy/AWSCloudFormationFullAccess$serviceLevelSummary)— Otorga permisos a todos losAWS CloudFormationacciones.
+ [IAMFullAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMFullAccess$jsonEditor)— Otorga permisos a todas las acciones de IAM. 
+ [IAMAccessAnalyzerReadOnlyAccess](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/IAMAccessAnalyzerReadOnlyAccess$jsonEditor)— Otorga permisos para leer toda la información de acceso proporcionada por IAM Access Analyzer. 

Puede adjuntar directamente estas directivas existentes al crear un usuario de IAM. Para obtener más información acerca de cómo crear un usuario de IAM, consulte [Creación del primer grupo de usuarios y administradores de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_create.html#id_users_create_console) en la *guía del usuario de IAM*.

Además, su usuario de IAM requiere una política administrada por el cliente. Para conceder permisos de usuario de IAM a todos los Recursos y acciones de AWS Serverless Application Repository, debe crear una política de IAM y adjuntar la política al usuario de IAM.

**Crear y asociar una política a un usuario de IAM**

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación izquierdo, elija **Políticas**.

1. Elija **Create Policy (Crear política)**. 

1. En la pestaña **Visual editor (Editor visual)**, para **Service (Servicio)**, seleccione **Choose a service (Elegir un servicio)**. Luego, elija **Serverless Application Repository**. 

1. Para **Actions (Acciones)**, en **Manual actions) (Acciones manuales)**, seleccione **All Serverless Application Repository actions (serverlessrepo:\$1) (Todas las acciones Serverless Application Repository servidor [serverlessrepo: \$1])** para este tutorial.

   Como práctica recomendada de seguridad, debe permitir solo aquellas acciones y recursos a los que un usuario necesita acceso. Para obtener más información, consulte la sección [Prácticas recomendadas de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de &IAM;*.

1. Para **Resources (Recursos)**, elija **All resources (Todos los recursos)** en este tutorial.

   Como práctica recomendada, debe definir permisos para recursos específicos de cuentas específicas. Si lo prefiere, puede conceder el menor privilegio mediante claves de condición. Para obtener más información, consulte [Conceder privilegios mínimos](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) en la *Guía del usuario de IAM*.

1. Elija **Siguiente: Etiquetas**.

1. Elija **Siguiente: Revisar**.

1. En la página **Revisar política**, ingrese un **Nombre** (por ejemplo, **tutorial-serverless-application-repository**) y una **Descripción** (opcional) para la política que está creando. Revise el resumen de política para asegurarse de que ha concedido los permisos deseados y, a continuación, elija **Create policy** (Crear política) para guardar su nueva política.

1. En el panel de navegación izquierdo, elija **Usuarios**. A continuación, elija el usuario de IAM para este tutorial. 

1. En la página **Resumen** del usuario elegido, elija la opción **Permisos** y luego **Agregar permisos**.

1. En **Grant permissions** (Conceder permisos), elija **Attach existing policies directly** (Asociar las políticas existentes directamente).

1. Seleccione la casilla de verificación situada junto a la política que acaba de crear (por ejemplo: **tutorial-serverless-application-repository**) y luego elija **Next: Review (Siguiente: revisar)**. 

1. En **Permissions Summary (Resumen de permisos)**, revise el resumen de la política para asegurarse de que ha adjuntado la política deseada. A continuación, elija **Add permissions (Agregar permisos)**.

## Paso 1: Crear un bucket de S3
<a name="ol-pii-step1"></a>

Cree un bucket para almacenar los datos originales que tiene previsto transformar. 

**nota**  
Los puntos de acceso se pueden adjuntar a otro origen de datos, como un volumen de Amazon FSx para OpenZFS. Sin embargo, este tutorial utiliza un punto de acceso compatible adjunto a un bucket de S3.

**Creación de un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. Elija **Crear bucket**. 

   Se abrirá la página **Crear bucket**.

1. En **Nombre de bucket**, escriba el nombre del bucket (por ejemplo: **tutorial-bucket**). 

   Para obtener más información acerca de las reglas de nomenclatura del bucket de Amazon S3, consulte [Reglas de nomenclatura de buckets de uso general](bucketnamingrules.md).

1. En **Región**, elija la Región de AWS en la que desea que se encuentre el bucket. 

   Para obtener más información acerca de bucket Region, consulte [Información general de los buckets de uso general](UsingBucket.md).

1. Para **Configuración de Block Public Access para este bucket**, conserve la configuración predeterminada (**Bloquear *todo *acceso público** está habilitado). 

   Le recomendamos que deje todas las configuraciones habilitadas a menos que sepa que necesita desactivar una o varias de ellas para su caso de uso, como alojar un sitio web público. Para obtener más información acerca del bloqueo del acceso público, consulte [Bloquear el acceso público a su almacenamiento de Amazon S3](access-control-block-public-access.md).

1. Mantenga la configuración restante establecida en los valores predeterminados. 

   (Opcional) Si desea configurar opciones de bucket adicionales para el caso de uso específico, consulte [Creación de un bucket de uso general](create-bucket-overview.md).

1. Elija **Crear bucket**.

## Paso 2: Cargar un archivo a S3 bucket
<a name="ol-pii-step2"></a>

Cargue un archivo de texto que contenga datos de PII conocidos de varios tipos, como nombres, información bancaria, números de teléfono y SSN, al bucket de S3 como datos originales de los que redactará PII más adelante en este tutorial. 

Por ejemplo, puede cargarlo siguiendo el archivo `tutorial.txt`. Este es un ejemplo de un archivo de entrada de ejemplo de Amazon Comprehend.

```
Hello Zhang Wei, I am John. Your AnyCompany Financial Services, 
LLC credit card account 1111-0000-1111-0008 has a minimum payment 
of $24.53 that is due by July 31st. Based on your autopay settings, 
we will withdraw your payment on the due date from your 
bank account number XXXXXX1111 with the routing number XXXXX0000. 

Your latest statement was mailed to 100 Main Street, Any City, 
WA 98121. 
After your payment is received, you will receive a confirmation 
text message at 206-555-0100. 
If you have questions about your bill, AnyCompany Customer Service 
is available by phone at 206-555-0199 or 
email at support@anycompany.com.
```

**Para cargar un archivo en un bucket**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el nombre del bucket que creó en el[Paso 1](#ol-pii-step1) (por ejemplo: **tutorial-bucket**) para cargar el archivo.

1. En la pestaña **Objetos** del bucket, elija **Cargar**.

1. En la página **Cargar**, en **Archivos y carpetas**, elija **Añadir archivos**.

1. Seleccione un archivo que cargar y luego seleccione **Abrir**. Por ejemplo, puede cargar el archivo de ejemplo `tutorial.txt` mencionado anteriormente.

1. Seleccione **Cargar**.

## Paso 3: Crear un punto de acceso de S3
<a name="ol-pii-step3"></a>

Para utilizar un punto de acceso de S3 Object Lambda para acceder y transformar los datos originales, debe crear un punto de acceso de S3 y asociarlo con el bucket de S3 que creó en el [Paso 1](#ol-pii-step1). El punto de acceso debe estar en la misma Región de AWS que los objetos que desea transformar.

Más adelante en este tutorial, utilizará este punto de acceso como punto de acceso de soporte para su punto de acceso de Object Lambda. 

**Para crear un punto de acceso**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Puntos de acceso**.

1. En la página de **Puntos de acceso**, elija **Crear punto de acceso**.

1. Introduzca el nombre que desee (por ejemplo: **tutorial-pii-access-point**) para el punto de acceso en el campo **Nombre del punto de acceso**.

   Para obtener más información acerca de cómo nombrar los puntos de acceso, consulte [Reglas de nomenclatura para los puntos de acceso](access-points-restrictions-limitations-naming-rules.md#access-points-names).

1. En el campo **Origen de datos**, escriba el nombre del bucket que creó en el [Paso 1](#ol-pii-step1) (por ejemplo, **tutorial-bucket**). A continuación, asocie dicha política al bucket de S3. 

   (Opcional) Puede elegir **Examinar S3)** para explorar su cuenta y buscar buckets. Si elige **Examinar S3**, seleccione el bucket que le interese y seleccione **Elegir ruta** para rellenar el campo **Nombre del bucket** con el nombre del bucket en cuestión.

1. Para **Origen de la red**, elija **Internet**. 

   Para obtener más información acerca de los orígenes de red para los puntos de acceso, consulte [Crear puntos de acceso restringidos a una nube privada virtual](access-points-vpc.md).

1. Todas las configuraciones de bloqueo de acceso público están habilitadas de forma predeterminada para los puntos de acceso. Le recomendamos que deje habilitada **Block *all* public access** (Bloquear todo el acceso público). Para obtener más información, consulte [Administración del acceso público a los puntos de acceso para buckets de propósito general](access-points-bpa-settings.md).

1. En el resto de configuraciones de punto de acceso, mantenga la configuración predeterminada.

   (Opcional) Puede modificar la configuración del punto de acceso para admitir el caso de uso. En este tutorial, le recomendamos que mantenga la configuración predeterminada. 

   (Opcional) Si necesita administrar el acceso al punto de acceso, puede especificar una directiva de punto de acceso. Para obtener más información, consulte [Ejemplos de políticas de puntos de acceso](access-points-policies.md#access-points-policy-examples). 

1. Elija **Crear punto de acceso**.

## Paso 4: Configurar e implementar una función de Lambda prefabricada
<a name="ol-pii-step4"></a>

Para redactar los datos de PII, configure e implemente la función prediseñada AWS Lambda `ComprehendPiiRedactionS3ObjectLambda` para utilizarla con el punto de acceso de S3 Object Lambda.

**Para configurar e implementar la función de Lambda**

1. Inicie sesión en la Consola de administración de AWS y vea la función [https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiRedactionS3ObjectLambda](https://console.aws.amazon.com/lambda/home#/create/app?applicationId=arn:aws:serverlessrepo:us-east-1:839782855223:applications/ComprehendPiiRedactionS3ObjectLambda) en laAWS Serverless Application Repository.

1. Para **Application settings (Configuración de la aplicación)**, en **Application name (Nombre de la aplicación)**, conserve el valor predeterminado (`ComprehendPiiRedactionS3ObjectLambda`) para este tutorial.

   (Opcional) Puede introducir el nombre que desea dar a esta aplicación. Es posible que desee hacerlo si tiene previsto configurar varias funciones de Lambda para diferentes necesidades de acceso para el mismo conjunto de datos compartido.

1. Para **MaskCharacter**, conserve el valor predeterminado (`*`). El carácter de máscara reemplaza cada carácter de la entidad PII redactada. 

1. Para **MaskMode**, conserve el valor predeterminado (**MASK**). El valor **MaskMode** especifica si la entidad PII se redacta con el carácter `MASK` o el valor `PII_ENTITY_TYPE`.

1. Para redactar los tipos de datos especificados, para**PiiEntityTypes**, conserve el valor predeterminado**ALL**. El valor **PiiEntityTypes** especifica los tipos de entidad de PII que se deben considerar para la redacción. 

   Para obtener más información acerca de la lista de tipos de entidad de PII admitidos, consulte [Detecte información de identificación personal (PII)](https://docs.aws.amazon.com/comprehend/latest/dg/how-pii.html) en la *Guía para desarrolladores de Amazon Comprehend*.

1. Mantenga la configuración restante establecida en los valores predeterminados.

   (Opcional) Si desea configurar opciones adicionales para el caso de uso específico, consulte la sección **Readme file (Archivo Léame)** en el lado izquierdo de la página.

1. Elija la casilla de verificación situada junto a **I acknowledge that this app creates custom IAM roles** (Confirmo que esta aplicación puede crear roles de IAM personalizados).

1. Elija **Implementar**.

1. En la página de la nueva aplicación, en **Resources (Recursos)**, elija la opción **Logical ID (ID lógico)** de la función de Lambda que implementó para revisar la función en la página de funciones de Lambda.

## Paso 5: Crear un punto de acceso de S3 Object Lambda
<a name="ol-pii-step5"></a>

Un punto de acceso S3 Object Lambda proporciona la flexibilidad para invocar una función de Lambda directamente desde una solicitud GET S3 para que la función pueda redactar datos de PII recuperados de un punto de acceso de S3. Al crear y configurar un punto de acceso de S3 Object Lambda, debe especificar la función de Lambda redactante para invocar y proporcionar el contexto de evento en formato JSON como parámetros personalizados para que los utilice Lambda. 

S3 Object Lambda proporciona contexto sobre la solicitud que se realiza en el evento pasado a Lambda. Para obtener más información sobre los campos en el contexto de evento, consulte [Formato y uso del contexto del evento](olap-event-context.md).

**Para crear un punto de acceso de S3 Object Lambda**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación del lado izquierdo de la consola, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Object Lambda Access Points (Puntos de acceso Object Lambda)**, elija **Create Object Lambda Access Point (Crear un punto de acceso de Object Lambda)**.

1. En **Nombre del punto de acceso del objeto Lambda**, introduzca el nombre que desea utilizar para el punto de acceso del objeto Lambda (por ejemplo: **tutorial-pii-object-lambda-accesspoint**). 

1. Para **Supporting Access Point (Soporte de punto de acceso)**, introduzca o busque el punto de acceso estándar que ha creado en el [Paso 3](#ol-pii-step3)(por ejemplo: **tutorial-pii-access-point**), y luego elija **Choose Supporting Access Point (Elegir soporte de punto de acceso)**. 

1. Para las **S3 APIs** (API de S3), para recuperar objetos del bucket de S3 para que la función de Lambda los procese, seleccione **GetObject**.

1. Para **Invoke Lambda function (Invocación de una función de Lambda)**, puede elegir una de las dos opciones siguientes. 
   + Seleccione **Elegir entre las funciones de la cuenta** y elija la función de Lambda que implementó en el [Paso 4](#ol-pii-step4) (por ejemplo, **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**) desde la lista desplegable de **Función de Lambda**.
   + Elegir **Enter ARN (Ingresar ARN)** y, a continuación, introduzca el nombre de recurso de Amazon (ARN) de la función de Lambda que ha creado en el [Paso 4](#ol-pii-step4).

1. Para **Lambda function version (Versión de función de Lambda)**, elija **\$1LATEST** (la última versión de la función de Lambda que implementó en el [Paso 4](#ol-pii-step4)).

1. (Opcional) Si necesita su función de Lambda para reconocer y procesar solicitudes GET con encabezados de rango y número de pieza, seleccione **Lambda function supports requests using range (La función de Lambda admite solicitudes usando rango)** y **Lambda function supports requests using part numbers (La función de Lambda admite solicitudes usando números de pieza)**. De lo contrario, desactive estas dos casillas de verificación.

   Para obtener más información acerca de cómo utilizar números de rango o rango con S3 Object Lambda, consulte [Trabajar con encabezados Range y partNumber](range-get-olap.md).

1. (Opcional) En **Payload - *optional* (Carga - opcional)**, agregue texto JSON para proporcionar información adicional a su función de Lambda.

   Una carga es texto JSON opcional que puede proporcionar a su función de Lambda como entrada para todas las invocaciones procedentes de un punto de acceso de S3 Object Lambda específico. Puede configurar cargas con diferentes parámetros para diferentes puntos de acceso Object Lambda que invoquen la misma función de Lambda, ampliando así la flexibilidad de su función de Lambda.

   Para obtener más información acerca de patones de rutas, consulte [Formato y uso del contexto del evento](olap-event-context.md).

1. (Opcional) Para las **Métricas de solicitudes: *opcional***, elija **Deshabilitar** o **Habilitar** para agregar la supervisión de Amazon S3 al punto de acceso de Object Lambda. Las métricas de solicitud se facturan según la tarifa de Amazon CloudWatch estándar. Para obtener más información, consulte los [precios de CloudWatch](https://aws.amazon.com/cloudwatch/pricing/).

1. En **Object Lambda Access Point policy - *optional* (Política de punto de acceso Object Lambda -opcional)**, conserve la configuración predeterminada. 

   (Opcional) Ejecute para establecer la política de recursos. Esta política de recursos concede el permiso de API `GetObject` para usar el punto de acceso del objeto Lambda especificado.

1. Mantenga la configuración restante establecida en los valores predeterminados y elija **Create Object Lambda Access Point (Creación de punto de acceso Object Lambda)**.

## Paso 6: Utilizar el punto de acceso de S3 Object Lambda para recuperar el archivo redactado
<a name="ol-pii-step6"></a>

Ahora, S3 Object Lambda está listo para redactar los datos de PII de su archivo original. 

**Para utilizar el punto de acceso de S3 Object Lambda para recuperar el archivo redactado**

Cuando solicita recuperar un archivo a través de su punto de acceso de S3 Object Lambda, cree una llamada de la API `GetObject` a S3 Object Lambda. S3 Object Lambda invoca la función de Lambda para redactar sus datos PII y devuelve los datos transformados como la respuesta al estándar S3`GetObject`Llamada a la API.

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Puntos de acceso del objeto Lambda**, elija el punto de acceso de S3 Object Lambda que creó en el [Paso 5](#ol-pii-step5) (por ejemplo, **tutorial-pii-object-lambda-accesspoint**).

1. En la pestaña **Objetos** de su punto de acceso de S3 Object Lambda, seleccione el archivo que tenga el mismo nombre (por ejemplo, `tutorial.txt`) como el que cargó en el bucket de S3 en el [Paso 2](#ol-pii-step2). 

   Este archivo debe contener todos los datos transformados.

1. Para ver los datos transformados, elija **Open (Abrir) ** o **Download (Descargar)**.

    Debería poder ver el archivo redactado, tal como se muestra en el siguiente ejemplo. 

   ```
   Hello *********. Your AnyCompany Financial Services, 
   LLC credit card account ******************* has a minimum payment 
   of $24.53 that is due by *********. Based on your autopay settings, 
   we will withdraw your payment on the due date from your 
   bank account ********** with the routing number *********. 
   
   Your latest statement was mailed to **********************************. 
   After your payment is received, you will receive a confirmation 
   text message at ************. 
   If you have questions about your bill, AnyCompany Customer Service 
   is available by phone at ************ or 
   email at **********************.
   ```

## Paso 7: Limpiar
<a name="ol-pii-step7"></a>

Si redactó sus datos mediante S3 Object Lambda solo como parte de un ejercicio de aprendizaje, elimine los recursos de AWS que asignó para dejar de acumular cargos. 

**Topics**
+ [Eliminar el punto de acceso del objeto Lambda](#ol-pii-step8-delete-olap)
+ [Elimine el punto de acceso de S3](#ol-pii-step8-delete-ap)
+ [Para eliminar la función de Lambda](#ol-pii-step8-delete-lambda-function)
+ [Eliminación del grupo de registros de CloudWatch](#ol-pii-step8-delete-cloudwatch)
+ [Elimine el archivo original en el bucket de origen de S3](#ol-pii-step8-delete-file)
+ [Eliminar el bucket de origen de S3](#ol-pii-step8-delete-bucket)
+ [Elimine el rol de IAM para su función de Lambda](#ol-pii-step8-delete-lambda-role)
+ [Eliminar la política administrada por el cliente para su usuario de IAM](#ol-pii-step8-delete-function-policy)
+ [Eliminación del rol de IAM](#ol-pii-step8-delete-user)

### Eliminar el punto de acceso del objeto Lambda
<a name="ol-pii-step8-delete-olap"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Object Lambda Access Points (Puntos de acceso de Object Lambda)**.

1. En la página **Puntos de acceso del objeto lambda**, elija el botón de opción situado a la izquierda del punto de acceso de S3 Object Lambda que creó en el [Paso 5](#ol-pii-step5) (por ejemplo, **tutorial-pii-object-lambda-accesspoint**).

1. Elija **Delete (Eliminar)**.

1. Confirme que desea eliminar el punto de acceso del objeto Lambda. Para ello, escriba su nombre en el campo de texto que aparece y elija **Eliminar**.

### Elimine el punto de acceso de S3
<a name="ol-pii-step8-delete-ap"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Access Points (Puntos de acceso)**.

1. Desplácese hasta el punto de acceso que creó en el [Paso 3](#ol-pii-step3) (por ejemplo: **tutorial-pii-access-point**) y elija el botón de opción situado junto al nombre del punto de acceso.

1. Elija **Eliminar**.

1. Confirme que desea eliminar el punto de acceso escribiendo su nombre en el campo de texto que aparece y elija **Delete (Eliminar)**.

### Para eliminar la función de Lambda
<a name="ol-pii-step8-delete-lambda-function"></a>

1. En la consola AWS Lambda en [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/), elija **Functions (Funciones)** en el panel de navegación izquierdo. 

1. Elija la función que creó en el [paso 4](#ol-pii-step4) (por ejemplo: **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**).

1. Elija **Acciones** y, a continuación, elija **Eliminar**.

1. En el cuadro de diálogo **Eliminar función**, elija **Eliminar**.

### Eliminación del grupo de registros de CloudWatch
<a name="ol-pii-step8-delete-cloudwatch"></a>

1. Abra la consola de CloudWatch en [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. En el panel de navegación izquierdo, elija Registros, **Grupos de registros**.

1. Busque el grupo de registros cuyo nombre termina con la función de Lambda que creó en el[Paso 4](#ol-pii-step4)(por ejemplo: **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**).

1. Elija **Actions (Acciones)** y, a continuación, elija **Delete log group (Eliminar grupo de registro)**.

1. En el cuadro de diálogo **Delete log group(s)**, Eliminar grupo(s) de registro(s) elija **Delete** (Eliminar).

### Elimine el archivo original en el bucket de origen de S3
<a name="ol-pii-step8-delete-file"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Nombre del bucket**, seleccione el nombre del bucket al que ha subido el archivo original en el [Paso 2](#ol-pii-step2) (por ejemplo: **tutorial-bucket**).

1. Seleccione la casilla de verificación situada a la izquierda de los nombres de los objetos que desea eliminar (por ejemplo: )., `tutorial.txt`).

1. Elija **Eliminar**.

1. En la página **Delete objects (Eliminar objetos)**, en la sección **Permanently delete objects? (¿Eliminar objetos de forma permanente?)**, confirme que desea eliminar este objeto escribiendo **permanently delete** en el cuadro de texto.

1. Elija **Eliminar objetos**.

### Eliminar el bucket de origen de S3
<a name="ol-pii-step8-delete-bucket"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets**.

1. En la lista **Buckets**, elija el botón de opción situado junto al nombre del bucket que creó en el [Paso 1](#ol-pii-step1) (por ejemplo: **tutorial-bucket**).

1. Elija **Eliminar**.

1. En la página **Delete bucket (Eliminar bucket)** confirme que desea eliminar el bucket introduciendo el nombre del bucket en el campo de texto y, a continuación, elija **Delete bucket (Eliminar bucket)**.

### Elimine el rol de IAM para su función de Lambda
<a name="ol-pii-step8-delete-lambda-role"></a>

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, elija **Roles** y, a continuación, seleccione la casilla de verificación junto al nombre del rol que desee eliminar. El nombre del rol comienza con el nombre de la función de Lambda que ha implementado en el [Paso 4](#ol-pii-step4) (por ejemplo: **serverlessrepo-ComprehendPiiRedactionS3ObjectLambda**).

1. Elija **Eliminar**.

1. En el cuadro de diálogo **Delete (Eliminar)**, escriba el nombre del rol en el campo de entrada de texto para confirmar la eliminación. A continuación, elija **Delete** (Eliminar).

### Eliminar la política administrada por el cliente para su usuario de IAM
<a name="ol-pii-step8-delete-function-policy"></a>

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación izquierdo, elija **Políticas**.

1. En la página **Políticas**, introduzca el nombre de la política administrada por el cliente que ha creado en [Requisitos previos](#ol-pii-prerequisites) (por ejemplo: **tutorial-serverless-application-repository**) en el cuadro de búsqueda para filtrar la lista de políticas. Seleccione el botón de opción situado junto al nombre del punto de acceso que desea eliminar.

1. Elija **Actions** (Acciones) y, a continuación, elija **Delete** (Eliminar).

1. Confirme que desea eliminar el punto de acceso escribiendo su nombre en el campo de texto que aparece y elija **Delete (Eliminar)**.

### Eliminación del rol de IAM
<a name="ol-pii-step8-delete-user"></a>

1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. En el panel de navegación, elija **Roles** y, a continuación, seleccione la casilla de verificación junto al nombre del rol que desee eliminar.

1. En la parte superior de la página, elija **Delete user (Eliminar usuario)**.

1. En el cuadro de diálogo **Delete *user name*?** (¿Eliminar Nombre de usuario?), introduzca el nombre de usuario en el campo de entrada de texto para confirmar la eliminación del usuario. Elija **Eliminar**.

## Siguientes pasos
<a name="ol-pii-next-steps"></a>

Después de completar este tutorial, puede explorar más a fondo los siguientes casos de uso relacionados:
+ Puede crear varios puntos de acceso de S3 Object Lambda y habilitarlos con funciones de Lambda prediseñadas que se configuran de manera diferente para redactar tipos específicos de PII en función de las necesidades empresariales de los mecanismos de acceso a los datos. 

  Cada tipo de usuario asume un rol de IAM y solo tiene acceso a un punto de acceso de S3 Object Lambda (administrado a través de políticas de IAM). A continuación, adjuntar cada función de Lambda `ComprehendPiiRedactionS3ObjectLambda` configurada para un caso de uso de redacción diferente a un punto de acceso de S3 Object Lambda. Para cada punto de acceso de S3 Object Lambda, puede tener un punto de acceso S3 compatible para leer datos de un bucket de S3 que almacene el conjunto de datos compartido. 

  Para obtener más información acerca de cómo crear una directiva de bucket de S3 que permita a los usuarios leer desde el bucket solo a través de puntos de acceso de S3, consulte [Configurar las políticas de IAM para el uso de puntos de acceso](access-points-policies.md).

  Para obtener más información acerca de cómo conceder a un usuario permiso para acceder a la función de Lambda, el punto de acceso de S3 y el punto de acceso de S3 Object Lambda, consulte [Configuración de las políticas de IAM para puntos de acceso de Object Lambda](olap-policies.md).
+ Puede construir su propia función de Lambda y usar S3 Object Lambda con su función de Lambda personalizada para satisfacer sus necesidades de datos específicas.

  Por ejemplo, para explorar varios valores de datos, puede usar S3 Object Lambda y su propia función de Lambda que utiliza [características de Amazon Comprehend](https://aws.amazon.com/comprehend/features/), como el reconocimiento de entidades, el reconocimiento de frases clave, el análisis de sentimientos y la clasificación de documentos, para procesar datos. También puede utilizar S3 Object Lambda junto con[Amazon Comprehend Medical](https://aws.amazon.com/comprehend/medical/), un servicio PNL apto para HIPAA, para analizar y extraer datos de una manera consciente del contexto.

  Para obtener más información acerca de cómo transformar datos con S3 Object Lambda y su propia función de Lambda, consulte[Tutorial: transformación de datos para su aplicación con S3 Object Lambda](tutorial-s3-object-lambda-uppercase.md).