角色和權限

本頁面提供有關 Identity and Access Management (IAM) 角色和權限的資訊,以及這些角色和權限在 Cloud SQL 執行個體中的用途。

簡介

本頁面著重於與 Cloud SQL 特別相關的 IAM 方面。如要詳細瞭解 IAM 和一般功能,請參閱「身分與存取權管理」。請特別參閱「管理 IAM 政策」一節。您可以透過 IAM 控管哪些人有權存取 Google Cloud 專案中的資源。您套用至資源的一組存取規則稱為 IAM「政策」。套用至專案的 IAM 政策會定義使用者可在專案內的所有資源上執行的動作。

成員是 IAM 的「對象」。成員可以是個別使用者、群組、網域,甚至廣泛涵蓋大眾。系統會為成員指派角色,授予成員在 Cloud SQL 中執行動作的權限,以及 Google Cloud 更廣泛的權限。每個角色都是一或多項權限的集合。權限是 IAM 的基本單位:每項權限都可讓您執行特定動作。如要查看 Cloud SQL 中所有可用角色和權限的完整清單,請參閱「Cloud SQL 中的 IAM 角色」和「Cloud SQL 中的 IAM 權限」。

使用帳戶連線至 Cloud SQL 執行個體時,該帳戶必須具備「Cloud SQL > 用戶端」角色 (roles/cloudsql.client),其中包含連線所需的權限。

您可以在控制台的「IAM & Admin」(IAM 與管理) >「IAM」 頁面中,為帳戶新增角色,並在「IAM & Admin」(IAM 與管理) >「Roles」(角色)頁面中,查看各角色所屬的權限。

Cloud SQL 會使用服務帳戶,在 Cloud SQL 和其他 Google Cloud 產品之間進行驗證。服務帳戶會以 JSON 格式提供 credentials,您可以從管理中心下載,並在各種情境中用於驗證。

使用 Cloud SQL Auth Proxy 時的 Cloud SQL 角色和權限

如果您使用 Cloud SQL Auth Proxy 從 Compute Engine 執行個體連線至 Cloud SQL 執行個體,可以使用與 Compute Engine 執行個體相關聯的預設 Compute Engine 服務帳戶。

與連線至 Cloud SQL 執行個體的所有帳戶一樣,服務帳戶必須具備「Cloud SQL」>「用戶端」角色。

無伺服器選項的 Cloud SQL 角色和權限

使用服務帳戶授權存取這些選項。服務帳戶會授權存取特定專案中的所有 Cloud SQL。建立應用程式或 Cloud Run functions 時,這項服務會為您建立這個帳戶。您可以在「IAM & Admin」>「IAM」 頁面找到帳戶,並查看適當的後置字串:

無伺服器選項 服務帳戶後置字串
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Run functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
與連線至 Cloud SQL 執行個體的所有帳戶一樣,服務帳戶必須具備「Cloud SQL」>「用戶端」角色。

Cloud Storage 的 Cloud SQL 角色和權限

Cloud SQL 的匯入和匯出功能可搭配使用。匯出作業會寫入 Cloud Storage,匯入作業則會從 Cloud Storage 讀取資料。因此,您用於這些作業的服務帳戶必須具備 Cloud Storage 的讀取和寫入權限:

  • 如要匯入及匯出 Cloud Storage 資料,Cloud SQL 執行個體的服務帳戶必須在專案中設定 storage.objectAdmin IAM 角色。您可以在執行個體的「總覽」頁面,透過 Google Cloud 控制台找到執行個體的服務帳戶名稱。
  • 您可以使用 gcloud storage buckets add-iam-policy-binding 指令,將這個 IAM 角色授予服務帳戶,讓服務帳戶存取該儲存空間。
  • 如需設定 IAM 角色和權限的相關說明,請參閱「使用 IAM 權限」。
  • 詳情請參閱「Cloud Storage 的 IAM」。

Knowledge Catalog 整合功能的 Cloud SQL 角色和權限

