

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de una integración personalizada con la consola
<a name="query-event-data-store-integration-custom"></a>

Puede usarlo CloudTrail para registrar y almacenar datos de actividad de los usuarios de cualquier fuente en sus entornos híbridos, como aplicaciones internas o SaaS alojadas en las instalaciones o en la nube, máquinas virtuales o contenedores. Realice la primera mitad de este procedimiento en la consola de CloudTrail Lake y, a continuación, llame a la [https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html)API para ingerir los eventos y proporcione el ARN del canal y la carga útil del evento. Tras utilizar la `PutAuditEvents` API para incorporar la actividad de las aplicaciones CloudTrail, puede utilizar CloudTrail Lake para buscar, consultar y analizar los datos que se registran en las aplicaciones.

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

1.  En el panel de navegación, en **Lago**, elija **Integraciones**. 

1. En la página **Agregar integración**, ingrese un nombre para el canal. El nombre puede tener entre 3 y 128 caracteres. Solo se permiten letras, números, puntos, guiones medios y guiones bajos.

1. Elija **My custom integration** (Mi integración personalizada).

1. En **Event delivery location** (Ubicación de entrega de eventos), elija registrar los mismos eventos de actividad en los almacenes de datos de eventos existentes o cree un almacén de datos de eventos nuevo.

   Si elige crear un almacén de datos de eventos nuevo, ingrese un nombre para el almacén de datos de eventos y especifique el periodo de retención en días. Puede conservar los datos de eventos en un almacén de datos de eventos durante un máximo de 3653 días (unos 10 años) si elige la opción **Precio de retención ampliable por un año**, o hasta 2557 días (unos 7 años) si elige la opción **Precio de retención de siete años**.

   Si decide registrar los eventos de actividad en uno o más almacenes de datos de eventos existentes, elija los almacenes de datos de eventos de la lista. Los almacenes de datos de eventos solo pueden incluir eventos de actividad. El tipo de evento en la consola debe ser **Events from integrations** (Eventos de integraciones). En la API, el valor `eventCategory` debe ser `ActivityAuditLog`.

1. En **Resource policy** (Política de recursos), configure la política de recursos para el canal de la integración. Las políticas de recursos son documentos de política JSON que especifican qué acciones puede realizar una entidad principal especificada en el recurso y bajo qué condiciones. Las cuentas definidas como entidades principales en la política de recursos pueden llamar a la API `PutAuditEvents` para enviar eventos al canal.
**nota**  
Si no se crea una política de recursos para el canal, solo el propietario del canal puede llamar a la API `PutAuditEvents` del canal.

   1. (Opcional) Ingrese un ID externo único para proporcionar una capa de protección adicional. El ID externo es una cadena única, como un ID de cuenta o una cadena generada de forma aleatoria, para evitar un suplente confuso. 
**nota**  
Si la política de recursos incluye un ID externo, todas las llamadas a la API `PutAuditEvents` deben incluir el ID externo. Sin embargo, si la política no define un ID externo, usted puede llamar a la API `PutAuditEvents` y especificar un parámetro `externalId`.

   1. Seleccione **Añadir AWS cuenta** para especificar cada ID de AWS cuenta que desee añadir como principal en la política de recursos del canal.

