Batasi dorongan dan penggabungan ke cabang di AWS CodeCommit - AWS CodeCommit

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.

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
  1. Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, pilih Kebijakan.

  3. Pilih Buat kebijakan.

  4. Pilih JSON, lalu tempel contoh kebijakan berikut. Ganti nilai Resource dengan repositori yang berisi cabang yang ingin Anda batasi aksesnya. ARN Ganti nilai codecommit: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 utama dan cabang bernama prod dalam repositori bernama: 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 menggunakanReferences. Parameter pernyataan Null diperlukan dalam setiap kebijakan yang efeknya adalah Deny dan di mana GitPush adalah salah satu tindakan. Ini diperlukan karena cara Git dan git-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 (). *

  5. Pilih Tinjau kebijakan. Perbaiki kesalahan dalam pernyataan kebijakan Anda, dan kemudian lanjutkan Buat kebijakan.

  6. 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
  1. Masuk ke AWS Management Console dan buka IAM konsol di https://console.aws.amazon.com/iam/.

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

  3. Di tab Izin, pilih Lampirkan kebijakan.

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