如要授予使用者存取 Knowledge Catalog 中 Cloud SQL 中繼資料的權限,可以指派roles/cloudsql.schemaViewer角色給使用者,或在自訂角色中新增 cloudsql.schemas.view 權限。

詳情請參閱「使用 Knowledge Catalog 管理 Cloud SQL 資源」。

其他情境的 Cloud SQL 角色和權限

Cloud SQL 可與其他 Google Cloud 產品和工具互動。 這些互動也需要特定角色和權限,且不同情境可能有所差異。Cloud SQL 說明文件詳細說明瞭以下各項案例的這些規定:

在專案中使用 IAM

以下各節說明如何對專案完成基本的 IAM 工作。

如要完成下列工作,您必須具備 resourcemanager.projects.getIamPolicy 和 resourcemanager.projects.setIamPolicy IAM 權限。

在專案層級政策中新增成員

如要查看與 Cloud SQL 相關聯的角色清單,請參閱「IAM 角色」。

控制台

  1. 前往 Google Cloud 控制台的「IAM & Admin」(IAM 與管理) 頁面。
  2. 在頂端列的專案下拉式選單中,選取要新增成員的專案。
  3. 按一下「Add」(新增)。系統會顯示「Add members, roles to project」(為專案新增成員和角色) 對話方塊。
  4. 在「新增成員」欄位中,指定要授予存取權的實體名稱。
  5. 在「Select a role」(選取角色) 下拉式選單中,授予成員適當的角色。影響 Cloud SQL 資源的角色位於「專案」和「Cloud SQL」子選單中。
  6. 按一下 [儲存]。

gcloud

如要新增專案層級的 IAM 政策,請使用 gcloud beta projects add-iam-policy-binding。

查看專案的 IAM 政策

控制台

  1. 前往 Google Cloud 控制台的「IAM & Admin」(IAM 與管理) 頁面。
  2. 在頂端列的專案下拉式選單中,選取要查看政策的專案。
  3. 您可以透過以下兩種方式查看專案權限:
    • 依「成員」查看:查看與個別成員相關聯的「角色」欄,瞭解每位成員的角色。
    • 依「角色」查看:使用與個別角色相關聯的下拉式選單,查看哪些成員具有該角色。

gcloud

如要查看專案的 IAM 政策,請使用 gcloud beta projects get-iam-policy。

從專案層級政策中移除成員

控制台

  1. 前往 Google Cloud 控制台的「IAM & Admin」(IAM 與管理) 頁面。
  2. 在頂端列的專案下拉式選單中,選取要移除成員的專案。
  3. 請務必依「成員」查看權限,然後選取要移除的成員。
  4. 按一下 [移除]。
  5. 在隨即出現的重疊視窗中,按一下「確認」。

gcloud

如要移除專案層級的 IAM 政策,請使用 gcloud beta projects remove-iam-policy-binding。

最佳做法

與其他管理設定一樣,IAM 也需要積極管理才能發揮效用。將資源開放給其他使用者存取前,請務必瞭解您希望這些人扮演的角色。隨著時間推移,專案管理、使用模式和機構擁有權的變更,可能需要您修改專案的 IAM 設定,特別是當您在大型機構或為大型使用者群組管理 Cloud SQL 時。評估及規劃存取控管設定時,請參考下列最佳做法:

  • 授予存取權時,請使用最小權限原則。 最小權限原則是授予資源存取權的安全性指南。根據最小權限原則授予存取權時,您只會授予使用者完成指派工作所需的存取權。

  • 請勿將具有 setIamPolicy 權限的角色授予不認識的人。授予 setIamPolicy 權限後,使用者就能變更權限及控管資料。只有在想委派物件和儲存空間的管理控制權時,才應使用具有 setIamPolicy 權限的角色。

  • 請務必委派資源的管理控制權。請務必確保在擁有管理員存取權的使用者離開群組後,其他團隊成員仍可管理資源。常見做法如下:

    • 將專案的 Cloud SQL 管理員角色指派給群組,而非個別使用者。
    • 為專案指派至少兩名人員的 Cloud SQL 管理員角色。

後續步驟