1. (Opcional) En el área **Tags** (Etiquetas), puede agregar hasta 50 pares de claves y valores de etiquetas para que lo ayuden a identificar, ordenar y controlar el acceso al almacén de datos de eventos y al canal. Para obtener más información sobre cómo utilizar las políticas de IAM para autorizar el acceso a un almacén de datos de eventos en función de etiquetas, consulte [Ejemplos: Denegación de acceso para crear o eliminar almacenes de datos de eventos en función de etiquetas](security_iam_id-based-policy-examples.md#security_iam_id-based-policy-examples-eds-tags). Para obtener más información sobre cómo utilizar las etiquetas AWS, consulte [Etiquetar AWS los recursos](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html) en el *Referencia general de AWS*.

1. Cuando esté listo para crear la integración nueva, elija **Add integration** (Agregar integración). No hay ninguna página de reseñas. CloudTrail crea la integración, pero para integrar sus eventos personalizados, debe especificar el ARN del canal en una [https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html](https://docs.aws.amazon.com/awscloudtraildata/latest/APIReference/API_PutAuditEvents.html)solicitud.

1. Llama a la `PutAuditEvents` API para incorporar tus eventos de actividad. CloudTrail Puede agregar hasta 100 eventos de actividad (o hasta 1 MB) por solicitud `PutAuditEvents`. Necesitará el ARN del canal que creó en los pasos anteriores, la carga útil de eventos que desea CloudTrail agregar y el ID externo (si se ha especificado para su política de recursos). Asegúrese de que no haya información confidencial o de identificación personal en la carga útil del evento antes de incorporarla. CloudTrail Los eventos en los que ingiera deben seguir las. CloudTrail [CloudTrail Esquema de eventos de integración de Lake](query-integration-event-schema.md)
**sugerencia**  
Úselo [AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html)para asegurarse de que está ejecutando la versión más actualizada AWS APIs.

   Los siguientes ejemplos muestran cómo utilizar el comando **put-audit-events** de la CLI. Los parámetros **--audit-events** y **--channel-arn** son obligatorios. Necesita el ARN del canal que creó en los pasos previos, el cual se puede copiar de la página de detalles de la integración. El valor de **--audit-events** es una matriz JSON de objetos de eventos. `--audit-events`incluye un identificador obligatorio del evento, la carga útil requerida del evento como valor del evento y una [suma de `EventData` verificación opcional](#event-data-store-integration-custom-checksum) para ayudar a validar la integridad del evento tras su incorporación. CloudTrail

   ```
   aws cloudtrail-data put-audit-events \
   --region region \
   --channel-arn $ChannelArn \
   --audit-events \
   id="event_ID",eventData='"{event_payload}"' \
   id="event_ID",eventData='"{event_payload}"',eventDataChecksum="optional_checksum"
   ```

   A continuación, se muestra un comando de ejemplo con dos ejemplos de eventos.

   ```
   aws cloudtrail-data put-audit-events \
   --region us-east-1 \
   --channel-arn arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \
   --audit-events \
   id="EXAMPLE3-0f1f-4a85-9664-d50a3EXAMPLE",eventData='"{\"eventVersion\":\0.01\",\"eventSource\":\"custom1.domain.com\", ...
   \}"' \
   id="EXAMPLE7-a999-486d-b241-b33a1EXAMPLE",eventData='"{\"eventVersion\":\0.02\",\"eventSource\":\"custom2.domain.com\", ...
   \}"',eventDataChecksum="EXAMPLE6e7dd61f3ead...93a691d8EXAMPLE"
   ```

   El siguiente comando de ejemplo agrega el parámetro `--cli-input-json` para especificar un archivo JSON (`custom-events.json`) de la carga útil del evento.

   ```
   aws cloudtrail-data put-audit-events \
   --channel-arn $channelArn \
   --cli-input-json file://custom-events.json \
   --region us-east-1
   ```

   A continuación, se presenta el contenido de muestra del archivo JSON de ejemplo, `custom-events.json`.

   ```
   {
       "auditEvents": [
         {
           "eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\",
           \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\",
           \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\",
           \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\",
           \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"},
           \"additionalEventData\":{\"key\":\"value\"},
           \"sourceIPAddress\":\"source_IP_address\",\"recipientAccountId\":\"recipient_account_ID\"}",
           "id": "1"
         }
      ]
   }
   ```

## (Opcional) Cálculo de un valor de la suma de comprobación
<a name="event-data-store-integration-custom-checksum"></a>

La suma de comprobación que especifiques como valor `EventDataChecksum` en una `PutAuditEvents` solicitud te ayuda a comprobar si CloudTrail recibe el evento coincide con la suma de comprobación; además, ayuda a comprobar la integridad de los eventos. El valor de la suma de comprobación es un SHA256 algoritmo de base 64 que se calcula ejecutando el siguiente comando.

```
printf %s "{"eventData": "{\"version\":\"eventData.version\",\"UID\":\"UID\",
        \"userIdentity\":{\"type\":\"CustomUserIdentity\",\"principalId\":\"principalId\",
        \"details\":{\"key\":\"value\"}},\"eventTime\":\"2021-10-27T12:13:14Z\",\"eventName\":\"eventName\",
        \"userAgent\":\"userAgent\",\"eventSource\":\"eventSource\",
        \"requestParameters\":{\"key\":\"value\"},\"responseElements\":{\"key\":\"value\"},
        \"additionalEventData\":{\"key\":\"value\"},
        \"sourceIPAddress\":\"source_IP_address\",
        \"recipientAccountId\":\"recipient_account_ID\"}",
        "id": "1"}" \
 | openssl dgst -binary -sha256 | base64
```

El comando devuelve la suma de comprobación. A continuación se muestra un ejemplo.

```
EXAMPLEHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=
```

El valor de la suma de comprobación se convierte en el valor de `EventDataChecksum` en la solicitud `PutAuditEvents`. Si la suma de comprobación no coincide con la del evento proporcionado, CloudTrail rechaza el evento con un error. `InvalidChecksum`