本頁面提供 Identity and Access Management (IAM) 角色和權限的相關資訊,以及這些角色和權限與 Cloud SQL 執行個體的搭配使用方式。
簡介
本頁面著重於與 Cloud SQL 相關的 IAM 方面。如要進一步瞭解 IAM 及其一般功能,請參閱「Identity and Access Management」。請特別參閱「管理 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」>「Client」(用戶端) 角色。
Cloud SQL 角色和權限,以及無伺服器選項
請使用服務帳戶,授權這些選項的存取權。服務帳戶會授權存取特定專案中的所有 Cloud SQL。當您建立應用程式或 Cloud Run functions 時,這項服務會為您建立這個帳戶。您可以在「IAM & Admin」(IAM 與管理) >「IAM」 頁面中找到該帳戶,並加上適當的後置字串:
| 無伺服器選項 | 服務帳戶後置字串 |
|---|---|
| App Engine | @gae-api-prod.google.com. |
| Cloud Run functions | @ |
| Cloud Run | compute@ |
Cloud Storage 的 Cloud SQL 角色和權限
Cloud SQL 的匯入和匯出功能會搭配運作。匯出作業會寫入 Cloud Storage,匯入作業則會從 Cloud Storage 讀取。因此,您用於這些作業的服務帳戶必須具備 Cloud Storage 的讀取和寫入權限:
- 如要將資料匯入 Cloud Storage 或從 Cloud Storage 匯出資料,Cloud SQL 執行個體的服務帳戶必須在專案中設定
storage.objectAdminIAM 角色。您可以在 Google Cloud 控制台的執行個體「Overview」(總覽) 頁面中,找到執行個體的服務帳戶名稱。 - 您可以使用
gcloud storage buckets add-iam-policy-binding指令,將這個 IAM 角色授予 bucket 的服務帳戶。 - 如需設定 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 角色」。
控制台
gcloud
如要新增專案層級 IAM 政策,請使用 gcloud beta projects add-iam-policy-binding。
查看專案的 IAM 政策
控制台
gcloud
如要查看專案的 IAM 政策,請使用 gcloud beta projects get-iam-policy。
從專案層級政策中移除成員
控制台
gcloud
如要移除專案層級 IAM 政策,請使用 gcloud beta projects remove-iam-policy-binding。
最佳做法
與其他管理設定一樣,IAM 需要主動管理才能發揮作用。在開放其他使用者存取資源前,請務必瞭解您希望每位使用者扮演的角色。隨著時間推移,專案管理、使用模式和組織擁有權的變更,可能會需要您修改專案的 IAM 設定,尤其是在大型組織中管理 Cloud SQL,或為大量使用者管理 Cloud SQL 時。評估及規劃存取控管設定時,請留意下列最佳做法:
授予存取權時,請遵循最小權限原則。最小權限原則是授予資源存取權的安全指南。根據最小權限原則授予存取權時,您只會授予使用者完成指派工作所需的存取權。
請勿將具備
setIamPolicy權限的角色授予不認識的人。 授予setIamPolicy權限後,使用者就能變更權限並控管資料。只有在您想委派物件和 bucket 的管理控制權時,才應使用具備setIamPolicy權限的角色。請務必委派資源的管理控制權。 請務必確保即使具備管理員權限的個人離開群組,其他團隊成員仍可管理您的資源。常見的做法有以下兩種:
- 將專案的 Cloud SQL 管理員角色指派給群組,而非個人。
- 將專案的 Cloud SQL 管理員角色指派給至少兩位使用者。
後續步驟
- 進一步瞭解控管存取權