Registrazione delle chiamate API Amazon EC2 tramite AWS CloudTrail
L'API Amazon EC2 è integrata con AWS CloudTrail, un servizio che offre un record delle azioni eseguite da un utente, un ruolo o un Servizio AWS. CloudTrail acquisisce tutte le chiamate all'API Amazon EC2 come eventi. Le chiamate acquisite includono chiamate effettuate dalla console. Le informazioni raccolte da CloudTrail consentono di determinare la richiesta effettuata all'API Amazon EC2, l'indirizzo IP da cui è partita la richiesta e il momento in cui è stata eseguita.
Ogni evento o voce di log contiene informazioni sull'utente che ha generato la richiesta. Le informazioni di identità consentono di determinare quanto segue:
-
Se la richiesta è stata effettuata con le credenziali utente root o utente.
-
Se la richiesta è stata effettuata per conto di un utente del Centro identità IAM.
-
Se la richiesta è stata effettuata con le credenziali di sicurezza temporanee per un ruolo o un utente federato.
-
Se la richiesta è stata effettuata da un altro Servizio AWS.
CloudTrail è attivo nel tuo Account AWS quando create l'account e hai automaticamente accesso alla cronologia degli eventi di CloudTrail. La cronologia degli eventi di CloudTrail fornisce una registrazione visualizzabile, ricercabile, scaricabile e immutabile degli eventi di gestione verificatisi negli ultimi 90 giorni in una Regione AWS. Per ulteriori informazioni, consulta Working with CloudTrail Event history nella Guida per l'utente di AWS CloudTrail. Non sono previsti costi CloudTrail per la visualizzazione della cronologia degli eventi.
Per una registrazione continua degli eventi nell'Account AWS oltre i 90 giorni, creare un trail o un datastore di eventi Data Lake CloudTrail.
- Trail CloudTrail
-
Un trail abilita la distribuzione da parte di CloudTrail dei file di log in un bucket Amazon S3. Tutti i trail creati utilizzando la Console di gestione AWS sono multi-regione. È possibile creare un trail per una singola Regione o per più Regioni tramite AWS CLI. Si consiglia di creare un trail per più Regioni in quanto consente di acquisire l'attività in tutte le Regioni AWS dell'account. Se si crea un trail per una singola Regione, è possibile visualizzare solo gli eventi registrati nella Regione AWS del trail. Per ulteriori informazioni sui trail, consulta Creating a trail for your Account AWS e Creating a trail for an organization nella Guida per l'utente di AWS CloudTrail.
Puoi fornire gratuitamente una copia dei tuoi eventi di gestione in corso al tuo bucket Amazon S3 da CloudTrail creando un percorso, tuttavia dovranno essere considerati i costi di archiviazione di Amazon S3. Per maggiori informazioni sui prezzi di CloudTrail, consultare Prezzi di AWS CloudTrail
. Per informazioni sui prezzi di Amazon S3, consulta Prezzi di Amazon S3 . - Datastore di eventi CloudTrail Lake
-
Data Lake CloudTrail consente di eseguire query SQL sugli eventi. CloudTrail Lake converte gli eventi esistenti in formato JSON basato su righe in formato Apache ORC
. ORC è un formato di archiviazione a colonne ottimizzato per il recupero rapido dei dati. Gli eventi vengono aggregati in archivi di dati degli eventi, che sono raccolte di eventi immutabili basate sui criteri selezionati applicando i selettori di eventi avanzati. I selettori applicati a un archivio di dati degli eventi controllano quali eventi persistono e sono disponibili per l'esecuzione della query. Per ulteriori informazioni su Data Lake CloudTrail, consulta Working with AWS CloudTrail Lake nella Guida per l'utente di AWS CloudTrail. I datastore di eventi e le query di Data Lake CloudTrail comportano costi. Quando crei un datastore di eventi, scegli l'opzione di prezzo da utilizzare per tale datastore. L'opzione di prezzo determina il costo per l'importazione e l'archiviazione degli eventi, nonché il periodo di conservazione predefinito e quello massimo per il datastore di eventi. Per maggiori informazioni sui prezzi di CloudTrail, consultare Prezzi di AWS CloudTrail
.
Eventi di gestione dell'API Amazon EC2 in CloudTrail
Gli eventi di gestione forniscono informazioni sulle operazioni di gestione eseguite sulle risorse nell'Account AWS. Queste operazioni sono definite anche operazioni del piano di controllo (control-plane). Per impostazione predefinita, CloudTrail registra gli eventi di gestione.
Tutte le operazioni dell'API Amazon EC2 sono registrate come eventi di gestione. Per un elenco delle operazioni dell'API registrate in CloudTrail, consultare il Riferimento all'API Amazon EC2. Le chiamate alle operazioni RunInstances, DescribeInstances e StopInstances, per esempio, sono registrate come eventi di gestione.
Esempi di eventi dell'API Amazon EC2
Un evento rappresenta una singola richiesta proveniente da qualsiasi fonte e include informazioni sull'operazione API desiderata, la data e l'ora della stessa, i parametri della richiesta e così via. I file di log CloudTrail non sono una traccia dello stack ordinata delle chiamate API pubbliche e di conseguenza gli eventi non devono apparire in base a un ordine specifico.
Il seguente record di file di log mostra che un utente ha terminato un'istanza.
{
"Records":[
{
"eventVersion":"1.03",
"userIdentity":{
"type":"Root",
"principalId":"123456789012",
"arn":"arn:aws:iam::123456789012:root",
"accountId":"123456789012",
"accessKeyId":"AKIAIOSFODNN7EXAMPLE",
"userName":"user"
},
"eventTime":"2016-05-20T08:27:45Z",
"eventSource":"ec2.amazonaws.com",
"eventName":"TerminateInstances",
"awsRegion":"us-west-2",
"sourceIPAddress":"198.51.100.1",
"userAgent":"aws-cli/1.10.10 Python/2.7.9 Windows/7botocore/1.4.1",
"requestParameters":{
"instancesSet":{
"items":[{
"instanceId":"i-1a2b3c4d"
}]
}
},
"responseElements":{
"instancesSet":{
"items":[{
"instanceId":"i-1a2b3c4d",
"currentState":{
"code":32,
"name":"shutting-down"
},
"previousState":{
"code":16,
"name":"running"
}
}]
}
},
"requestID":"be112233-1ba5-4ae0-8e2b-1c302EXAMPLE",
"eventID":"6e12345-2a4e-417c-aa78-7594fEXAMPLE",
"eventType":"AwsApiCall",
"recipientAccountId":"123456789012"
}
]
}
Per informazioni sui contenuti delle registrazioni CloudTrail, consultare Contenuti delle registrazioni CloudTrail nella Guida per l'utente AWS CloudTrail.
Connessioni di audit effettuate tramite EC2 Instance Connect
È possibile utilizzare AWS CloudTrail per eseguire la verifica degli utenti che si connettono alle tue istanze utilizzando EC2 Instance Connect.
Come eseguire la verifica dell'attività SSH via EC2 Instance Connect utilizzando la console AWS CloudTrail
-
Aprire la console CloudTrail all'indirizzo https://console.aws.amazon.com/cloudtrail/
. -
Verificare di trovarsi nella regione appropriata.
-
Nel riquadro di navigazione scegliere Event history (Cronologia eventi).
-
Per Filtro, scegliere Event source (Origine evento), ec2-instance-connect.amazonaws.com.
-
(Facoltativo) Per Time range (Intervallo temporale), selezionare un intervallo di tempo.
-
Scegliere l'icona Refresh events (Aggiorna eventi).
-
La pagina visualizza gli eventi che corrispondono alle chiamate API SendSSHPublicKey. Espandere un evento utilizzando la freccia per visualizzare dettagli aggiuntivi, come il nome utente e la chiave di accesso AWS utilizzata per stabilire la connessione SSH e l'indirizzo IP di origine.
-
Per visualizzare informazioni complete sull'evento in formato JSON, scegliere View event (Visualizza evento). Il campo requestParameters contiene l'ID istanza di destinazione, il nome utente del sistema operativo e la chiave pubblica utilizzata per stabilire la connessione SSH.
{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "ABCDEFGONGNOMOOCB6XYTQEXAMPLE", "arn": "arn:aws:iam::1234567890120:user/IAM-friendly-name", "accountId": "123456789012", "accessKeyId": "ABCDEFGUKZHNAW4OSN2AEXAMPLE", "userName": "IAM-friendly-name", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-09-21T21:37:58Z"} } }, "eventTime": "2018-09-21T21:38:00Z", "eventSource": "ec2-instance-connect.amazonaws.com", "eventName": "SendSSHPublicKey ", "awsRegion": "us-west-2", "sourceIPAddress": "123.456.789.012", "userAgent": "aws-cli/1.15.61 Python/2.7.10 Darwin/16.7.0 botocore/1.10.60", "requestParameters": { "instanceId": "i-0123456789EXAMPLE", "osUser": "ec2-user", "SSHKey": { "publicKey": "ssh-rsa ABCDEFGHIJKLMNO01234567890EXAMPLE" } }, "responseElements": null, "requestID": "1a2s3d4f-bde6-11e8-a892-f7ec64543add", "eventID": "1a2w3d4r5-a88f-4e28-b3bf-30161f75be34", "eventType": "AwsApiCall", "recipientAccountId": "0987654321" }Se l'account AWS è stato configurato per raccogliere eventi CloudTrail in un bucket S3, è possibile scaricare le informazioni ed eseguirne la verifica in modo programmatico. Per ulteriori informazioni, consulta Recupero e visualizzazione dei file di log di CloudTrail nella Guida per l'utente di AWS CloudTrail.