Menerjemahkan peran dan izin Cloud Source Repositories ke Secure Source Manager

Panduan ini menunjukkan kepada pengguna Cloud Source Repositories (CSR) cara kontrol aksesnya diterjemahkan ke Secure Source Manager (SSM). Untuk mengikuti panduan ini, Anda harus mengetahui IAM dan CSR, serta memiliki pemahaman dasar tentang SSM.

Model Resource

CSR memiliki satu Google Cloud resource yang merupakan turunan project:

  • Repositori, projects/<var>project</var>/repositories/<var>repo</var>

SSM memiliki dua resource yang merupakan turunan regional dari project:

  • Instance, projects/<var>project</var>/locations/<var>location</var>/instances/<var>instance</var>
  • Repositori, yang merupakan padanan paling langsung dengan repositori CSR dan harus dilampirkan ke (tetapi bukan turunan dari) instance SSM dalam project dan lokasi yang sama, projects/<var>project</var>/locations/<var>location</var>/repositories/<var>repo</var>

SSM memiliki resource lain, tetapi dimodelkan sebagai turunan repositori. Panduan ini menganggapnya sebagai bagian dari repositori.

Peran

CSR memiliki tiga peran: roles/source.reader, roles/source.writer, dan roles/source.admin. Anda dapat mengikat peran pembaca dan penulis ke repositori atau project. Anda hanya boleh mengikat peran Administrator ke project karena izin source.repos.create hanya berlaku pada cakupan project.

SSM memiliki 11 peran untuk akun utama pengguna, peningkatan yang signifikan dibandingkan dengan Cloud Source Repositories. Anda dapat mengelompokkan peran ini ke dalam dua kategori (plus peran superuser).

Peran pengguna super (roles/securesourcemanager.admin) memberikan semua izin SSM. Anda harus mengikat peran ini ke project karena izin instance tidak berlaku jika Anda mengikatnya ke repositori, dan izin repositori tidak berlaku jika Anda mengikatnya ke instance.

Peran Instance SSM

Peran instance memberikan izin untuk mengakses UI instance Secure Source Manager dan terhubung ke instance tersebut menggunakan Git. Anda harus memberikan minimal satu peran instance kepada pengguna agar mereka dapat mengakses repositori di instance. Anda dapat mengikat peran ini ke resource instance atau project.

Peran Izin
roles/securesourcemanager.instanceAccessor Akses instance dan repositorinya. Diperlukan agar peran tingkat repositori dapat diterapkan.
roles/securesourcemanager.instanceManager Mengelola konfigurasi tingkat instance.
roles/securesourcemanager.instanceOwner Kontrol penuh atas konfigurasi instance.
roles/securesourcemanager.instanceRepoCreator Buat repositori di instance.
roles/securesourcemanager.sshKeyUser Mengelola kunci SSH untuk autentikasi ke instance. Tidak memberikan akses instance dengan sendirinya.

Peran Repositori SSM

Peran repositori memberikan izin pada repositori dalam instance Secure Source Manager. Anda dapat mengikat peran ini ke resource repositori atau project, kecuali repoCreator, yang harus Anda ikat ke project.

Peran Izin
roles/securesourcemanager.repoAdmin Kontrol penuh atas repositori, termasuk setelan repositori dan akses pengguna.
roles/securesourcemanager.repoPullRequestApprover Menyetujui permintaan pull di repositori.
roles/securesourcemanager.repoReader Membaca konten repositori serta melihat permintaan pull dan masalah.
roles/securesourcemanager.repoWriter Membaca dan menulis konten repositori, serta mengelola permintaan pull dan masalah.
roles/securesourcemanager.repoCreator Membuat repositori baru dalam project.

Memetakan peran CSR ke SSM

