Zugriffssteuerung mit IAM

Mit Identity and Access Management (IAM) können Sie den Zugriff auf Cloud Scheduler-Ressourcen verwalten, indem Sie Hauptkonten wie Nutzern, Gruppen und Dienstkonten bestimmte Berechtigungen gewähren. Sie können vordefinierte oder benutzerdefinierte Rollen zuweisen, um festzulegen, wer geplante Jobs ansehen, konfigurieren und ausführen darf.

Übersicht

Cloud Scheduler verwendet IAM für die Zugriffssteuerung.

Eine Einführung in IAM und die zugehörigen Features finden Sie in der IAM-Übersicht. Informationen zum Gewähren und Entziehen von Zugriff finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

In den folgenden Abschnitten finden Sie eine Liste der Berechtigungen und Rollen, die von Cloud Scheduler unterstützt werden.

Cloud Scheduler API aktivieren

Zum Anzeigen und Zuweisen von IAM-Rollen für Cloud Scheduler müssen Sie für Ihr Projekt die Cloud Scheduler API aktivieren. Sie können die Cloud Scheduler-Rollen in der Google Cloud Console erst sehen, wenn Sie die API aktiviert haben.

Erforderliche Rollen zum Aktivieren von APIs

Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

API aktivieren

Vordefinierte Rollen

In der folgenden Tabelle sind die vordefinierten IAM-Rollen von Cloud Scheduler und die jeweiligen Berechtigungen aufgeführt.

Diese vorkonfigurierten Rollen berücksichtigen die meisten typischen Anwendungsfälle. Wenn Ihr Anwendungsfall nicht durch die vordefinierten Rollen abgedeckt ist, können Sie eine benutzerdefinierte IAM-Rolle erstellen.

Cloud Scheduler-Rollen

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

IAM-Verwaltung auf Projektebene

Auf Projektebene oder durch Übernahme von einem Ordner oder einer Organisation können Sie IAM-Rollen mithilfe derGoogle Cloud Console, der IAM API oder der Google Cloud CLI zuweisen, ändern und widerrufen. Weitere Informationen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Cloud Scheduler unterstützt keine IAM-Richtlinien auf Ressourcenebene oder IAM-Bedingungen-Ressourcenattribute für einzelne Jobs. Alle Cloud Scheduler-Rollen, die einem Hauptkonto zugewiesen sind, gelten für alle Jobs im Projekt:

  • Wenn Sie einschränken möchten, welche Hauptkonten bestimmte Jobs ansehen, ändern oder ausführen können, erstellen Sie diese Jobs in separaten Projekten.

  • Wenn Sie einschränken möchten, welche Zielressourcen ein einzelner HTTP-Zieljob bei der Ausführung aufrufen kann, konfigurieren Sie den Job mit einem dedizierten nutzerverwalteten Dienstkonto, das nur die für dieses Ziel erforderlichen Berechtigungen hat. Hauptkonten, die den Job erstellen oder aktualisieren, müssen außerdem die Berechtigung iam.serviceAccounts.actAs für dieses Dienstkonto haben. Diese Berechtigung können Sie einzelnen Dienstkonten mit der Rolle Dienstkontonutzer (roles/iam.serviceAccountUser) zuweisen.