專案存取權控管

本頁面說明如何使用身分與存取權管理 (IAM) 控管 Cloud SQL 專案存取權與權限。

總覽

Google Cloud Platform 提供「身分與存取權管理」(IAM) 功能,可讓您以更精細的方式授予使用者 Google Cloud Platform 特定資源的存取權限,避免其他資源遭到未經授權者擅自存取。本頁面說明 Cloud SQL 身分與存取權管理的角色與權限。如需 Google Cloud Platform 身分與存取權管理的詳細說明,請參閱 IAM 說明文件

Cloud SQL 提供一組預先定義的角色,用於協助您輕鬆控管 Cloud SQL 資源的存取權。如果預先定義的角色未提供您需要的權限集,您也可以建立自己的自訂角色。此外,您仍可使用舊版原始角色 (編輯者、檢視者與擁有者),但這些角色無法提供與 Cloud SQL 角色相同的完善控管能力。請特別注意,這些原始角色能提供 Google Cloud Platform 各項資源的存取權,而非只是 Cloud SQL 的資源存取權。如需進一步瞭解原始角色,請參閱原始角色

權限與角色

本節概述 Cloud SQL 支援的權限與角色。

預先定義的角色

Cloud SQL 提供一些預先定義的角色,您可以使用這些角色提供專案成員精細的權限。授予專案成員的角色用於控管成員能夠採取的動作。此外,專案成員可以是個人、群組或服務帳戶。

只要您擁有必要的權限,就能夠將多種角色授予同一個專案成員,也可以隨時變更授予專案成員的角色。

權限範圍越廣的角色會包含定義較為狹隘的角色。舉例來說,「Cloud SQL 編輯者」角色具有所有「Cloud SQL 檢視者」角色的權限,以及其他「Cloud SQL 編輯者」角色的權限。同樣地,「Cloud SQL 管理員」角色具有所有「Coud SQL 編輯者」角色的權限,以及其他「Cloud SQL 管理員」角色的權限。

原始角色 (擁有者、編輯者、檢視者) 提供跨 Google Cloud Platform 的權限。除了下列一般使用 Google Cloud Platform 所需要的 Google Cloud Platform 權限之外,Cloud SQL 的專用角色只會提供 Cloud SQL 權限。

  • resourcemanager.projects.get
  • resourcemanager.projects.list
  • serviceusage.quotas.get
  • serviceusage.services.get

下表列出是 Cloud SQL 適用的預先定義角色,以及角色的 Cloud SQL 權限:

角色 名稱 Cloud SQL 權限 說明
roles/owner 擁有者 cloudsql.* 所有 Google Cloud Platform 資源的完整存取權及控管權;管理使用者的存取權。
roles/writer 編輯者 下列以外的所有 cloudsql 權限:
cloudsql.*.getIamPolicy
cloudsql.*.setIamPolicy
所有 Google Cloud Platform 與 Cloud SQL 資源的讀取/寫入權限 (除了修改權限以外的完整控管權)。
roles/reader 檢視者 cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
所有 Google Cloud Platform 資源的唯讀權限,包含 Cloud SQL 資源。
roles/cloudsql.admin Cloud SQL 管理員 cloudsql.* Cloud SQL 資源的完整控管權。
roles/cloudsql.editor Cloud SQL 編輯者 cloudsql.instances.addServerCa
cloudsql.instances.connect
cloudsql.instances.export
cloudsql.instances.failover
cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.listServerCa
cloudsql.instances.restart
cloudsql.instances.rotateServerCa
cloudsql.instances.truncateLog
cloudsql.instances.update
cloudsql.databases.create
cloudsql.databases.get
cloudsql.databases.list
cloudsql.databases.update
cloudsql.backupRuns.create
cloudsql.backupRuns.get
cloudsql.backupRuns.list
cloudsql.sslCerts.get
cloudsql.sslCerts.list
cloudsql.users.list
管理特定的執行個體。無法查看或修改權限,也無法修改使用者或 sslCerts。無法匯入資料或從備份還原,也無法複製、刪除或推送執行個體。無法啟動或停止備用資源。無法刪除資料庫、備用資源或備份。
roles/cloudsql.viewer Cloud SQL 檢視者 cloudsql.*.export
cloudsql.*.get
cloudsql.*.list
cloudsql.instances.listServerCa
所有 Cloud SQL 資源的唯讀權限。
roles/cloudsql.client Cloud SQL 用戶端 cloudsql.instances.connect
cloudsql.instances.get
從 App Engine 及 Cloud SQL Proxy 連線至 Cloud SQL 執行個體的連線權限。使用 IP 位址存取執行個體時,不需要此權限。

