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 を有効にするために必要なロール

API を有効にするには、serviceusage.services.enable 権限が必要です。プロジェクトを作成した場合は、オーナーロール(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)を使用して個々のサービス アカウントに付与できます。