撤銷 Google Cloud 專案的存取權

本文說明撤銷使用者對 Google Cloud 專案存取權的最佳做法、情境和程序。由於每間企業的政策和工作負載各不相同,建議您參考本文,制定自己的政策和程序,以便一致且及時地撤銷存取權。

當員工離職、與約聘人員的合作關係結束,或是協作者轉移到其他專案時,您應採取幾項措施,撤銷不必要的雲端資源存取權。

下列部分流程是選用的。請根據您的安全需求、使用的產品,以及您對要撤銷存取權的使用者的信任程度,決定要執行哪些步驟。

設定專案的最佳做法

在設定時做出明智的選擇,有助於提升專案效率,有效撤銷使用者存取權。

透過現有的身分識別提供者,聯合使用者帳戶

將使用者帳戶與現有身分識別提供者聯合時,請務必傳播使用者停權和刪除事件。透過傳播功能,當您從身分識別提供者暫停或移除使用者帳戶時,使用者也會失去資源存取權。 Google Cloud

詳情請參閱「連結外部身分識別提供者的最佳做法 Google Cloud 」。

如需更多身分相關最佳做法,請參閱「規劃帳戶和機構的最佳做法」。

如要瞭解員工身分聯盟,請參閱「員工身分聯盟」。

考慮使用 Google 群組管理專案資源的存取權

您可以根據團隊成員資格、存取權需求或其他條件,在 Google 群組中整理使用者。建立 Google 群組後,您可以根據群組成員資格,指派專案和資源的存取權。 Google Cloud 如果使用者調到其他團隊或職務,您可以將使用者帳戶移到其他群組,系統會自動移除先前群組透過允許政策授予的存取權。

在某些情況下,使用 Google 網路論壇並不適當。舉例來說,您不應只根據貴商家的組織結構建立群組,並用來管理存取權。如需群組使用最佳做法,請參閱「使用 Google 群組的最佳做法」。

詳情請參閱「在 Google Cloud 控制台中管理群組」和「在貴機構中建立群組」。

使用 OS 登入

請改用 OS 登入,不要使用中繼資料安全殼層金鑰,這樣使用者的授權金鑰就會連結至他們的 Google 身分。移除使用者帳戶後,系統會自動撤銷授權金鑰和 VM 存取權。詳情請參閱「使用 OS 登入功能,確保系統持續根據 IAM 政策評估存取權」。

如需操作說明,請參閱「設定 OS 登入」。

限制外部使用者帳戶的存取權

請勿授予外部使用者專案存取權,因為您無法控管這些使用者帳戶的生命週期。如要限制外部使用者,請使用 iam.allowedPolicyMemberDomains 清單限制條件。

如需操作說明,請參閱「依照網域設定身分限制」。

搭配資料庫使用驗證 Proxy

驗證 Proxy 可將資料庫憑證的生命週期連結至 Google 身分的生命週期。在 Cloud Identity 或 Google Workspace 中暫停或刪除使用者帳戶時,系統會自動撤銷資料庫存取權。

詳情請參閱「Cloud SQL Auth proxy」和「AlloyDB for PostgreSQL Auth proxy」。

為憑證輪替做好準備

設計專案和資源,以便輪替專案層級憑證,不會造成中斷。這些是與專案本身相關聯的密鑰,例如服務帳戶金鑰、OAuth 用戶端密鑰,以及應用程式專屬密鑰 (如資料庫根密碼)。詳情請參閱「回應遭盜用的Google Cloud 憑證」。

限制 API 金鑰

建立及管理 API 金鑰時,請限制可使用這些金鑰的網站、IP 位址和應用程式。具有檢視者或 API 金鑰管理員等角色的使用者帳戶可以查看專案的 API 金鑰,因此必須輪替或刪除任何不受限制的金鑰,才能撤銷帳單存取權。詳情請參閱「保護 API 金鑰」。

監控存取權限

仔細追蹤存取權有助於降低濫用存取權的風險。您可以透過 IAM 角色建議工具追蹤角色使用情況,協助強制執行最低權限原則。此外,Security Command Center 的 Cloud Infrastructure Entitlement Management (CIEM) 功能可讓您管理哪些身分有權存取部署項目中的哪些資源,並降低設定錯誤造成的潛在安全漏洞。

為 Cloud Storage 啟用統一值區層級存取權

統一 bucket 層級存取權可讓您單獨使用 IAM 管理 Cloud Storage bucket 的權限。搭配其他存取權控管選項使用統一 bucket 層級存取權,進一步控管可存取 bucket 內容的對象。