權限與角色

下表列出 Cloud SQL 支援的各項權限、具備該權限的 Cloud SQL 角色,以及該權限的舊版角色 (原始角色)。

權限 Cloud SQL 角色 舊版角色
cloudsql.backupRuns.create Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.backupRuns.delete Cloud SQL 管理員 編輯者
cloudsql.backupRuns.get Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.backupRuns.list Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.databases.create Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.databases.delete Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.databases.get Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.databases.getIamPolicy
Cloud SQL 管理員 擁有者
cloudsql.databases.list Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.databases.setIamPolicy
Cloud SQL 管理員 擁有者
cloudsql.databases.update Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instance.addServerCa
Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.clone Cloud SQL 管理員 編輯者
cloudsql.instances.connect Cloud SQL 管理員
Cloud SQL 用戶端
Cloud SQL 編輯者
編輯者
cloudsql.instances.create Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.delete Cloud SQL 管理員 編輯者
cloudsql.instances.demoteMaster Cloud SQL 管理員 編輯者
cloudsql.instances.export Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.instances.failover Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.get Cloud SQL 管理員
Cloud SQL 用戶端
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.instances.getIamPolicy
Cloud SQL 管理員 擁有者
cloudsql.instances.import Cloud SQL 管理員 編輯者
cloudsql.instances.list Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.instance.listServerCa
Cloud SQL 檢視者 檢視者
cloudsql.instances.promoteReplica Cloud SQL 管理員 編輯者
cloudsql.instances.resetSslConfig Cloud SQL 管理員 編輯者
cloudsql.instances.restart Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.restoreBackup Cloud SQL 管理員 編輯者
cloudsql.instance.rotateServerCa
Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.setIamPolicy
Cloud SQL 管理員 擁有者
cloudsql.instances.startReplica Cloud SQL 管理員 編輯者
cloudsql.instances.stopReplica Cloud SQL 管理員 編輯者
cloudsql.instances.truncateLog Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.instances.update Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.sslCerts.create Cloud SQL 管理員 編輯者
cloudsql.sslCerts.delete Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.sslCerts.get Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.sslCerts.list Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.users.create Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.users.delete Cloud SQL 管理員
Cloud SQL 編輯者
編輯者
cloudsql.users.list Cloud SQL 管理員
Cloud SQL 編輯者
Cloud SQL 檢視者
檢視者
cloudsql.users.update Cloud SQL 管理員 編輯者

自訂角色

如果預先定義的角色無法滿足您的獨特業務需求,您可以指定權限來定義自己的自訂角色。IAM 提供自訂角色功能以支援這方面的需求。

當您建立 Cloud SQL 適用的自訂角色時,請確保您包含 cloudsql.instances.listcloudsql.instances.get,或是包含兩者。否則,Google Cloud Platform 主控台將無法正常運作 Cloud SQL。

GCP 主控台中一般工作的所需權限

工作 其他所需權限
顯示執行個體清單頁面 cloudsql.instances.list
resourcemanager.projects.get
建立執行個體 cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
resourcemanager.projects.get
從 Cloud Shell 連線至執行個體 cloudsql.instances.get
cloudsql.instances.list
cloudsql.instances.update
resourcemanager.projects.get
建立使用者 cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.create
cloudsql.users.list
resourcemanager.projects.get
檢視執行個體資訊 cloudsql.instances.get
cloudsql.instances.list
cloudsql.users.list
monitoring.timeSeries.list
resourcemanager.projects.get

gcloud sql 指令的所需權限

