Creación de una integración personalizada con la consola - AWS CloudTrail

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

Puede utilizar CloudTrail para registrar y almacenar datos de actividad de los usuarios desde cualquier origen en los entornos híbridos, como aplicaciones internas o de 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, luego llame a la API PutAuditEvents para ingerir eventos y proporcione el ARN del canal y la carga útil del evento. Después de utilizar la API PutAuditEvents para ingerir la actividad de la aplicación en CloudTrail, puede utilizar CloudTrail Lake para buscar, consultar y analizar los datos que se registran de las aplicaciones.

  1. Inicie sesión en la AWS Management Console y abra la consola de CloudTrail en https://console.aws.amazon.com/cloudtrail/.

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

  3. 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.

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

  5. 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.

  6. 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.

    2. Elija Agregar cuenta de AWS para especificar el ID de cada cuenta de AWS que desea agregar como entidad principal en la política de recursos del canal.

  7. (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. Para obtener más información sobre cómo puede utilizar las etiquetas en AWS, consulte Etiquetado de los recursos de AWS en la Referencia general de AWS.

  8. Cuando esté listo para crear la integración nueva, elija Add integration (Agregar integración). No hay página de revisión. CloudTrail crea la integración, pero para integrar los eventos personalizados, debe especificar el ARN del canal en una solicitud PutAuditEvents.

  9. Llame a la API PutAuditEvents para ingerir los eventos de actividad en 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 los eventos que desea que CloudTrail agregue y el ID externo (si lo especificó en la 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 en CloudTrail. Los eventos que ingiera en CloudTrail deben seguir el Esquema de eventos de integraciones de CloudTrail Lake.

    sugerencia

    Utilice AWS CloudShell para asegurarse de que se están ejecutando las API AWS más recientes.

    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 ID obligatorio del evento, la carga útil requerida del evento como el valor de EventData y una suma de comprobación opcional para ayudar a validar la integridad del evento una vez ingerido en 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

La suma de comprobación que se especifica como valor de EventDataChecksum en una solicitud PutAuditEvents ayuda a verificar que CloudTrail recibe el evento que coincide con la suma de comprobación y ayuda a verificar la integridad de los eventos. El valor de la suma de comprobación es un algoritmo base64-SHA256 que se calcula mediante la ejecución del 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 y se produce un error InvalidChecksum.