View a markdown version of this page

Registrazione dei log AWS CodeCommit Chiamate API con AWS CloudTrail - AWS CodeCommit

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

Registrazione dei log AWS CodeCommit Chiamate API con AWS CloudTrail

CodeCommit è integrato con AWS CloudTrail un servizio che fornisce una registrazione delle azioni intraprese da un utente, ruolo o AWS servizio in CodeCommit. CloudTrail acquisisce tutte le chiamate API CodeCommit come eventi, incluse le chiamate dalla CodeCommit console, dal client Git e dalle chiamate in codice alle CodeCommit API. Se crei un percorso, puoi abilitare la distribuzione continua di CloudTrail eventi a un bucket Amazon S3, inclusi gli eventi per. CodeCommit Se non configuri un percorso, puoi comunque visualizzare gli eventi più recenti nella CloudTrail console nella cronologia degli eventi. Utilizzando le informazioni raccolte da CloudTrail, puoi determinare la richiesta a cui è stata effettuata CodeCommit, l'indirizzo IP da cui è stata effettuata la richiesta, chi ha effettuato la richiesta, quando è stata effettuata e dettagli aggiuntivi.

Per saperne di più CloudTrail, consulta la Guida AWS CloudTrail per l'utente.

CodeCommit informazioni in CloudTrail

CloudTrail è abilitato sul tuo account Amazon Web Services al momento della creazione dell'account. Quando si verifica un'attività in CodeCommit, tale attività viene registrata in un CloudTrail evento insieme ad altri eventi AWS di servizio nella cronologia degli eventi. Puoi visualizzare, cercare e scaricare gli eventi recenti nell'account Amazon Web Services. Per ulteriori informazioni, consulta Visualizzazione degli eventi con la cronologia degli CloudTrail eventi.

Per una registrazione continua degli eventi nel tuo account Amazon Web Services, inclusi gli eventi per CodeCommit, crea un percorso. Un percorso consente di CloudTrail inviare file di registro a un bucket Amazon S3. Per impostazione predefinita, quando crei un trail nella console, il trail è valido per tutte le Regioni . Il percorso registra gli eventi provenienti da tutte le regioni della AWS partizione e invia i file di registro al bucket Amazon S3 specificato. Inoltre, puoi configurare altri AWS servizi per analizzare ulteriormente e agire in base ai dati degli eventi raccolti nei log. CloudTrail Per ulteriori informazioni, consulta:

Quando la CloudTrail registrazione è abilitata nel tuo account Amazon Web Services, le chiamate API effettuate alle CodeCommit azioni vengono registrate nei file di CloudTrail registro, dove vengono scritte con altri record di AWS servizio. CloudTrail determina quando creare e scrivere su un nuovo file in base a un periodo di tempo e alle dimensioni del file.

Tutte CodeCommit le azioni vengono registrate CloudTrail, incluse alcune (ad esempioGetObjectIdentifier) che non sono attualmente documentate nell'AWS CodeCommit API Reference ma sono invece referenziate come autorizzazioni di accesso e documentate in. CodeCommit riferimento alle autorizzazioni Ad esempio, le chiamate alle azioni ListRepositories (in AWS CLI,aws codecommit list-repositories), CreateRepository () e PutRepositoryTriggers (aws codecommit create-repositoryaws codecommit put-repository-triggers) generano voci nei file di CloudTrail registro, così come le chiamate del client Git a e. GitPull GitPush Inoltre, se hai un CodeCommit repository configurato come sorgente per una pipeline in CodePipeline, vedrai chiamate per CodeCommit accedere ad azioni di autorizzazione come UploadArchive from. CodePipeline Poiché CodeCommit viene utilizzato AWS Key Management Service per crittografare e decrittografare i repository, nei log verranno visualizzate anche le chiamate da e CodeCommit le Encrypt azioni effettuate. Decrypt AWS KMS CloudTrail

