Crea, aggiorna e gestisci le integrazioni di CloudTrail Lake con AWS CLI - AWS CloudTrail

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crea, aggiorna e gestisci le integrazioni di CloudTrail Lake con AWS CLI

Puoi utilizzarli AWS CLI per creare, aggiornare e gestire le tue integrazioni CloudTrail Lake. Quando usi il AWS CLI, ricorda che i tuoi comandi vengono eseguiti nella Regione AWS configurazione per il tuo profilo. Per eseguire i comandi in un'altra regione, modificare la regione predefinita per il profilo oppure utilizzare il parametro --region con il comando.

Comandi disponibili per le integrazioni con CloudTrail Lake

I comandi per creare, aggiornare e gestire le integrazioni in CloudTrail Lake includono:

Per un elenco dei comandi disponibili per gli archivi di dati di eventi CloudTrail Lake, vedi. Comandi disponibili per gli archivi dati degli eventi

Per un elenco dei comandi disponibili per le query CloudTrail Lake, consultaComandi disponibili per le query su CloudTrail Lake.

Crea un'integrazione per registrare gli eventi dall'esterno AWS con AWS CLI

In AWS CLI, crei un'integrazione che registra gli eventi dall'esterno AWS in quattro comandi (tre se disponi già di un archivio dati di eventi che soddisfa i criteri). I data store di eventi utilizzati come destinazioni per un'integrazione devono essere per una singola regione e un singolo account; non possono essere multiregionali, non possono registrare eventi per le organizzazioni e possono includere solo eventi di attività. AWS Organizations Il tipo di evento nella console deve essere Events from integrations (Eventi dalle integrazioni). Nell'API, il valore eventCategory deve essere ActivityAuditLog. Per ulteriori informazioni sulle integrazioni, consulta la pagina Crea un'integrazione con una fonte di eventi esterna a AWS.

  1. Esegui create-event-data-store per creare un archivio di dati degli eventi, se non disponi già di uno o più archivi di dati degli eventi da utilizzare per l'integrazione.

    Il AWS CLI comando di esempio seguente crea un archivio dati di eventi che registra gli eventi dall'esterno. AWS Per gli eventi delle attività, il valore del selettore del campo eventCategory è ActivityAuditLog. L'archivio di dati degli eventi ha un periodo di conservazione di 90 giorni. Per impostazione predefinita, l'event data store raccoglie eventi da tutte le regioni, ma poiché raccoglie AWS eventi diversi, impostalo su una singola regione aggiungendo l'--no-multi-region-enabledopzione. La protezione dalla terminazione è abilitata per impostazione predefinita e l'archivio di dati degli eventi non raccoglie eventi per gli account di un'organizzazione.

    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"] } ] } ]'

    Di seguito è riportata una risposta di esempio.

    { "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" }

    Avrai bisogno dell'ID dell'archivio di dati degli eventi (il suffisso dell'ARN o EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE nell'esempio di risposta precedente) per andare al passaggio successivo e creare il tuo canale.

  2. Eseguite il create-channelcomando per creare un canale che consenta a un'applicazione partner o sorgente di inviare eventi a un archivio dati di eventi in CloudTrail.

    Un canale include i seguenti componenti:

    Origine

    CloudTrail utilizza queste informazioni per determinare i partner a cui inviano i dati degli eventi per CloudTrail conto dell'utente. È necessaria un'origine, che può essere Custom per tutti gli eventi esterni ad AWS validi o il nome di un'origine di eventi del partner. È consentito un massimo di un canale per origine.

    Per informazioni sui valori di Source dei partner disponibili, consulta la pagina Ulteriori informazioni sui partner di integrazione.

    Stato di importazione

    Lo stato del canale mostra quando sono stati ricevuti gli ultimi eventi da un'origine del canale.

    Destinazioni

    Le destinazioni sono gli archivi di dati degli eventi CloudTrail Lake che ricevono eventi dal canale. È possibile modificare gli archivi di dati degli eventi di destinazione per un canale.

    Per interrompere la ricezione di eventi da un'origine, elimina il rispettivo canale.

    È necessario specificare l'ID di almeno un archivio di dati degli eventi di destinazione per eseguire questo comando. Il tipo di destinazione valido è EVENT_DATA_STORE. È possibile inviare gli eventi importati a più di un archivio di dati degli eventi. Il seguente comando di esempio crea un canale che invia eventi a due archivi di dati degli eventi, rappresentati dai relativi ID nell'attributo Location del parametro --destinations. I parametri --destinations, --name e --source sono obbligatori. Per importare eventi da un CloudTrail partner, specificate il nome del partner come valore di--source. Per importare eventi dalle vostre applicazioni all'esterno AWS, specificate Custom come valore di. --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 \

    Nella risposta al comando create-channel, copia l'ARN del nuovo canale. Per eseguire i comandi put-resource-policy e put-audit-events nei passaggi successivi è necessario l'ARN.

  3. Eseguite il put-resource-policycomando per allegare una politica delle risorse al canale. Le policy delle risorse sono documenti di policy JSON che specificano le operazioni che possono essere eseguite da un principale specificato sulla risorsa e in base a quali condizioni. Gli account definiti come principali nella policy delle risorse del canale possono chiamare l'API PutAuditEvents per distribuire gli eventi.

    Nota

    Se non crei una policy delle risorse per il canale, solo il proprietario del canale può chiamare l'API PutAuditEvents sul canale.

    Le informazioni richieste per la policy dipendono dal tipo di integrazione.

    • Per un'integrazione direzionale, CloudTrail richiede che la policy contenga gli ID degli AWS account del partner e richiede l'immissione dell'ID esterno univoco fornito dal partner. CloudTrail aggiunge automaticamente gli ID AWS account del partner alla politica delle risorse quando crei un'integrazione utilizzando la CloudTrail console. Consulta la documentazione del partner per scoprire come ottenere i numeri di AWS account richiesti per la politica.

    • Per l'integrazione di una soluzione, è necessario specificare almeno un ID AWS account come principale e, facoltativamente, inserire un ID esterno per evitare di creare confusione tra deputati.

    Di seguito sono riportati i requisiti per la policy delle risorse:

    • L'ARN della risorsa definito nella policy deve corrispondere all'ARN del canale al quale è collegata la policy.

    • La policy contiene solo un'azione: cloudtrail-data: PutAuditEvents

    • La policy deve includere almeno un'istruzione. La policy può avere un massimo di 20 istruzioni.

    • Ogni istruzione contiene almeno un principale. Un'istruzione può avere un massimo di 50 principali.

    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" } } } ] }"

    Per ulteriori informazioni sulle policy delle risorse, consulta AWS CloudTrail esempi di policy basate sulle risorse.

  4. Esegui l'PutAuditEventsAPI in cui inserire gli eventi delle tue attività. CloudTrail Avrai bisogno del payload di eventi che desideri CloudTrail aggiungere. Assicurati che non vi siano informazioni sensibili o che consentano l'identificazione personale nell'evento payload prima di inserirle. CloudTrail Nota che l'API PutAuditEvents utilizza l'endpoint della CLI cloudtrail-data anziché l'endpoint cloudtrail.

    Negli esempi seguenti viene illustrato come utilizzare il comando CLI put-audit-events. I parametri --audit-events e --channel-arn sono obbligatori. Il parametro --external-id è obbligatorio se nella policy delle risorse è definito un ID esterno. È necessario specificare l'ARN del canale creato nella fase precedente. Il valore di --audit-events è una matrice JSON di oggetti evento. --audit-eventsinclude un ID richiesto dall'evento, il payload richiesto dell'evento come valore di EventData e un checksum opzionale per convalidare l'integrità dell'evento dopo l'ingestione in. 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"

    Di seguito è riportato un comando di esempio con due esempi di eventi.

    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"

    Il seguente comando di esempio aggiunge il parametro --cli-input-json per specificare un file JSON (custom-events.json) del payload dell'evento.

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

    I seguenti sono i contenuti di esempio del file JSON di esempio, 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" } ] }

