Cree, actualice y gestione las integraciones de CloudTrail Lake con AWS CLI - 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.

Cree, actualice y gestione las integraciones de CloudTrail Lake con AWS CLI

Puede usarlos AWS CLI para crear, actualizar y administrar sus integraciones de CloudTrail Lake. Cuando utilice el AWS CLI, recuerde que sus comandos se ejecutan en la Región de AWS configuración de su perfil. Si desea ejecutar los comandos en otra región, cambie la región predeterminada de su perfil o utilice el parámetro --region con el comando.

Comandos disponibles para las integraciones de CloudTrail Lake

Los comandos para crear, actualizar y administrar integraciones en CloudTrail Lake incluyen:

Para obtener una lista de los comandos disponibles para los almacenes de datos de eventos de CloudTrail Lake, consulte. Comandos disponibles para los almacenes de datos de eventos

Para obtener una lista de los comandos disponibles para las consultas de CloudTrail Lake, consulteComandos disponibles para las consultas de CloudTrail Lake.

Cree una integración para registrar eventos externos AWS con el AWS CLI

En el AWS CLI, se crea una integración que registra los eventos externos mediante AWS cuatro comandos (tres si ya tiene un almacén de datos de eventos que cumpla con los criterios). Los almacenes de datos de eventos que utilice como destinos para una integración deben ser para una sola región y una sola cuenta; no pueden ser multirregionales, no pueden registrar eventos para las organizaciones y solo pueden incluir eventos de actividad. AWS Organizations El tipo de evento en la consola debe ser Events from integrations (Eventos de integraciones). En la API, el valor eventCategory debe ser ActivityAuditLog. Para obtener más información acerca de las integraciones, consulte Cree una integración con una fuente de eventos externa a AWS.

  1. Ejecute create-event-data-store para crear un almacén de datos de eventos si aún no tiene uno o varios almacenes de datos de eventos que pueda utilizar para la integración.

    El siguiente AWS CLI comando de ejemplo crea un banco de datos de eventos que registra los eventos externos AWS. Para los eventos de actividad, el valor del selector de campo eventCategory es ActivityAuditLog. El almacén de datos de eventos tiene establecido un periodo de retención de 90 días. De forma predeterminada, el banco de datos de eventos recopila eventos de todas las regiones, pero dado que recopila eventos que no son AWS eventos, configúrelo en una sola región agregando la --no-multi-region-enabled opción. La protección contra la terminación está habilitada de forma predeterminada y el almacén de datos de eventos no recopila eventos para cuentas de una organización.

    aws cloudtrail create-event-data-store \ --name my-event-data-store \ --no-multi-region-enabled \ --retention-period 90 \ --advanced-event-selectors '[ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["ActivityAuditLog"] } ] } ]'

    A continuación, se muestra un ejemplo de respuesta.

    { "EventDataStoreArn": "arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE", "Name": "my-event-data-store", "AdvancedEventSelectors": [ { "Name": "Select all external events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": [ "ActivityAuditLog" ] } ] } ], "MultiRegionEnabled": true, "OrganizationEnabled": false, "BillingMode": "EXTENDABLE_RETENTION_PRICING", "RetentionPeriod": 90, "TerminationProtectionEnabled": true, "CreatedTimestamp": "2023-10-27T10:55:55.384000-04:00", "UpdatedTimestamp": "2023-10-27T10:57:05.549000-04:00" }

    Necesitará el ID del almacén de datos de eventos (el sufijo del ARN o EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE en el ejemplo de respuesta anterior) para continuar con el siguiente paso y crear el canal.

  2. Ejecute el create-channelcomando para crear un canal que permita a una aplicación asociada o de origen enviar eventos a un banco de datos de eventos en el que se encuentra CloudTrail.

    Un canal tiene los siguientes componentes:

    Origen

    CloudTrail utiliza esta información para determinar a qué socios envían los datos del evento CloudTrail en su nombre. Se requiere un origen, que puede ser Custom para todos los eventos válidos que no son de AWS , o el nombre de un origen de eventos asociado. Se permite un máximo de un canal por origen.

    Para obtener más información sobre los valores Source para socios disponibles, consulte Información adicional acerca de los socios de integración.

    Estado de la ingesta

    El estado del canal muestra cuándo se recibieron los últimos eventos de un origen de canal.

    Destinos

    Los destinos son los almacenes de datos de eventos de CloudTrail Lake que reciben eventos del canal. Puede cambiar los almacenes de datos de eventos de destino de un canal.

    Para dejar de recibir eventos de un origen, elimine el canal.

    Necesita el ID de al menos un almacén de datos de eventos de destino para ejecutar este comando. El tipo de destino válido es EVENT_DATA_STORE. Puede enviar los eventos ingeridos a más de un almacén de datos de eventos. El siguiente comando de ejemplo crea un canal que envía eventos a dos almacenes de datos de eventos, representados por sus ID en el atributo Location del parámetro --destinations. Los parámetros --destinations, --name y --source son obligatorios. Para ingerir eventos de un CloudTrail socio, especifique el nombre del socio como el valor de--source. Para ingerir eventos de sus propias aplicaciones externas AWS, especifique Custom el valor de. --source

    aws cloudtrail create-channel \ --region us-east-1 \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]' --name my-partner-channel \ --source $partnerSourceName \

    En la respuesta al comando create-channel, copie el ARN del canal nuevo. Necesitará el ARN para ejecutar los comandos put-resource-policy y put-audit-events en los siguientes pasos.

  3. Ejecute el put-resource-policycomando para adjuntar una política de recursos al canal. 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 del canal pueden llamar a la API PutAuditEvents para enviar eventos.

    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.

    La información necesaria para la política está determinada por el tipo de integración.

    • Para una integración de Direction, es CloudTrail necesario que la política contenga los ID de AWS cuenta del socio y que introduzcas el identificador externo exclusivo proporcionado por el socio. CloudTrail añade automáticamente los ID de AWS cuenta del socio a la política de recursos al crear una integración mediante la CloudTrail consola. Consulte la documentación del socio para obtener información sobre cómo obtener los números de AWS cuenta necesarios para la política.

    • Para integrar la solución, debe especificar al menos un identificador de AWS cuenta como principal y, si lo desea, puede introducir un identificador externo para evitar que el agente se confunda.

    A continuación, se enumeran los requisitos de la política de recursos:

    • El ARN del recurso definido en la política debe coincidir con el ARN del canal al que está asociada la política.

    • La política contiene solo una acción: cloudtrail-data: PutAuditEvents

    • La política contiene como mínimo una instrucción. La política puede tener como máximo 20 instrucciones.

    • Cada instrucción contiene como mínimo una entidad principal. Una instrucción puede tener como máximo 50 entidades principales.

    aws cloudtrail put-resource-policy \ --resource-arn "channelARN" \ --policy "{ "Version": "2012-10-17", "Statement": [ { "Sid": "ChannelPolicy", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::111122223333:root", "arn:aws:iam::444455556666:root", "arn:aws:iam::123456789012:root" ] }, "Action": "cloudtrail-data:PutAuditEvents", "Resource": "arn:aws:cloudtrail:us-east-1:777788889999:channel/EXAMPLE-80b5-40a7-ae65-6e099392355b", "Condition": { "StringEquals": { "cloudtrail:ExternalId": "UniqueExternalIDFromPartner" } } } ] }"

    Para obtener más información sobre las políticas de recursos, consulte AWS CloudTrail ejemplos de políticas basadas en recursos.

  4. Ejecuta la PutAuditEventsAPI para incorporar tus eventos de actividad. CloudTrail Necesitarás la carga útil de eventos que deseas CloudTrail añadir. Asegúrate de que no haya información confidencial o de identificación personal en la carga útil del evento antes de incorporarla. CloudTrail Tenga en cuenta que la API PutAuditEvents utiliza el punto de conexión cloudtrail-data de la CLI, no el punto de conexión cloudtrail.

    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. El parámetro --external-id es obligatorio si se define un ID externo en la política de recursos. Necesita el ARN del canal que creó en el paso anterior. El valor de --audit-events es una matriz JSON de objetos de eventos. --audit-eventsincluye un identificador obligatorio del evento, la carga útil requerida del evento como valor del evento y una suma de EventData verificación opcional para ayudar a validar la integridad del evento tras su incorporación. CloudTrail

    aws cloudtrail-data put-audit-events \ --channel-arn $ChannelArn \ --external-id $UniqueExternalIDFromPartner \ --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 \ --channel-arn arn:aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --external-id UniqueExternalIDFromPartner \ --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 --external-id $UniqueExternalIDFromPartner --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\":\"12.34.56.78\",\"recipientAccountId\":\"152089810396\"}", "id": "1" } ] }

