AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan yang sudah ada AWS CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari lebih lanjut”
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Batasi dorongan dan penggabungan ke cabang di AWS CodeCommit
Secara default, setiap pengguna CodeCommit repositori yang memiliki izin yang cukup untuk mendorong kode ke repositori dapat berkontribusi ke cabang mana pun di repositori itu. Ini benar tidak peduli bagaimana Anda menambahkan cabang ke repositori: dengan menggunakan konsol, baris perintah, atau Git. Namun, Anda mungkin ingin mengkonfigurasi cabang sehingga hanya beberapa pengguna repositori yang dapat mendorong atau menggabungkan kode ke cabang tersebut. Misalnya, Anda mungkin ingin mengkonfigurasi cabang yang digunakan untuk kode produksi sehingga hanya subset dari developer senior dapat mendorong atau menggabungkan perubahan ke cabang tersebut. Developer lain masih dapat menarik dari cabang, membuat cabang mereka sendiri, dan membuat permintaan tarik, tetapi mereka tidak dapat mendorong atau menggabungkan perubahan ke cabang tersebut. Anda dapat mengonfigurasi akses ini dengan membuat kebijakan bersyarat yang menggunakan kunci konteks untuk satu atau beberapa cabang. IAM
catatan
Untuk menyelesaikan beberapa prosedur dalam topik ini, Anda harus masuk dengan pengguna admin yang memiliki izin yang cukup untuk mengonfigurasi dan menerapkan kebijakan. IAM Untuk informasi selengkapnya, lihat Membuat Pengguna dan Grup IAM Admin.
Topik
Mengonfigurasi IAM kebijakan untuk membatasi push dan merge ke cabang
Anda dapat membuat kebijakan IAM yang mencegah pengguna memperbarui cabang, termasuk mendorong komit ke cabang dan menggabungkan permintaan tarik ke cabang. Untuk melakukannya, kebijakan Anda menggunakan pernyataan bersyarat, sehingga efek dari pernyataan Deny
hanya berlaku jika syarat tersebut terpenuhi. Yang APIs Anda sertakan dalam Deny
pernyataan menentukan tindakan mana yang tidak diizinkan. Anda dapat mengkonfigurasi kebijakan ini untuk menerapkan hanya satu cabang di repositori, sejumlah cabang di repositori, atau untuk semua cabang yang cocok dengan kriteria di semua repositori di akun Amazon Web Services.
Untuk membuat kebijakan bersyarat untuk cabang
-
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, pilih Kebijakan.
-
Pilih Buat kebijakan.
-
Pilih JSON, lalu tempel contoh kebijakan berikut. Ganti nilai
Resource
dengan repositori yang berisi cabang yang ingin Anda batasi aksesnya. ARN Ganti nilaicodecommit:References
dengan referensi ke cabang atau cabang yang Anda ingin membatasi akses. Misalnya, kebijakan ini menolak mendorong commit, menggabungkan cabang, menghapus cabang, menghapus file, menggabungkan permintaan tarik, dan menambahkan file ke cabang bernama
dan cabang bernamautama
dalam repositori bernama:prod
MyDemoRepo
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codecommit:GitPush", "codecommit:DeleteBranch", "codecommit:DeleteFile", "codecommit:PutFile", "codecommit:MergeBranchesByFastForward", "codecommit:MergeBranchesBySquash", "codecommit:MergeBranchesByThreeWay", "codecommit:MergePullRequestByFastForward", "codecommit:MergePullRequestBySquash", "codecommit:MergePullRequestByThreeWay" ], "Resource": "
arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo
", "Condition": { "StringEqualsIfExists": { "codecommit:References": [ "refs/heads/main
", "refs/heads/prod
" ] }, "Null": { "codecommit:References": "false" } } } ] }Cabang di Git hanyalah pointer (referensi) ke nilai SHA -1 dari head commit, itulah sebabnya kondisi ini menggunakan
References
. Parameter pernyataanNull
diperlukan dalam setiap kebijakan yang efeknya adalahDeny
dan di manaGitPush
adalah salah satu tindakan. Ini diperlukan karena cara Git dangit-receive-pack
bekerja saat mendorong perubahan dari repo lokal ke CodeCommit.Tip
Untuk membuat kebijakan yang berlaku untuk semua cabang bernama main di semua repositori di akun Amazon Web Services, ubah nilai
Resource
dari repositori menjadi tanda bintang ARN ().*
-
Pilih Tinjau kebijakan. Perbaiki kesalahan dalam pernyataan kebijakan Anda, dan kemudian lanjutkan Buat kebijakan.
-
Ketika JSON divalidasi, halaman Buat kebijakan ditampilkan. Sebuah peringatan muncul di bagian Ringkasan, yang memberitahu Anda bahwa kebijakan ini tidak memberikan izin. Ini yang diharapkan.
-
Di Nama, masukkan nama untuk kebijakan ini, seperti
DenyChangesToMain
. -
(Opsional) Untuk Deskripsi, masukkan deskripsi tujuan kebijakan. Ini memang opsional, tetapi direkomendasikan.
-
Pilih Buat kebijakan.
-
Menerapkan IAM kebijakan ke IAM grup atau peran
Anda telah membuat kebijakan yang membatasi push dan merger ke cabang, tetapi kebijakan tersebut tidak berpengaruh sampai Anda menerapkannya ke IAM pengguna, grup, atau peran. Sebagai praktik terbaik, pertimbangkan untuk menerapkan kebijakan tersebut ke IAM kelompok atau peran. Menerapkan kebijakan untuk IAM pengguna individu tidak menskalakan dengan baik.
Untuk menerapkan kebijakan bersyarat ke sebuah grup atau peran
-
Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/
. -
Di panel navigasi, jika Anda ingin menerapkan kebijakan ke IAM grup, pilih Grup. Jika Anda ingin menerapkan kebijakan ke peran yang diasumsikan pengguna, pilih Peran. Pilih nama grup atau peran.
-
Di tab Izin, pilih Lampirkan kebijakan.
-
Pilih kebijakan bersyarat yang Anda buat dari daftar kebijakan, dan kemudian pilih Lampirkan kebijakan.
Untuk informasi selengkapnya, lihat Melampirkan dan Merinci Kebijakan. IAM
Menguji kebijakan
Anda harus menguji efek dari kebijakan yang telah Anda terapkan pada grup atau peran untuk memastikan tindakan tersebut sesuai harapan. Ada banyak cara Anda dapat melakukan ini. Misalnya, untuk menguji kebijakan yang serupa dengan yang ditunjukkan di atas, Anda dapat:
-
Masuk ke CodeCommit konsol dengan IAM pengguna yang merupakan anggota IAM grup yang menerapkan kebijakan tersebut, atau mengambil peran yang menerapkan kebijakan tersebut. Di konsol, tambahkan file di cabang tempat pembatasan berlaku. Anda akan melihat pesan kesalahan ketika Anda mencoba untuk menyimpan atau mengunggah file ke cabang tersebut. Tambahkan file ke cabang yang berbeda. Operasi tersebut seharusnya berhasil.
-
Masuk ke CodeCommit konsol dengan IAM pengguna yang merupakan anggota IAM grup yang menerapkan kebijakan tersebut, atau mengambil peran yang menerapkan kebijakan tersebut. Buatlah sebuah permintaan tarik yang bergabung ke cabang di mana pembatasan berlaku. Anda harus dapat membuat permintaan tarik, tetapi mendapatkan kesalahan jika Anda mencoba untuk menggabungkannya.
-
Dari terminal atau baris perintah, buat komit di cabang tempat pembatasan berlaku, lalu dorong komit itu ke CodeCommit repositori. Anda akan melihat pesan kesalahan. Commit dan dorongan yang dibuat dari cabang lain seharusnya bekerja seperti biasa.