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à.
Questa sezione descrive come utilizzare AWS CLI per creare un'integrazione CloudTrail Lake per registrare eventi dall'esterno di AWS.
In AWS CLI, crei un'integrazione 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). NelAPI, il eventCategory
valore deve essereActivityAuditLog
. Per ulteriori informazioni sulle integrazioni, consulta la pagina Crea un'integrazione con una fonte di eventi esterna a AWS.
-
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-enabled
opzione. 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 del data store dell'evento (il suffisso diARN, o
EXAMPLEf852-4e8f-8bd1-bcf6cEXAMPLE
nell'esempio di risposta precedente) per passare al passaggio successivo e creare il tuo canale. -
Esegui il create-channel
comando 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 comando di esempio seguente crea un canale che invia eventi a due archivi di dati di eventi, rappresentati da essi IDs nell'Location
attributo del--destinations
parametro. 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, specificateCustom
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 tuo create-channel comando, copia il ARN del nuovo canale. È necessario ARN eseguire i
put-audit-events
comandiput-resource-policy
and nei passaggi successivi. -
Esegui il put-resource-policycomando per allegare una politica delle risorse al canale. Le JSON politiche relative alle risorse sono documenti politici che specificano quali azioni un determinato responsabile può eseguire sulla risorsa e in quali condizioni. Gli account definiti come responsabili nella politica delle risorse del canale possono chiamarli
PutAuditEvents
API per fornire eventi.Nota
Se non crei una politica delle risorse per il canale, solo il proprietario del canale può richiamarla
PutAuditEvents
API sul canale.Le informazioni richieste per la policy dipendono dal tipo di integrazione.
-
Per un'integrazione direzionale, CloudTrail richiede che la policy contenga l' AWS account IDs del partner e richiede l'immissione dell'ID esterno univoco fornito dal partner. CloudTrail aggiunge automaticamente l' AWS account del partner IDs alla politica delle risorse quando si crea un'integrazione utilizzando la CloudTrail console. Consulta la documentazione del partner per scoprire come ottenere i numeri di AWS account necessari per la policy.
-
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:
-
La risorsa ARN definita nella policy deve corrispondere al canale a cui è associata ARN la policy.
-
La policy contiene una sola 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 politiche basate sulle risorse.
-
-
Esegui il comando
PutAuditEvents
APIper inserire i tuoi eventi di 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 Tieni presente chePutAuditEvents
API utilizza l'endpoint, non l'endpoint.cloudtrail-data
CLIcloudtrail
Gli esempi seguenti mostrano come utilizzare il put-audit-events CLI comando. I parametri --audit-events e --channel-arn sono obbligatori. Il parametro --external-id è obbligatorio se nella policy delle risorse è definito un ID esterno. È necessario ARN il canale creato nel passaggio precedente. Il valore di --audit-events è una JSON matrice di oggetti evento.
--audit-events
include un ID richiesto dall'evento, il payload richiesto dell'evento come valore diEventData
e un checksum opzionale per aiutare a convalidare l'integrità dell'evento dopo l'ingestione in. CloudTrailaws 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 comando di esempio seguente aggiunge il
--cli-input-json
parametro per specificare un JSON file ()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
Di seguito sono riportati i contenuti di esempio del JSON file 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 CloudTrail che gli eventi vengano importati correttamente dall'origine eseguendo il get-channel
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 SHA256 algoritmo base64 che si calcola 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