撤銷 Google Cloud 專案的存取權

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

當員工離開公司、您與承包商的互動終止,或協作者去處理其他專案時,您必須完成幾個步驟才能撤銷不需要的雲端資源存取權。

下列部分流程是選用的。您應該根據自己的安全性需求、使用的產品,以及是否信任要撤銷其存取權的使用者,決定要採取下列哪些步驟。

設定專案的最佳做法

只要在設定專案時謹慎做出選擇,您就能更有效率地撤銷使用者存取權。

將使用者帳戶與現有身分識別提供者連結

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

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

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

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

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

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

Google 網路論壇不適用於所有情況。舉例來說,您不應只根據貴商家的機構架構使用群組來管理存取權。如需使用群組的最佳做法,請參閱「使用 Google 網路論壇的最佳做法」。

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

使用 OS 登入

請改用 OS 登入,不要使用中繼資料型 SSH 金鑰,這樣使用者的授權金鑰就會連結至他們的 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 的權限。搭配其他存取權控管選項使用統一值區層級存取權,進一步控管可存取值區內容的對象。

其他最佳做法

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

撤銷專案存取權的 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. 找出要從成員清單中移除的使用者帳戶,然後按一下該帳戶所屬列旁邊的核取方塊,並點選「移除」

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

輪替專案憑證

輪替服務帳戶金鑰

如果您使用服務帳戶金鑰向服務帳戶進行驗證,就必須輪替金鑰。此外,請考慮該使用者之前是否可在 Google Cloud工具以外的地方 (例如您的原始碼存放區或應用程式設定) 存取服務帳戶金鑰。

  1. 在 Google Cloud 控制台中,前往「API credentials」(API 憑證) 頁面。

    API 憑證

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

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

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

  5. 選擇您要建立的「金鑰類型」。在大部分的情況下,建議您選擇 [JSON],但您也可以選擇 [P12],以針對仰賴 P12 格式的程式碼保有回溯相容性

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

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

輪替 OAuth 用戶端 ID 密鑰

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

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

  1. 在 Google Cloud 控制台中,前往「API credentials」(API 憑證) 頁面。

    API 憑證

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

  3. 在「用戶端 ID」頁面中,按一下「重設密鑰」

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

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

輪替 API 金鑰

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

  1. 在 Google Cloud 控制台中,前往「API credentials」(API 憑證) 頁面。

    API 憑證

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

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

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

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

撤銷 VM 的存取權

如果您要撤銷其存取權的使用者沒有您任何專案 VM 的登入權限,可以略過這個步驟。

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

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

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

  4. 檢查該使用者可能為了針對 VM 開後門而安裝的可疑應用程式。如果您不確定在 VM 上執行的程式碼是否安全,請透過原始碼重新建立程式碼,並重新部署您需要的應用程式。

  5. 確認 VM 防火牆仍保有您所規劃或預期的設定。

  6. 如果您是透過自訂基本映像檔建立新 VM,請確認基本映像檔未遭到惡意竄改,導致新 VM 的安全受到威脅。

撤銷資料庫存取權

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

如要撤銷 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 是使用者的身分,例如電子郵件地址。

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

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

後續步驟