Contrôle des accès avec IAM

Identity and Access Management (IAM) vous permet de gérer l'accès aux ressources Cloud Scheduler en accordant des autorisations spécifiques aux comptes principaux, tels que les utilisateurs, les groupes et les comptes de service. Vous pouvez attribuer des rôles prédéfinis ou personnalisés pour contrôler qui peut afficher, configurer et exécuter des jobs planifiés.

Présentation

Cloud Scheduler utilise IAM pour le contrôle des accès.

Pour obtenir une présentation d'IAM et de ses fonctionnalités, consultez la présentation d'IAM. Pour savoir comment accorder et révoquer l'accès, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

Pour obtenir la liste des autorisations et des rôles compatibles avec Cloud Scheduler, consultez les sections suivantes.

Activer l'API Cloud Scheduler

Pour afficher et attribuer des rôles IAM pour Cloud Scheduler, vous devez activer l'API Cloud Scheduler pour votre projet. Vous ne pouvez pas voir les rôles Cloud Scheduler dans la console Google Cloud tant que vous n'avez pas activé l'API.

Rôles requis pour activer les API

Pour activer des API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

Activer l'API

Rôles prédéfinis

Le tableau suivant répertorie les rôles IAM prédéfinis de Cloud Scheduler, ainsi que la liste de toutes les autorisations incluses dans chaque rôle.

Les rôles prédéfinis répondent aux cas d'utilisation les plus typiques. Si votre cas d'utilisation n'est pas couvert par les rôles prédéfinis, vous pouvez créer un rôle IAM personnalisé.

Rôles 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

Gestion IAM au niveau du projet

Au niveau du projet, ou par héritage d'un dossier ou d'une organisation, vous pouvez attribuer, modifier et révoquer des rôles IAM à l'aide de la consoleGoogle Cloud , de l'API IAM ou de la Google Cloud CLI. Pour en savoir plus, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Cloud Scheduler n'est pas compatible avec les stratégies IAM au niveau des ressources ni avec les attributs de ressource des conditions IAM sur les jobs individuels. Tout rôle Cloud Scheduler attribué à un compte principal s'applique à tous les jobs du projet :

  • Pour limiter les comptes principaux autorisés à afficher, modifier ou exécuter des jobs spécifiques, créez ces jobs dans des projets distincts.

  • Pour limiter les ressources cibles qu'un job cible HTTP individuel peut appeler lorsqu'il s'exécute, configurez le job avec un compte de service géré par l'utilisateur dédié qui ne dispose que des autorisations nécessaires pour cette cible. Les comptes principaux qui créent ou mettent à jour le job doivent également disposer de l'autorisation iam.serviceAccounts.actAs sur ce compte de service, que vous pouvez accorder sur des comptes de service individuels à l'aide du rôle Utilisateur du compte de service (roles/iam.serviceAccountUser).