其他最佳做法

除了本文所述的最佳做法,請參閱下列最佳做法:

撤銷專案存取權的情境 Google Cloud

如果您已按照「專案設定最佳做法」一文中的建議操作,下表將說明如何撤銷存取權。

情境 撤銷存取權選項
員工離職。 如果您在 Cloud Identity 或 Google Workspace 之間設定聯盟,並啟用自動使用者佈建功能,系統就會自動撤銷存取權。

如果您未遵循最佳做法,並授予外部使用者身分存取資源的權限,則必須手動從專案和資源中移除這些身分。
員工變更職務。 將員工從團隊群組中移除。
合約參與結束。 如果您在 Cloud Identity 或 Google Workspace 之間設定聯盟,並啟用自動使用者佈建功能,系統就會自動撤銷存取權。

如果您未遵循最佳做法,並授予外部使用者身分存取資源的權限,則必須手動從專案和資源中移除這些身分。
帳戶遭入侵。 如需操作說明,請參閱「回應遭盜用的 Google Cloud 憑證」。

撤銷存取權

如果您在專案設定中做出正確選擇,下列程序將是撤銷人員存取權的有效方式。

如要判斷使用者可存取哪些資源,請使用政策分析工具。如需操作說明,請參閱「分析 IAM 政策」。

從身分識別提供者刪除使用者帳戶

如果使用者即將離開貴機構,且您已將 Cloud Identity 或 Google Workspace 與識別資訊提供者聯合,系統可透過自動使用者佈建功能自動撤銷存取權。

如要瞭解如何刪除員工身分聯盟使用者,請參閱「刪除員工身分聯盟使用者及其資料」。

撤銷員工使用者工作階段

如果懷疑員工使用者的憑證遭盜用,或想在刪除完成前立即終止有效工作階段,請撤銷使用者的工作階段。

詳情請參閱「撤銷員工身分聯盟使用者工作階段」。

將帳戶移至其他群組

如果使用者要變更角色,請從目前的 Google 群組中移除使用者帳戶。如果您已將 Cloud Identity 或 Google Workspace 與身分識別提供者聯盟,以管理群組成員資格,系統可能會自動撤銷存取權。

詳情請參閱「查看及編輯群組詳細資料」。

從 IAM 允許政策中移除使用者帳戶

如要從專案層級的允許政策中移除使用者帳戶,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「IAM permissions」(IAM 權限) 頁面。

    IAM 權限

  2. 選取要移除使用者帳戶的專案。

  3. 找出要從成員清單中移除的使用者帳戶,然後按一下旁邊的核取方塊,再點選「移除」。

如要驗證可設定允許政策的其他位置 (包括資料夾、機構或個別資源),請參閱「確認權限已移除」。

輪替專案憑證

如果遭撤銷存取權的使用者曾存取專案層級憑證 (例如服務帳戶金鑰、OAuth 用戶端密鑰或 API 金鑰),您必須輪替這些憑證。

輪替服務帳戶金鑰

如果您使用服務帳戶金鑰向服務帳戶進行驗證,請務必輪替金鑰。此外,請考慮該人員是否可能在 Google Cloud工具以外的位置存取服務帳戶金鑰,例如程式碼存放區或應用程式設定。

  1. 前往 Google Cloud 控制台的「API 憑證」頁面。

    API 憑證

  2. 按一下要修改的服務帳戶名稱。

  3. 在「金鑰」分頁下方,按一下「新增金鑰」。

  4. 按一下「建立新金鑰」。

  5. 選擇您要建立的「金鑰類型」。在多數情況下,建議使用 JSON,但如果程式碼需要使用 P12,也可以下載此格式的金鑰,確保回溯相容性。

  6. 按一下 [建立]。系統會透過瀏覽器自動下載包含新金鑰的檔案。請將這組金鑰部署到任何有需要的應用程式。

  7. 確認新金鑰運作正常後,請返回憑證頁面,並刪除與該服務帳戶相關聯的舊金鑰。

輪替 OAuth 用戶端 ID 密鑰

OAuth 用戶端 ID 密鑰不會直接授予專案存取權。 不過,如果攻擊者知道 OAuth 用戶端 ID 密碼,就能假冒您的應用程式,並從惡意應用程式要求存取使用者 Google 帳戶。