指令 所需權限
gcloud sql backups create cloudsql.backupRuns.create
gcloud sql backups delete cloudsql.backupRuns.delete
gcloud sql backups describe cloudsql.backupRuns.get
gcloud sql backups list cloudsql.backupRuns.list
gcloud sql backups restore cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql connect cloudsql.instances.get
cloudsql.instances.update
gcloud sql databases create cloudsql.databases.create
gcloud sql databases delete cloudsql.databases.delete
gcloud sql databases describe cloudsql.databases.get
gcloud sql databases list cloudsql.databases.list
gcloud sql databases patch cloudsql.databases.get
cloudsql.databases.update
gcloud sql export cloudsql.instances.export
gcloud sql flags list
gcloud sql import cloudsql.instances.import
gcloud sql instances clone cloudsql.instances.clone
gcloud sql instances create cloudsql.instances.create
gcloud sql instances delete cloudsql.instances.delete
gcloud sql instances describe cloudsql.instances.get
gcloud sql instances export cloudsql.instances.export
gcloud sql instances failover cloudsql.instances.failover
gcloud sql instances import cloudsql.instances.import
gcloud sql instances list cloudsql.instances.list
gcloud sql instances patch cloudsql.instances.get
cloudsql.instances.update
gcloud sql instances promote-replica cloudsql.instances.promoteReplica
gcloud sql instances reset-ssl-config cloudsql.instances.resetSslConfig
gcloud sql instances restart cloudsql.instances.restart
gcloud sql instances restore-backup cloudsql.backupRuns.get
cloudsql.instances.restoreBackup
gcloud sql operations describe cloudsql.instances.get
gcloud sql operations list cloudsql.instances.get
gcloud sql operations wait cloudsql.instances.get
gcloud sql ssl client-certs create cloudsql.sslCerts.create
gcloud sql ssl client-certs delete cloudsql.sslCerts.delete
gcloud sql ssl client-certs describe cloudsql.sslCerts.list
gcloud sql ssl client-certs list cloudsql.sslCerts.list
gcloud sql tiers list
gcloud sql users create cloudsql.users.create
gcloud sql users delete cloudsql.users.delete
gcloud sql users list cloudsql.users.list
gcloud sql users set-password cloudsql.users.update

API 方法所需權限

呼叫者必須具備下表列出的權限,才能在 Cloud SQL API 中呼叫各項方法,或是透過使用 API 的 GCP 工具 (例如,Google Cloud Platform 主控台或 gcloud 指令列工具) 執行工作。

所有權限都會套用至專案,您無法按執行個體或其他較低層級的物件套用不同權限。

方法 所需權限
backupRuns.delete cloudsql.backupRuns.delete
backupRuns.get cloudsql.backupRuns.get
backupRuns.insert cloudsql.backupRuns.create
backupRuns.list cloudsql.backupRuns.list
databases.delete cloudsql.databases.delete
databases.get cloudsql.databases.get
databases.insert cloudsql.databases.create
databases.list cloudsql.databases.list
databases.patch cloudsql.databases.updatecloudsql.databases.get
databases.update cloudsql.databases.update
flags.list
instances.clone cloudsql.instances.clone
instances.delete cloudsql.instances.delete
instances.export cloudsql.instances.get
instances.failover cloudsql.instances.failover
instances.get cloudsql.instances.export
instances.import cloudsql.instances.import
instances.insert cloudsql.instances.create
instances.list cloudsql.instances.list
instances.patch cloudsql.instances.getcloudsql.instances.update
instances.promoteReplica cloudsql.instances.promoteReplica
instances.resetSslConfig cloudsql.instances.resetSslConfig
instances.restart cloudsql.instances.restart
instances.restoreBackup cloudsql.instances.restoreBackupcloudsql.backupRuns.get
instances.startReplica cloudsql.instances.startReplica
instances.stopReplica cloudsql.instances.stopReplica
instances.truncateLog cloudsql.instances.truncateLog
instances.update cloudsql.instances.update
operations.get cloudsql.instances.get
operations.list cloudsql.instances.get
sslCerts.delete cloudsql.sslCerts.delete
sslCerts.get cloudsql.sslCerts.get
sslCerts.insert cloudsql.sslCerts.create
sslCerts.list cloudsql.sslCerts.list
users.delete cloudsql.users.delete
users.insert cloudsql.users.create
users.list cloudsql.users.list
users.update cloudsql.users.update

管理 MySQL IAM 適用的 Cloud SQL

您可以使用 Google Cloud Platform 主控台、API 的 IAM 方法或 Cloud SDK 取得及設定 IAM 政策與角色。如需詳細資訊,請參閱授予、變更及撤銷專案成員的存取權限

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
MySQL 適用的 Cloud SQL