Para comprobar que la integración funciona y que CloudTrail está ingiriendo los eventos del origen correctamente, ejecute el comando. get-channel El resultado de get-channel muestra la marca de tiempo más reciente en la que se CloudTrail recibieron los eventos.

aws cloudtrail get-channel --channel arn:aws:cloudtrail:us-east-1:01234567890:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE

(Opcional) Cálculo de un valor de la suma de comprobación

La suma de comprobación que especifique como valor EventDataChecksum en una PutAuditEvents solicitud le ayuda a comprobar si CloudTrail recibe el evento que coincide con la suma de comprobación y a comprobar 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.

EXAMPLEDHjkI8iehvCUCWTIAbNYkOgO/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

Actualiza un canal con el AWS CLI

Para actualizar el nombre de un canal o los almacenes de datos de eventos de destino, ejecute el comando update-channel. El parámetro --channel es obligatorio. No se puede actualizar el origen de un canal. A continuación, se muestra un ejemplo.

aws cloudtrail update-channel \ --channel aws:cloudtrail:us-east-1:123456789012:channel/EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE \ --name "new-channel-name" \ --destinations '[{"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE"}, {"Type": "EVENT_DATA_STORE", "Location": "EXAMPLEg922-5n2l-3vz1- apqw8EXAMPLE"}]'

Eliminar un canal para eliminar una integración con el AWS CLI

Para dejar de ingerir eventos de la pareja o de otras actividades externas AWS, elimina el canal ejecutando el delete-channel comando. Se requiere el ARN o el ID (el sufijo ARN) del canal que desea eliminar. A continuación, se muestra un ejemplo.

aws cloudtrail delete-channel \ --channel EXAMPLE8-0558-4f7e-a06a-43969EXAMPLE