Untuk menggunakan SSM secara efektif, Anda memerlukan setidaknya dua peran: satu peran instance, dan satu peran repositori. Tidak ada pemetaan 1:1 dari peran CSR ke peran SSM. Resep ini hanya memberikan akses yang setara untuk kontrol sumber, bukan untuk fitur SSM seperti permintaan pull, masalah, atau pengelolaan instance.

Di CSR, Anda dapat membuat repositori di beberapa project. Di Secure Source Manager, semua repositori pada instance termasuk dalam project yang sama dengan instance tersebut. Jika Anda mengikat peran apa pun di tingkat project di Secure Source Manager, Anda akan memberikan izin peran tersebut ke setiap repositori di instance tersebut. Jika Anda perlu memberikan izin hanya ke repositori tertentu, gunakan binding tingkat repositori.

Memetakan source.reader

Jika Anda mengikat peran ini di tingkat repositori, ikat securesourcemanager.repoReader pada resource repositori dan securesourcemanager.instanceAccessor pada instance host untuk membuat ulang tingkat akses yang sama. Jika Anda mengikat peran di level project, pengikatan repoReader dan instanceAccessor di level project akan memberikan akses baca ke semua repositori di instance.

Memetakan source.writer

Jika Anda mengikat peran ini di tingkat repositori, ikat securesourcemanager.repoWriter pada resource repositori dan securesourcemanager.instanceAccessor pada instance host untuk membuat ulang tingkat akses yang sama. Jika Anda mengikat peran di level project, pengikatan repoWriter dan instanceAccessor di level project akan memberikan akses tulis ke semua repositori di instance.

Memetakan source.admin

Anda hanya mengikat peran ini di tingkat project. Anda dapat membuatnya ulang dengan mengikat kombinasi securesourcemanager.instanceAccessor, securesourcemanager.repoAdmin, securesourcemanager.instanceRepoCreator, dan securesourcemanager.repoCreator di tingkat project. Kombinasi peran ini memberikan izin untuk membuat repositori di instance mana pun dalam project, dan memberikan izin administrator ke semua repositori di instance mana pun dalam project. Untuk memberikan semua izin SSM dengan cara yang sama seperti source.admin memberikan semua izin CSR, ikat peran pengguna super, securesourcemanager.admin, di tingkat project.

Perbedaan antara SSM dan CSR

Bagian ini menguraikan perubahan utama dalam cara Secure Source Manager menangani peran dan izin dibandingkan dengan Cloud Source Repositories.

Pemberian peran implisit

Saat Anda membuat resource repositori baru, akun utama yang memanggil akan otomatis diberi peran repoAdmin pada resource repositori yang baru dibuat.

Jenis resource baru

SSM memiliki lebih banyak fitur daripada CSR, dan fitur ini dimodelkan sebagai jenis resource baru. Fitur ini mencakup aturan perlindungan cabang, hook, masalah, dan permintaan pull, selain komentar pada masalah dan permintaan pull. Resource ini adalah turunan dari resource repositori. Peran repositori mencakup izin untuk resource ini. Misalnya, repoAdmin dan repoWriter memberikan akses tulis, sedangkan repoReader hanya memberikan akses baca.

Peran terperinci

SSM mencakup peran terperinci yang menyediakan kontrol akses tertentu.

  • roles/securesourcemanager.repoPullRequestApprover hanya memberikan izin untuk menyetujui permintaan pull. Gunakan peran ini dengan repoReader dan instanceAccessor untuk mengizinkan pengguna mengakses instance, menjelajahi repositori, dan menyetujui permintaan pull tanpa mengubah data lain.
  • roles/securesourcemanager.repoCreator hanya memberikan izin untuk membuat repositori dalam project. Karena repositori harus dilampirkan ke instance, Anda juga harus memiliki roles/securesourcemanager.instanceRepoCreator untuk melampirkan repositori ke instance. Gunakan roles/securesourcemanager.repoCreator dengan instanceRepoCreator untuk memberikan izin guna membuat repositori dan melampirkannya ke instance.

Langkah berikutnya