Mencatat panggilan API AWS CodeCommit dengan AWS CloudTrail - AWS CodeCommit

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mencatat panggilan API AWS CodeCommit dengan AWS CloudTrail

CodeCommit terintegrasi denganAWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atauAWS layanan di CodeCommit. CloudTrail menangkap awmua panggilan API untuk CodeCommit peristiwa, termasuk panggilan dari CodeCommit konsol, klien Git Anda, dan panggilan kode ke CodeCommit API. Jika membuat jejak, Anda dapat mengaktifkan pengiriman CloudTrail peristiwa berkelanjutan ke bucket Amazon S3, termasuk peristiwa untuk CodeCommit. Jika Anda tidak mengonfigurasi jejak, Anda masih dapat melihat peristiwa terbaru di CloudTrail konsol di Riwayat peristiwa. Menggunakan informasi yang dikumpulkan oleh CloudTrail, Anda dapat menentukan permintaan yang dibuat CodeCommit, alamat IP asal permintaan tersebut dibuat, siapa yang membuat permintaan, kapan permintaan dibuat, dan detail lainnya.

Untuk mempelajari lebih lanjut CloudTrail, lihat PanduanAWS CloudTrail Pengguna.

CodeCommit informasi dalam CloudTrail

CloudTrail diaktifkan pada akun Amazon Web Services Anda pada saat membuat akun. Saat aktivitas terjadi di CodeCommit, aktivitas tersebut dicatat dalam CloudTrail peristiwa bersama peristiwaAWS layanan lainnya di Riwayat peristiwa. Anda dapat melihat, mencari, dan mengunduh kejadian terbaru di akun Amazon Web Services Anda. Untuk informasi selengkapnya, lihat Melihat Kejadian dengan Riwayat CloudTrail Kejadian.

Untuk catatan peristiwa yang sedang berlangsung di akun Amazon Web Services Anda, termasuk peristiwa untuk CodeCommit, buatlah jejak. Jejak CloudTrail memungkinkan pengiriman file log ke bucket Amazon S3. Secara default, saat Anda membuat lintasan di konsol, lintasan tersebut berlaku untuk semua wilayah . Jejak mencatat kejadian dari semua wilayah dalam partisi AWS dan mengirimkan file log ke bucket Amazon S3 yang Anda tentukan. Selain itu, Anda dapat mengonfigurasiAWS layanan lainnya untuk menganalisis lebih lanjut dan bertindak berdasarkan data peristiwa yang dikumpulkan di CloudTrail log. Untuk informasi selengkapnya, lihat :

Saat CloudTrail pencatatan diaktifkan di akun Amazon Web Services Anda, panggilan API dibuat untuk CodeCommit tindakan dilacak dalam file CloudTrail log, di mana mereka ditulis dengan catatanAWS layanan lainnya. CloudTrail menentukan kapan membuat dan tulis ke file baru berdasarkan periode waktu dan ukuran file.

Semua CodeCommit tindakan dicatat oleh CloudTrail, termasuk beberapa (sepertiGetObjectIdentifier) yang saat ini tidak didokumentasikan dalam ReferensiAWS CodeCommit API tetapi sebaliknya direferensikan sebagai izin akses dan didokumentasikan diReferensi izin CodeCommit. Misalnya, panggilan keListRepositories (dalamAWS CLI,aws codecommit list-repositories),CreateRepository (aws codecommit create-repository) danPutRepositoryTriggers (aws codecommit put-repository-triggers) tindakan menghasilkan entri dalam file CloudTrail log, serta panggilan klien Git keGitPull danGitPush. Selain itu, jika Anda memiliki CodeCommit repositori yang dikonfigurasi sebagai sumber untuk pipeline CodePipeline, Anda akan melihat panggilan untuk CodeCommit mengakses tindakan izin sepertiUploadArchive dari CodePipeline. Karena CodeCommit menggunakanAWS Key Management Service untuk mengenkripsi dan mendekripsi repositori, Anda juga akan melihat panggilan dari CodeCommit keEncrypt danDecrypt tindakan dariAWS KMS dalam CloudTrail log.

Setiap entri log berisi informasi tentang siapa yang membuat permintaan tersebut. Informasi identitas pengguna dalam entri log membantu Anda menentukan hal berikut:

  • Jika permintaan tersebut dibuat dengan kredensial pengguna root atau IAM

  • Jika permintaan tersebut dibuat dengan kredensial keamanan sementara untuk peran atau pengguna gabungan, atau dibuat oleh peran yang dimiliki

  • Jika permintaan tersebut dibuat oleh layanan AWS lainnya

Untuk informasi lain, lihat Elemen userIdentity CloudTrail .

Anda dapat menyimpan berkas log dalam bucket Amazon S3 selama yang diinginkan, tetapi Anda juga dapat menentukan aturan siklus hidup Amazon S3 untuk mengarsipkan atau menghapus berkas log secara otomatis. Secara default, berkas log Anda dienkripsi dengan menggunakan enkripsi sisi server (SSE) Amazon S3.

Memahami entri berkas CodeCommit log

CloudTrail file log berisi satu atau beberapa entri log. Setiap entri berisi beberapa peristiwa yang diformat JSON. Sebuah log acara mewakili satu permintaan dari sumber apa pun dan mencakup informasi tentang tindakan yang diminta, tanggal dan waktu tindakan, parameter permintaan, dan sebagainya. Entri log bukan jejak tumpukan yang dipesan dari panggilan API publik, sehingga tidak muncul dalam urutan tertentu.

catatan

Contoh ini telah diformat untuk meningkatkan keterbacaan. Dalam file CloudTrail log, semua entri dan peristiwa digabungkan menjadi satu baris. Contoh ini juga terbatas pada CodeCommit entri tunggal. Dalam file CloudTrail log nyata, Anda melihat entri dan peristiwa dari beberapaAWS layanan.

Contoh: Entri log untuk daftar CodeCommit repositori

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkanListRepositories tindakan.

catatan

MeskipunListRepositories mengembalikan daftar repositori, tanggapan yang tidak dapat dibisukan tidak dicatat dalam CloudTrail log, sehinggaresponseElements ditampilkan sepertinull dalam file 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-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" }

Contoh: Entri log untuk membuat CodeCommit repositori

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkanCreateRepository tindakan di Wilayah US East (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" }

Contoh: Entri log untuk Git menarik panggilan ke CodeCommit repositori

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkanGitPull tindakan di mana repo lokal sudah 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" }

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkanGitPull tindakan di mana repo lokal tidak up-to-date dan data ditransfer dari CodeCommit repositori ke repo lokal.

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

Contoh: Entri log untuk keberhasilan pengiriman ke CodeCommit repositori

Contoh berikut menunjukkan entri CloudTrail log yang menunjukkanGitPush tindakan yang berhasil. Tindakan GitPush muncul dua kali dalam entri log untuk keberhasilan pengiriman.

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