Kontrol akses dengan IAM

Identity and Access Management (IAM) memungkinkan Anda mengelola akses ke resource Cloud Scheduler dengan memberikan izin khusus kepada akun utama, seperti pengguna, grup, dan akun layanan. Anda dapat menetapkan peran yang telah ditetapkan atau peran khusus untuk mengontrol siapa yang dapat melihat, mengonfigurasi, dan menjalankan tugas terjadwal.

Ringkasan

Cloud Scheduler menggunakan IAM untuk kontrol akses.

Untuk pengantar IAM dan fiturnya, lihat ringkasan IAM. Untuk mempelajari cara memberikan dan mencabut akses, lihat Mengelola akses ke project, folder, dan organisasi.

Untuk mengetahui daftar izin dan peran yang didukung Cloud Scheduler, lihat bagian berikut.

Mengaktifkan Cloud Scheduler API

Untuk melihat dan menetapkan peran IAM untuk Cloud Scheduler, Anda harus mengaktifkan Cloud Scheduler API untuk project Anda. Anda tidak akan dapat melihat peran Cloud Scheduler di konsol Google Cloud hingga Anda mengaktifkan API.

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Service Usage Admin (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

Mengaktifkan API

Peran yang telah ditetapkan

Tabel berikut mencantumkan peran IAM Cloud Scheduler yang telah ditetapkan beserta daftar terkait semua izin yang disertakan dalam setiap peran.

Peran bawaan menangani sebagian besar kasus penggunaan umum. Jika kasus penggunaan Anda tidak tercakup oleh peran yang telah ditetapkan, Anda dapat membuat peran khusus IAM.

Peran Cloud Scheduler

Role Permissions

(roles/cloudscheduler.admin)

Full access to jobs and executions.

Note that a Cloud Scheduler Admin (or any custom role with the permission cloudscheduler.jobs.create) can create jobs that publish to any Pub/Sub topics within the project.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

cloudscheduler.*

  • cloudscheduler.jobs.create
  • cloudscheduler.jobs.delete
  • cloudscheduler.jobs.enable
  • cloudscheduler.jobs.fullView
  • cloudscheduler.jobs.get
  • cloudscheduler.jobs.list
  • cloudscheduler.jobs.pause
  • cloudscheduler.jobs.run
  • cloudscheduler.jobs.update
  • cloudscheduler.locations.get
  • cloudscheduler.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/cloudscheduler.viewer)

Get and list access to jobs, executions, and locations.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

cloudscheduler.jobs.fullView

cloudscheduler.jobs.get

cloudscheduler.jobs.list

cloudscheduler.locations.*

  • cloudscheduler.locations.get
  • cloudscheduler.locations.list

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

(roles/cloudscheduler.jobRunner)

Access to run jobs.

Lowest-level resources where you can grant this role:

  • Project

appengine.applications.get

cloudscheduler.jobs.fullView

cloudscheduler.jobs.run

resourcemanager.projects.get

resourcemanager.projects.list

serviceusage.catalogs.listMembers

serviceusage.consumerpolicy.analyze

serviceusage.consumerpolicy.get

serviceusage.effectivepolicy.get

serviceusage.groups.*

  • serviceusage.groups.list
  • serviceusage.groups.listExpandedMembers
  • serviceusage.groups.listMembers

serviceusage.services.get

serviceusage.services.list

serviceusage.services.listApis

serviceusage.services.listDependentServices

serviceusage.values.test

Service agent roles

Service agent roles should only be granted to service agents.

Role Permissions

(roles/cloudscheduler.serviceAgent)

Grants Cloud Scheduler Service Account access to manage resources.

iam.serviceAccounts.getAccessToken

iam.serviceAccounts.getOpenIdToken

logging.logEntries.create

logging.logEntries.route

pubsub.topics.publish

Pengelolaan IAM level project

Di level project, atau melalui pewarisan dari folder atau organisasi, Anda dapat memberikan, mengubah, dan mencabut peran IAM menggunakan konsolGoogle Cloud , IAM API, atau Google Cloud CLI. Untuk mengetahui informasi selengkapnya, lihat Mengelola akses ke project, folder, dan organisasi.

Cloud Scheduler tidak mendukung kebijakan IAM level resource atau atribut resource IAM Conditions pada tugas individual. Setiap peran Cloud Scheduler yang diberikan kepada akun utama berlaku untuk semua tugas dalam project:

  • Untuk membatasi akun utama mana yang dapat melihat, mengubah, atau menjalankan tugas tertentu, buat tugas tersebut dalam project terpisah.

  • Untuk membatasi resource target yang dapat dipanggil oleh tugas target HTTP individual saat dijalankan, konfigurasikan tugas dengan akun layanan yang dikelola pengguna khusus yang hanya memiliki izin yang diperlukan untuk target tersebut. Akun utama yang membuat atau mengupdate tugas juga harus memiliki izin iam.serviceAccounts.actAs di akun layanan tersebut, yang dapat Anda berikan di akun layanan individual menggunakan peran Service Account User (roles/iam.serviceAccountUser).