如果遭撤銷存取權的使用者曾存取密鑰 (包括在原始碼存放區、應用程式設定中,或透過 IAM 角色),您可能需要輪替 OAuth 用戶端 ID 密鑰。

  1. 前往 Google Cloud 控制台的「API 憑證」頁面。

    API 憑證

  2. 按一下要修改的 OAuth 2.0 用戶端 ID 名稱。

  3. 在「Client ID」頁面上,按一下「Reset secret」。

  4. 在確認對話方塊中按一下 [重設] 即可立即撤銷舊的密鑰並設定新密鑰。請注意,任何有效的使用者在下次要求時都必須重新驗證。

  5. 將新密鑰部署至任何有需要的應用程式。

輪替 API 金鑰

API 金鑰不提供專案或使用者資料的存取權,但可控制 Google 要向誰收取 API 要求的費用。具備「檢視者」或「API 金鑰管理員」等角色的使用者帳戶可以查看專案的 API 金鑰。如果您有任何不受限制的金鑰,請在撤銷使用者對專案的存取權時,刪除或重新產生這些金鑰。

  1. 前往 Google Cloud 控制台的「API 憑證」頁面。

    API 憑證

  2. 按一下要修改的 API 金鑰名稱。

  3. 按一下「重新產生金鑰」。

  4. 畫面上會顯示一個對話方塊,其中包含新建立的金鑰。將這個金鑰部署到任何使用要取代金鑰的應用程式。

  5. 確認應用程式使用新金鑰時可正常運作後,請返回憑證頁面,並刪除未受限制的舊金鑰。

撤銷 VM 的存取權

如果遭撤銷存取權的使用者無法登入任何專案 VM,可以略過這個步驟。

  1. 移除該使用者可存取的所有專案層級 SSH 金鑰。

  2. 在該使用者具備 SSH 存取權的每個 VM 中,移除任何執行個體層級的金鑰。

  3. 從該使用者具備登入權限的任何 VM 中移除其帳戶。

  4. 檢查使用者可能安裝的可疑應用程式,這些應用程式可能會提供 VM 的後門存取權。如果您不確定 VM 上執行的任何程式碼是否安全,請重新建立 VM,並從來源重新部署所需應用程式。

  5. 確認 VM 防火牆設定未變更為您規劃或預期的設定。

  6. 如果您從自訂基礎映像檔建立新的 VM,請確認基礎映像檔未經過修改,以免影響新 VM 的安全性。

撤銷資料庫存取權

如果專案未使用 Cloud SQL 或 AlloyDB for PostgreSQL 資源,可以略過這個步驟。

如要撤銷 Cloud SQL 資料庫的存取權,請完成下列步驟:

  1. 前往 Google Cloud 控制台的「SQL instances」(SQL 執行個體) 頁面。

    SQL 執行個體

  2. 找出您要撤銷存取權的資料庫,並按一下其執行個體 ID。

  3. 按一下左選單中的「連結」。

  4. 確認「已授權網路」下方的 IP 位址清單,以及「App Engine 授權」下方的應用程式清單,與您預期的相符。如果您要撤銷其存取權的使用者能夠存取此處列出的網路或應用程式,該使用者就能存取這個資料庫。

  5. 按一下左選單中的「使用者」。

  6. 刪除或變更該使用者有權存取的所有使用者帳戶密碼。請務必更新依賴這些使用者帳戶的任何應用程式。

如要撤銷 AlloyDB for PostgreSQL 資料庫的存取權,請參閱從叢集移除 IAM 使用者或服務帳戶。

重新部署 App Engine

根據預設,App Engine 應用程式可存取相關聯專案的編輯者服務帳戶。App Engine 請求處理常式可以執行建立新 VM,以及讀取或修改 Cloud Storage 中的資料等動作。如果有人能將程式碼部署至 App Engine,就能使用這個服務帳戶開啟專案的後門。如果您擔心已部署應用程式的程式碼完整性,不妨使用版本管控系統中已知的良好映像檔,重新部署應用程式 (包括所有模組)。

確認權限已移除

您可以在機構層級、專案層級或使用政策分析工具驗證權限。

如要找出特定使用者在機構層級可能擁有的資源存取權,請使用 Google Cloud CLI 中的 search-all-iam-policies 方法。舉例來說,如要判斷使用者是否有權存取資源,請執行下列指令:

gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'

其中:

  • ORGANIZATION_ID 是貴機構的編號。
  • IDENTITY 是使用者的身分,例如電子郵件地址。

如要驗證專案的權限,請參閱「主體在專案中擁有的權限」。

如要使用政策分析工具驗證權限,請參閱「判斷主體可存取的資源」。

後續步驟