Controllo dell'accesso con IAM

Identity and Access Management (IAM) ti consente di gestire l'accesso alle risorse di Cloud Scheduler concedendo autorizzazioni specifiche alle entità, come utenti, gruppi e service account. Puoi assegnare ruoli predefiniti o personalizzati per controllare chi può visualizzare, configurare ed eseguire i job pianificati.

Panoramica

Cloud Scheduler utilizza IAM per controllo dell'accesso.

Per un'introduzione a IAM e alle sue funzionalità, consulta la panoramica di IAM. Per scoprire come concedere e revocare l'accesso, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Per gli elenchi delle autorizzazioni e dei ruoli supportati da Cloud Scheduler, consulta le sezioni seguenti.

Abilita l'API Cloud Scheduler

Per visualizzare e assegnare i ruoli IAM per Cloud Scheduler, devi abilitare l'API Cloud Scheduler per il tuo progetto. Non potrai visualizzare i ruoli di Cloud Scheduler nella console Google Cloud finché non abiliti l'API.

Ruoli richiesti per abilitare le API

Per abilitare le API, devi disporre dell'autorizzazione serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore Service Usage (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli.

Abilitare l'API

Ruoli predefiniti

La tabella seguente elenca i ruoli IAM predefiniti di Cloud Scheduler con un elenco corrispondente di tutte le autorizzazioni incluse in ogni ruolo.

I ruoli predefiniti coprono i casi d'uso più comuni. Se il tuo caso d'uso non è coperto dai ruoli predefiniti, puoi creare un ruolo IAM personalizzato.

Ruoli 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

Gestione di IAM a livello di progetto

A livello di progetto o tramite l'ereditarietà da una cartella o un'organizzazione, puoi concedere, modificare e revocare i ruoli IAM utilizzando la consoleGoogle Cloud , l'API IAM o Google Cloud CLI. Per saperne di più, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Cloud Scheduler non supporta le policy IAM a livello di risorsa o gli attributi delle risorse delle condizioni IAM per i singoli job. Qualsiasi ruolo Cloud Scheduler concesso a un'entità si applica a tutti i job del progetto:

  • Per limitare le entità che possono visualizzare, modificare o eseguire job specifici, crea i job in progetti separati.

  • Per limitare le risorse di destinazione che un singolo job di destinazione HTTP può richiamare quando viene eseguito, configura il job con un service account gestito dall'utente dedicato che disponga solo delle autorizzazioni necessarie per quella destinazione. Anche le entità che creano o aggiornano il job devono disporre dell'autorizzazione iam.serviceAccounts.actAs su quel account di servizio, che puoi concedere ai singoli service account utilizzando il ruolo Service Account User (roles/iam.serviceAccountUser).