存取權控管參考資料

Cloud Tasks 是使用 Google Cloud Identity and Access Management (IAM) 控管存取權。

存取權控管可以在專案層級與佇列層級加以設定。舉例來說,您可以授予功能受到限制的存取權,例如能夠建立工作並將工作新增到佇列,但不能刪除佇列。或者,您也可以為一組開發人員授予專案中所有 Cloud Tasks 資源的存取權。

如要進一步瞭解 IAM 及其功能,請參閱 Google Cloud Identity and Access Management 說明文件,特別是為專案成員授予、變更及撤銷存取權的部分。

每個 Cloud Tasks 方法都要求呼叫者具備必要的權限。如要瞭解支援的權限與角色,請參閱以下清單。當 queue.yaml/xml 有所更新,或當呼叫者使用 GCP 主控台時,系統也會檢查 Cloud Tasks IAM 權限。

權限

下表列出了呼叫者在呼叫每個方法時必須具備的權限:

方法 所需權限
ListQueues 指定專案上的 cloudtasks.queues.list 權限
GetQueue 指定佇列上的 cloudtasks.queues.get 權限
CreateQueue 指定佇列上的 cloudtasks.queues.create 權限
UpdateQueue 指定佇列上的 cloudtasks.queues.update 權限
PurgeQueue 指定佇列上的 cloudtasks.queues.purge 權限
DeleteQueue 指定佇列上的 cloudtasks.queues.delete 權限
PauseQueue 指定佇列上的 cloudtasks.queues.pause 權限
ResumeQueue 指定佇列上的 cloudtasks.queues.resume 權限
GetIamPolicy 指定佇列上的 cloudtasks.queues.getIamPolicy 權限
SetIamPolicy 指定佇列上的 cloudtasks.queues.setIamPolicy 權限
ListTasks 指定佇列上的 cloudtasks.tasks.list 權限
GetTask 指定佇列上的 cloudtasks.tasks.get 權限
CreateTask 指定佇列上的 cloudtasks.tasks.create 權限
DeleteTask 指定佇列上的 cloudtasks.tasks.delete權限
RunTask 指定工作上的 cloudtasks.tasks.run 權限
ListLocations 指定專案上的 cloudtasks.locations.list 權限
GetLocation 指定專案上的 cloudtasks.locations.get 權限

角色

下表列出 Cloud Tasks 身分與存取權管理角色,以及各角色具備的所有權限的對應清單。請注意每個權限只適用於特定資源類型。

角色 具備的權限
roles/cloudtasks.admin cloudtasks.locations.list
cloudtasks.locations.get

cloudtasks.queues.list
cloudtasks.queues.get
cloudtasks.queues.create
cloudtasks.queues.update
cloudtasks.queues.purge
cloudtasks.queues.delete
cloudtasks.queues.pause
cloudtasks.queues.resume
cloudtasks.queues.getIamPolicy
cloudtasks.queues.setIamPolicy

cloudtasks.tasks.list
cloudtasks.tasks.get
cloudtasks.tasks.create
cloudtasks.tasks.delete
cloudtasks.tasks.run
cloudtasks.tasks.fullView

resourcemanager.projects.get
resourcemanager.projects.list
roles/cloudtasks.queueAdmin cloudtasks.locations.list
cloudtasks.locations.get

cloudtasks.queues.list
cloudtasks.queues.get
cloudtasks.queues.create
cloudtasks.queues.update
cloudtasks.queues.purge
cloudtasks.queues.delete
cloudtasks.queues.pause
cloudtasks.queues.resume
cloudtasks.queues.getIamPolicy
cloudtasks.queues.setIamPolicy

resourcemanager.projects.get
resourcemanager.projects.list
roles/cloudtasks.viewer cloudtasks.locations.list
cloudtasks.locations.get

cloudtasks.queues.list
cloudtasks.queues.get

cloudtasks.tasks.list
cloudtasks.tasks.get
cloudtasks.tasks.fullView

resourcemanager.projects.get
resourcemanager.projects.list
roles/cloudtasks.enqueuer cloudtasks.tasks.create
cloudtasks.tasks.fullView

resourcemanager.projects.get
resourcemanager.projects.list
roles/cloudtasks.taskRunner cloudtasks.tasks.run
cloudtasks.tasks.fullView

resourcemanager.projects.get
resourcemanager.projects.list
roles/cloudtasks.taskDeleter cloudtasks.tasks.delete

resourcemanager.projects.get
resourcemanager.projects.list