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.repoPullRequestApproverhanya memberikan izin untuk menyetujui permintaan pull. Gunakan peran ini denganrepoReaderdaninstanceAccessoruntuk mengizinkan pengguna mengakses instance, menjelajahi repositori, dan menyetujui permintaan pull tanpa mengubah data lain.roles/securesourcemanager.repoCreatorhanya memberikan izin untuk membuat repositori dalam project. Karena repositori harus dilampirkan ke instance, Anda juga harus memilikiroles/securesourcemanager.instanceRepoCreatoruntuk melampirkan repositori ke instance. Gunakanroles/securesourcemanager.repoCreatordenganinstanceRepoCreatoruntuk memberikan izin guna membuat repositori dan melampirkannya ke instance.