Ogni voce di log contiene informazioni sull'utente che ha generato la richiesta. Le informazioni sull'identità dell'utente nella voce di log ti permettono di determinare quanto segue:

  • Se la richiesta è stata effettuata con le credenziali utente IAM o root

  • Se la richiesta è stata effettuata con credenziali di sicurezza temporanee per un ruolo o un utente federato oppure da un altro servizio.

  • Se la richiesta è stata effettuata da un altro servizio AWS

Per ulteriori informazioni, consulta Elemento CloudTrail userIdentity.

Puoi archiviare i file di log nel tuo bucket Amazon S3 per tutto il tempo che desideri, ma puoi anche definire regole del ciclo di vita di Amazon S3 per archiviare o eliminare automaticamente i file di registro. Per impostazione predefinita, i file di log sono crittografati mediante la crittografia lato server (SSE) di Amazon S3.

Informazioni sulle voci dei file di registro CodeCommit

CloudTrail i file di registro possono contenere una o più voci di registro. Ogni voce elenca più JSON-formatted eventi. Un evento di log rappresenta una singola richiesta inviata da un'origine e include informazioni sull'operazione richiesta, la data e l'ora dell'operazione, i parametri della richiesta e così via. Le voci di log non sono una traccia di stack ordinata delle chiamate API pubbliche, pertanto non vengono visualizzate in un ordine specifico.

Nota

Questo esempio è stato formattato per migliorare la leggibilità. In un file di CloudTrail registro, tutte le voci e gli eventi sono concatenati in un'unica riga. Anche questo esempio è stato limitato a una singola voce. CodeCommit In un vero file di CloudTrail registro, vengono visualizzate le voci e gli eventi provenienti da più AWS servizi.

Esempio: una voce di registro per elencare i CodeCommit repository

L'esempio seguente mostra una voce di CloudTrail registro che illustra l'ListRepositoriesazione.

Nota

Sebbene ListRepositories restituisca un elenco di repository, le risposte non modificabili non vengono registrate nei CloudTrail log, quindi responseElements vengono mostrate come null nel file di registro.

{ "eventVersion":"1.05", "userIdentity": { "type":"IAMUser", "principalId":"AIDACKCEVSQ6C2EXAMPLE", "arn":"arn:aws:iam::444455556666:user/Mary_Major", "accountId":"444455556666", "accessKeyId":"AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime":"2016-12-14T17:57:36Z", "eventSource":"codecommit.amazonaws.com", "eventName":"ListRepositories", "awsRegion":"us-east-1", "sourceIPAddress":"203.0.113.12", "userAgent":"aws-cli/1.10.53 Python/2.7.9 Windows/8 botocore/1.4.43", "requestParameters":null, "responseElements":null, "requestID":"cb8c167e-EXAMPLE", "eventID":"e3c6f4ce-EXAMPLE", "readOnly":true, "eventType":"AwsApiCall", "apiVersion":"2015-04-13", "recipientAccountId":"444455556666" }

Esempio: una voce di registro per la creazione di un repository CodeCommit

L'esempio seguente mostra una voce di CloudTrail registro che illustra l'CreateRepositoryazione nella regione Stati Uniti orientali (Ohio).

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Mary_Major", "accountId": "444455556666", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime": "2016-12-14T18:19:15Z", "eventSource": "codecommit.amazonaws.com", "eventName": "CreateRepository", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.12", "userAgent": "aws-cli/1.10.53 Python/2.7.9 Windows/8 botocore/1.4.43", "requestParameters": { "repositoryDescription": "Creating a demonstration repository.", "repositoryName": "MyDemoRepo" }, "responseElements": { "repositoryMetadata": { "arn": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "creationDate": "Dec 14, 2016 6:19:14 PM", "repositoryId": "8afe792d-EXAMPLE", "cloneUrlSsh": "ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo", "repositoryName": "MyDemoRepo", "accountId": "111122223333", "cloneUrlHttp": "https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo", "repositoryDescription": "Creating a demonstration repository.", "lastModifiedDate": "Dec 14, 2016 6:19:14 PM" } }, "requestID": "d148de46-EXAMPLE", "eventID": "740f179d-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "accountId": "111122223333", "type": "AWS::CodeCommit::Repository" } ], "eventType": "AwsApiCall", "apiVersion": "2015-04-13", "recipientAccountId": "111122223333" }

