使用 IAM 控管存取權

您可以透過 Identity and Access Management (IAM),將特定權限授予使用者、群組和服務帳戶等主體,藉此管理 Cloud Scheduler 資源的存取權。您可以指派預先定義或自訂角色,控管哪些人可以查看、設定及執行排定的工作。

總覽

Cloud Scheduler 使用 IAM 控管存取權。

如需 IAM 及其功能的簡介,請參閱「IAM 總覽」。如要瞭解如何授予及撤銷存取權,請參閱「管理專案、資料夾和組織的存取權」。

如要查看 Cloud Scheduler 支援的權限和角色清單,請參閱下列各節。

啟用 Cloud Scheduler API

如要查看及指派 Cloud Scheduler 的 IAM 角色,您必須為專案啟用 Cloud Scheduler API。在啟用 API 之前,您無法在 Google Cloud 控制台中查看 Cloud Scheduler 角色。

啟用 API 所需的角色

您必須具備 serviceusage.services.enable 權限,才能啟用 API。如果您建立了專案,可能已透過擁有者角色 (roles/owner) 取得這項權限。否則,您可以透過 Service Usage 管理員角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。

啟用 API

預先定義的角色

下表列出 Cloud Scheduler 預先定義的 IAM 角色,以及各角色具備的所有權限對應清單。

預先定義的角色可因應大多數常見用途。如果預先定義的角色不適用於您的用途,可以建立 IAM 自訂角色。

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

專案層級的 IAM 管理

在專案層級,或透過資料夾或組織繼承,您可以使用Google Cloud 控制台、IAM API 或 Google Cloud CLI 授予、變更及撤銷 IAM 角色。詳情請參閱「管理專案、資料夾和組織的存取權」。

Cloud Scheduler 不支援個別工作的資源層級 IAM 政策或 IAM 條件資源屬性。授予主體的任何 Cloud Scheduler 角色,都適用於專案中的所有工作:

  • 如要限制哪些主體可以查看、修改或執行特定工作,請在不同的專案中建立這些工作。

  • 如要限制個別 HTTP 目標工作在執行時可叫用的目標資源,請為工作設定專屬的使用者自行管理的服務帳戶,並僅授予該目標所需的權限。建立或更新工作的委託人也必須具備該服務帳戶的 iam.serviceAccounts.actAs 權限,您可以使用服務帳戶使用者角色 (roles/iam.serviceAccountUser) 授予個別服務帳戶這項權限。