角色和權限

本頁面提供身分與存取權管理 (IAM) 角色和權限的相關資訊,以及如何在 Cloud SQL 執行個體中使用這些角色和權限。

簡介

本頁將著重介紹與 Cloud SQL 具體相關的 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 與管理員 > IAM 頁面中,為帳戶新增角色,並在 IAM 與管理員 > 角色 頁面中查看哪些權限屬於哪些角色。

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

透過 Cloud SQL 驗證 Proxy 設定 Cloud SQL 角色和權限

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

如同所有連線至 Cloud SQL 執行個體的帳戶,服務帳戶必須具備 Cloud SQL > Client 角色。

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

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

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

Cloud SQL 角色和 Cloud Storage 權限

Cloud SQL 中的匯入和匯出功能可搭配使用。匯出內容會寫入 Cloud Storage,匯入內容則會從 Cloud Storage 讀取。因此,您用於執行這些作業的服務帳戶需要具備 Cloud Storage 的讀取和寫入權限:

  • 如要將資料匯入至 Cloud Storage,以及從 Cloud Storage 匯出資料,Cloud SQL 執行個體的服務帳戶必須在專案中設有 storage.objectAdmin IAM 角色。您可以在執行個體的總覽頁面中,透過 Google Cloud 主控台查看執行個體的服務帳戶名稱。
  • 您可以使用 gcloud storage buckets add-iam-policy-binding 指令,將此身分與存取權管理角色授予儲存桶的服務帳戶。
  • 如需設定身分與存取權管理角色和權限的相關說明,請參閱「使用身分與存取權管理權限」。
  • 詳情請參閱 Cloud Storage 的 IAM 說明。

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

如要提供 Dataplex 的 Cloud SQL 中繼資料存取權,您可以授予使用者 roles/cloudsql.schemaViewer 角色,或將 cloudsql.schemas.view 權限新增至自訂角色。

詳情請參閱「使用 BigQuery 通用目錄管理 Cloud SQL 資源」。

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

Cloud SQL 會與其他 Google Cloud 產品和工具互動。這些互動也需要特定角色和權限,這些角色和權限可能因情境而異。Cloud SQL 說明文件會針對下列每個情況,提供詳細的相關規定資訊:

在專案中使用 IAM

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

如要完成下列工作,您必須具備 resourcemanager.projects.getIamPolicyresourcemanager.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 資源,請查看「Project」(專案) 和「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 管理員角色指派給至少兩位使用者。

後續步驟