È possibile verificare che l'integrazione funzioni e che gli eventi vengano CloudTrail importati correttamente dall'origine eseguendo il comando. get-channel L'output di get-channel mostra il timestamp più recente con cui sono stati ricevuti gli CloudTrail eventi.

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

(Facoltativo) Calcolo di un valore di checksum

Il checksum specificato come valore di una PutAuditEvents richiesta consente di EventDataChecksum verificare che CloudTrail riceva l'evento corrispondente al checksum e di verificare l'integrità degli eventi. Il valore di checksum è un algoritmo SHA256 a base 64 che puoi calcolare eseguendo il comando seguente.

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

Il comando restituisce il checksum. Di seguito è riportato un esempio.

EXAMPLEDHjkI8iehvCUCWTIAbNYkOgO/t0YNw+7rrQE=

Il valore del checksum diventa il valore di EventDataChecksum nella richiesta PutAuditEvents. Se il checksum non corrisponde a quello dell'evento fornito, CloudTrail rifiuta l'evento con un errore. InvalidChecksum

Aggiorna un canale con AWS CLI

Per modificare il nome o gli archivi di dati degli eventi di destinazione di un canale, esegui il comando update-channel. Il parametro --channel è obbligatorio. Non è possibile modificare l'origine di un canale. Di seguito è riportato un esempio.

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"}]'

Eliminare un canale per eliminare un'integrazione con AWS CLI

Per interrompere l'importazione di partner o altre attività all'esterno AWS, elimina il canale eseguendo il delete-channel comando. È necessario specificare l'ARN o l'ID del canale (il suffisso ARN) del canale che desideri eliminare. Di seguito è riportato un esempio.

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