Esempi: Registra le voci relative alle chiamate pull di Git a un repository CodeCommit

L'esempio seguente mostra una voce di CloudTrail registro che dimostra l'GitPullazione in cui il repository locale è già aggiornato.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Mary_Major", "accountId": "444455556666", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime": "2016-12-14T18:19:15Z", "eventSource": "codecommit.amazonaws.com", "eventName": "GitPull", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.12", "userAgent": "git/2.11.0.windows.1", "requestParameters": null, "responseElements": null, "additionalEventData": { "protocol": "HTTP", "dataTransferred": false, "repositoryName": "MyDemoRepo", "repositoryId": "8afe792d-EXAMPLE", }, "requestID": "d148de46-EXAMPLE", "eventID": "740f179d-EXAMPLE", "readOnly": true, "resources": [ { "ARN": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "accountId": "111122223333", "type": "AWS::CodeCommit::Repository" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

L'esempio seguente mostra una voce di CloudTrail registro che dimostra l'GitPullazione in cui il repository locale non è aggiornato e quindi i dati vengono trasferiti dal repository al CodeCommit repository locale.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Mary_Major", "accountId": "444455556666", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime": "2016-12-14T18:19:15Z", "eventSource": "codecommit.amazonaws.com", "eventName": "GitPull", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.12", "userAgent": "git/2.10.1", "requestParameters": null, "responseElements": null, "additionalEventData": { "protocol": "HTTP", "capabilities": [ "multi_ack_detailed", "side-band-64k", "thin-pack" ], "dataTransferred": true, "repositoryName": "MyDemoRepo", "repositoryId": "8afe792d-EXAMPLE", "shallow": false }, "requestID": "d148de46-EXAMPLE", "eventID": "740f179d-EXAMPLE", "readOnly": true, "resources": [ { "ARN": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "accountId": "111122223333", "type": "AWS::CodeCommit::Repository" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }

Esempio: una voce di registro per un invio riuscito a un repository CodeCommit

L'esempio seguente mostra una voce di CloudTrail registro che dimostra un'azione riuscitaGitPush. Se il push riesce, l'operazione GitPush viene visualizzata due volte in una voce di log.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Mary_Major", "accountId": "444455556666", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime": "2016-12-14T18:19:15Z", "eventSource": "codecommit.amazonaws.com", "eventName": "GitPush", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.12", "userAgent": "git/2.10.1", "requestParameters": null, "responseElements": null, "additionalEventData": { "protocol": "HTTP", "dataTransferred": false, "repositoryName": "MyDemoRepo", "repositoryId": "8afe792d-EXAMPLE", }, "requestID": "d148de46-EXAMPLE", "eventID": "740f179d-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "accountId": "111122223333", "type": "AWS::CodeCommit::Repository" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }, { "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::444455556666:user/Mary_Major", "accountId": "444455556666", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName":"Mary_Major" }, "eventTime": "2016-12-14T18:19:15Z", "eventSource": "codecommit.amazonaws.com", "eventName": "GitPush", "awsRegion": "us-east-2", "sourceIPAddress": "203.0.113.12", "userAgent": "git/2.10.1", "requestParameters": { "references": [ { "commit": "100644EXAMPLE", "ref": "refs/heads/main" } ] }, "responseElements": null, "additionalEventData": { "protocol": "HTTP", "capabilities": [ "report-status", "side-band-64k" ], "dataTransferred": true, "repositoryName": "MyDemoRepo", "repositoryId": "8afe792d-EXAMPLE", }, "requestID": "d148de46-EXAMPLE", "eventID": "740f179d-EXAMPLE", "readOnly": false, "resources": [ { "ARN": "arn:aws:codecommit:us-east-2:111122223333:MyDemoRepo", "accountId": "111122223333", "type": "AWS::CodeCommit::Repository" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }