Peran dan izin IAM

Halaman ini menjelaskan akun layanan, peran, dan izin Cloud Deploy.

Akses di Cloud Deploy dikontrol menggunakan Identity and Access Management (IAM). IAM memungkinkan Anda membuat dan mengelola izin untuk resource Google Cloud. Cloud Deploy menyediakan kumpulan peran IAM standar tertentu dengan setiap peran berisi kumpulan izin. Anda dapat menggunakan peran ini untuk memberikan akses yang lebih terperinci ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah, jadi Anda hanya memberikan akses yang diperlukan ke resource Anda.

Lihat Menggunakan IAM untuk membatasi akses Cloud Deploy untuk mempelajari fitur keamanan kontrol akses lanjutan.

Akun layanan di Cloud Deploy

Secara default, Cloud Deploy berjalan menggunakan akun layanan Compute Engine default. Untuk informasi selengkapnya tentang cara mengonfigurasi akun layanan ini untuk digunakan dengan Cloud Deploy, atau memilih akun lain, lihat dokumentasi akun layanan eksekusi Cloud Deploy.

Cari tahu lebih lanjut cara Cloud Deploy menggunakan akun layanan.

Peran Cloud Deploy yang telah ditetapkan

Dengan IAM, setiap metode API di Cloud Deploy API mengharuskan identitas yang membuat permintaan API memiliki izin yang sesuai untuk menggunakan resource. Izin diberikan dengan menetapkan kebijakan yang memberikan peran kepada akun utama (pengguna, grup, atau akun layanan) project Anda. Anda dapat memberikan beberapa peran kepada akun utama di resource yang sama.

Dokumentasi IAM menyertakan referensi yang dapat ditelusuri dari semua peran yang telah ditetapkan.

Tabel berikut mencantumkan peran IAM Cloud Deploy dan izin yang disertakan:

Izin

(roles/clouddeploy.admin)

Kontrol penuh atas resource Cloud Deploy.

clouddeploy.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.approver)

Izin untuk menyetujui atau menolak peluncuran.

clouddeploy.config.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.rollouts.approve

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.customTargetTypeAdmin)

Izin untuk mengelola resource CustomTargetType

clouddeploy.config.get

clouddeploy.customTargetTypes.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.developer)

Izin untuk mengelola konfigurasi deployment tanpa izin untuk mengakses resource operasional, seperti target.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.*

clouddeploy.rollouts.get

clouddeploy.rollouts.list

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.jobRunner)

Izin untuk menjalankan tugas Cloud Deploy tanpa izin untuk mengirimkan ke target.

clouddeploy.config.get

logging.logEntries.create

storage.objects.create

storage.objects.get

storage.objects.list

(roles/clouddeploy.operator)

Izin untuk mengelola konfigurasi deployment.

clouddeploy.automationRuns.*

clouddeploy.automations.*

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.create

clouddeploy.deliveryPipelines.createTagBinding

clouddeploy.deliveryPipelines.delete

clouddeploy.deliveryPipelines.deleteTagBinding

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deliveryPipelines.update

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.*

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.*

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.ignoreJob

clouddeploy.rollouts.list

clouddeploy.rollouts.retryJob

clouddeploy.rollouts.rollback

clouddeploy.targets.create

clouddeploy.targets.createTagBinding

clouddeploy.targets.delete

clouddeploy.targets.deleteTagBinding

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

clouddeploy.targets.update

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyAdmin)

Izin untuk mengelola Kebijakan Deployment.

clouddeploy.deployPolicies.*

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.policyOverrider)

Izin untuk mengganti Kebijakan Deployment.

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.deployPolicies.override

clouddeploy.locations.*

clouddeploy.operations.*

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.releaser)

Izin untuk membuat rilis dan peluncuran Cloud Deploy.

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.deliveryPipelines.get

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.*

clouddeploy.releases.create

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.advance

clouddeploy.rollouts.cancel

clouddeploy.rollouts.create

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.rollouts.rollback

clouddeploy.targets.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/clouddeploy.viewer)

Dapat melihat resource Cloud Deploy.

clouddeploy.automationRuns.get

clouddeploy.automationRuns.list

clouddeploy.automations.get

clouddeploy.automations.list

clouddeploy.config.get

clouddeploy.customTargetTypes.get

clouddeploy.customTargetTypes.getIamPolicy

clouddeploy.customTargetTypes.list

clouddeploy.deliveryPipelines.get

clouddeploy.deliveryPipelines.getIamPolicy

clouddeploy.deliveryPipelines.list

clouddeploy.deliveryPipelines.listEffectiveTags

