Registrazione delle chiamate API AWS CodeCommit 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 delle chiamate API AWS CodeCommit con AWS CloudTrail

CodeCommit è integrato conAWS CloudTrail, un servizio che offre un record delle operazioni eseguite da un utente, un ruolo o unAWS servizio in CodeCommit. CloudTrail acquisisce un sottoinsieme di chiamate API CodeCommit come eventi, incluse le chiamate dalla CodeCommit console, il client Git e dalle chiamate di codice alle CodeCommit API. Se si crea un percorso, è possibile abilitare la distribuzione continua di CloudTrail eventi in un bucket Amazon S3, inclusi gli eventi per CodeCommit. Se non configuri un percorso, è comunque possibile visualizzare gli eventi più recenti nella CloudTrail console di in Event history (Cronologia eventi). Le informazioni raccolte da CloudTrail, consentono di determinare la richiesta effettuata a CodeCommit, l'autore della richiesta, l'autore della richiesta, il momento in cui è stata eseguita e altri dettagli.

Per ulteriori informazioni CloudTrail, consulta la Guida perAWS CloudTrail l'utente.

CodeCommit informazioni in CloudTrail

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

Per una registrazione continua degli eventi nell'account Amazon Web Services che includa gli eventi per CodeCommit, crea un percorso. Un percorso consente di CloudTrail distribuire i file di log in un bucket Amazon S3. Per impostazione di default, quando crei un trail nella console, il trail sarà valido in tutte le regioni. Il trail registra gli eventi di tutte le regioni nella partizione AWS e distribuisce i file di log nel bucket Amazon S3 specificato. Inoltre, è possibile configurare altriAWS servizi per analizzare con maggiore dettaglio e usare i dati evento raccolti nei file di CloudTrail log. Per ulteriori informazioni, consultare:

Quando la CloudTrail registrazione è abilitata nell'account Amazon Web Services, le chiamate API effettuate alle CodeCommit operazioni vengono tracciate in file di CloudTrail log, dove sono scritte con altri record diAWS servizio. CloudTrail determina quando creare e scrivere in un file di log in base a un periodo di tempo e alla dimensione del file di log.

Tutte CodeCommit le azioni vengono registrate CloudTrail, incluse alcune (ad esempioGetObjectIdentifier) che non sono attualmente documentate nel riferimentoAWS CodeCommit API ma sono invece referenziate come autorizzazioni di accesso e documentate inRiferimento per le autorizzazioni CodeCommit. Ad esempio, le chiamate alle azioniListRepositories (inAWS CLI,aws codecommit list-repositories),CreateRepository (aws codecommit create-repository) ePutRepositoryTriggers (aws codecommit put-repository-triggers) generano voci nei file di CloudTrail registro, così come le chiamate del client Git aGitPull eGitPush. Inoltre, se hai un CodeCommit repository configurato come origine per una pipeline in CodePipeline, vedrai chiamate ad azioni di autorizzazione di CodeCommit accesso comeUploadArchive from CodePipeline. Poiché CodeCommit utilizza AWS Key Management Service per crittografare e decrittografare repository, vedrai anche le chiamate da CodeCommit alle operazioni Encrypt e Decrypt da AWS KMS nei log di 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.

È possibile archiviare i file di log nel bucket Amazon S3 per un periodo di tempo indeterminato, ma è anche possibile definire regole per il ciclo di vita di Amazon S3 per archiviare o eliminare automaticamente i file di log. Per impostazione predefinita, i file di log sono crittografati mediante la crittografia lato server (SSE) di Amazon S3.

Informazioni sulle voci dei file di CodeCommit log

CloudTrail I file di log possono contenere una o più voci di log. Ogni voce elenca più eventi in formato JSON. 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 log, tutte le voci e gli eventi sono concatati in una singola riga. Anche questo esempio è limitato a una singola CodeCommit voce. In un file di CloudTrail log, sono visualizzate le voci e gli eventi di piùAWS servizi.

Esempio: una voce di registro per CodeCommit elencare i repository

L'esempio seguente mostra una voce di CloudTrail log di che illustra l'ListRepositoriesoperazione.

Nota

SebbeneListRepositories restituisca un elenco di repository, le risposte non mutabili non vengono registrate nei CloudTrail log, quindiresponseElements vengono visualizzate comenull 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 CodeCommit repository

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

{ "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: voci di log per le chiamate pull Git a un repository CodeCommit

L'esempio seguente mostra una voce di CloudTrail log di che illustra l'GitPulloperazione in cui è già presente il file di log di up-to-date.

{ "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 è presente up-to-date e quindi i dati vengono trasferiti dal CodeCommit repository al 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 push riuscito a un CodeCommit repository

L'esempio seguente mostra una voce di CloudTrail log di che illustra un'operazione di log di che illustra un'GitPushoperazione di log di. 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" }