clouddeploy.deliveryPipelines.listTagBindings

clouddeploy.deployPolicies.get

clouddeploy.deployPolicies.list

clouddeploy.jobRuns.get

clouddeploy.jobRuns.list

clouddeploy.locations.*

clouddeploy.operations.get

clouddeploy.operations.list

clouddeploy.releases.get

clouddeploy.releases.list

clouddeploy.rollouts.get

clouddeploy.rollouts.list

clouddeploy.targets.get

clouddeploy.targets.getIamPolicy

clouddeploy.targets.list

clouddeploy.targets.listEffectiveTags

clouddeploy.targets.listTagBindings

resourcemanager.projects.get

resourcemanager.projects.list

Selain peran bawaan Cloud Deploy, peran Viewer, Editor, dan Pemilik dasar juga mencakup izin yang terkait dengan Cloud Deploy. Namun, sebaiknya Anda memberikan peran bawaan jika memungkinkan untuk mematuhi prinsip keamanan hak istimewa terendah.

Izin

Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode:

Metode API Izin yang diperlukan Deskripsi
automations.create() clouddeploy.automations.create Buat resource otomatisasi baru.
automations.delete() clouddeploy.automations.delete Menghapus resource otomatisasi yang ada.
automations.get() clouddeploy.automations.get Mengambil detail untuk setiap resource otomatisasi.
automations.list() clouddeploy.automations.list Mencantumkan resource otomatisasi dan metadatanya.
automations.update() clouddeploy.automations.update Memperbarui resource otomatisasi yang ada.
automationRuns.cancel() clouddeploy.automationRuns.cancel Membatalkan otomatisasi yang sedang berjalan.
automationRuns.get() clouddeploy.automationRuns.get Mengambil detail untuk setiap operasi otomatisasi.
automationRuns.list() clouddeploy.automationRuns.list Mencantumkan otomatisasi yang berjalan dan metadatanya.
customTargetTypes.create() clouddeploy.customTargetTypes.create Buat resource jenis target kustom.
customTargetTypes.delete() clouddeploy.customTargetTypes.delete Menghapus resource jenis target kustom.
customTargetTypes.get() clouddeploy.customTargetTypes.get Mengambil detail untuk jenis target kustom.
customTargetTypes.getIamPolicy() clouddeploy.customTargetTypes.getIamPolicy Mendapatkan kebijakan IAM untuk resource jenis target kustom.
customTargetTypes.list() clouddeploy.customTargetTypes.list Mencantumkan jenis target kustom yang tersedia dan metadatanya.
customTargetTypes.patch() clouddeploy.customTargetTypes.patch Memperbarui jenis target kustom yang ada.
customTargetTypes.setIamPolicy() clouddeploy.customTargetTypes.setIamPolicy Menetapkan kebijakan IAM untuk resource jenis target kustom.
deliveryPipelines.create() clouddeploy.deliveryPipelines.create Buat resource pipeline pengiriman baru.
deliveryPipelines.delete() clouddeploy.deliveryPipelines.delete Menghapus resource pipeline pengiriman yang ada.
deliveryPipelines.get() clouddeploy.deliveryPipelines.get Mengambil detail untuk setiap pipeline pengiriman.
deliveryPipelines.getIamPolicy() clouddeploy.deliveryPipelines.getIamPolicy Mendapatkan kebijakan IAM untuk resource pipeline pengiriman.
deliveryPipelines.list() clouddeploy.deliveryPipelines.list Mencantumkan pipeline pengiriman dan metadatanya.
deliveryPipelines.rollbackTarget() clouddeploy.rollouts.rollback Me-roll back target.
deliveryPipelines.setIamPolicy() clouddeploy.deliveryPipelines.setIamPolicy Menetapkan kebijakan IAM untuk resource pipeline pengiriman.
deliveryPipelines.update() clouddeploy.deliveryPipelines.update Memperbarui resource pipeline pengiriman yang ada.
deployPolicies.create() clouddeploy.deployPolicies.create Buat resource kebijakan deployment.
deployPolicies.delete() clouddeploy.deployPolicies.delete Menghapus resource kebijakan deployment.
deployPolicies.get() clouddeploy.deployPolicies.get Mengambil detail untuk resource kebijakan deployment.
deployPolicies.list() clouddeploy.deployPolicies.list Mencantumkan kebijakan deployment yang tersedia beserta metadatanya.
jobRuns.get() clouddeploy.jobRuns.get Ambil resource JobRuns.
jobRuns.list() clouddeploy.jobRuns.list Mencantumkan resource JobRuns dan metadatanya.
jobRuns.terminate() clouddeploy.jobRuns.terminate Menghentikan tugas yang sedang berjalan.
operations.cancel() clouddeploy.operations.cancel Membatalkan operasi yang berjalan lama.
operation.delete() clouddeploy.operations.delete Menghapus operasi yang berjalan lama.
operations.get() clouddeploy.operations.get Mendapatkan operasi yang berjalan lama tertentu (misalnya, untuk menampilkan status pembuatan rilis).
operations.list() clouddeploy.operations.list Mencantumkan operasi yang berjalan lama.
releases.abandon() clouddeploy.releases.abandon Mengabaikan rilis dan mencegah peluncuran lebih lanjut terhadap rilis tersebut.
releases.create() clouddeploy.releases.create Buat resource rilis baru. Pemanggil juga memerlukan izin iam.serviceAccounts.actAs di akun layanan yang digunakan untuk merender manifes.
releases.get() clouddeploy.releases.get Mengambil detail untuk setiap rilis.
releases.list() clouddeploy.releases.list Mencantumkan rilis dan metadata.
rollouts.advance() clouddeploy.rollouts.advance Majukan peluncuran ke fase berikutnya.
rollouts.approve() clouddeploy.rollouts.approve Menyetujui atau menolak peluncuran dengan status persetujuan required.
rollouts.cancel() clouddeploy.rollouts.cancel Membatalkan peluncuran.
rollouts.create() clouddeploy.rollouts.create Buat resource peluncuran baru atau promosikan rilis. Pemanggil juga memerlukan izin iam.serviceAccounts.actAs pada project atau akun layanan yang digunakan untuk men-deploy.
rollouts.get() clouddeploy.rollouts.get Mengambil detail untuk setiap peluncuran.
rollouts.ignoreJob() clouddeploy.rollouts.ignoreJob Mengabaikan tugas yang gagal.
rollouts.list() clouddeploy.rollouts.list Mencantumkan peluncuran dan metadata.
rollouts.retryJob() clouddeploy.rollouts.retryJob Mencoba ulang tugas yang gagal.
rollouts.advance(), rollouts.approve(), rollouts.cancel(), rollouts.create(), rollouts.ignoreJob(), rollouts.retryJob(), deliveryPipelines.rollbackTarget(), jobRuns.terminate() clouddeploy.deployPolicies.override Ganti resource kebijakan deployment.
deployPolicies.update() clouddeploy.deployPolicies.update Memperbarui resource kebijakan deployment yang ada.
targets.create() clouddeploy.targets.create Buat resource target baru.
targets.delete() clouddeploy.targets.delete Menghapus resource target yang ada.
targets.get() clouddeploy.targets.get Mengambil detail untuk setiap target.
targets.getIamPolicy() clouddeploy.targets.getIamPolicy Mendapatkan kebijakan IAM untuk resource target.
targets.list() clouddeploy.targets.list Mencantumkan target dan metadatanya.
targets.setIamPolicy() clouddeploy.targets.setIamPolicy Menetapkan kebijakan IAM untuk resource target.
targets.update() clouddeploy.targets.update Memperbarui resource target yang ada.

Menggunakan IAM untuk membatasi tindakan pada resource Cloud Deploy

Anda dapat mengamankan resource Cloud Deploy menggunakan IAM dengan cara berikut:

  • API meta IAM

    Gunakan setIamPolicy pada resource Cloud Deploy untuk membatasi tindakan pada resource tersebut.

  • IAM Bersyarat

    Terapkan kebijakan akses secara terprogram, termasuk kondisi yang mendasari pemberian atau penolakan akses.

Anda dapat menggunakan kebijakan dan kondisi ini untuk membatasi tindakan berikut pada resource Cloud Deploy:

  • Membuat target atau pipeline pengiriman

    Anda dapat memberikan akses ini kepada pengguna atau grup tertentu.

  • Memperbarui atau menghapus pipeline pengiriman tertentu

    Anda dapat memberikan akses ini kepada pengguna atau grup tertentu.

  • Membuat rilis untuk pipeline pengiriman tertentu

    Anda dapat memberikan akses ini kepada pengguna atau grup tertentu.

  • Memperbarui atau menghapus target tertentu

    Anda dapat memberikan akses ini kepada pengguna atau grup tertentu.

  • Membuat atau menyetujui peluncuran atau mempromosikan rilis

    Anda dapat memberikan akses ini kepada pengguna atau grup tertentu untuk target atau pipeline pengiriman tertentu.

    Anda juga dapat menetapkan kondisi yang membatasi akses ini dalam periode waktu tertentu.

Langkah selanjutnya