保護機密資源的方法之一,就是限制存取權。不過,限制機密資源的存取權,也會對偶爾需要存取這些資源的使用者造成不便。舉例來說,使用者可能需要緊急存取敏感資源,才能解決事件。
在這種情況下,建議暫時授予使用者資源存取權。此外,為提升稽核成效,建議您記錄使用者存取資源的理由。
在 Google Cloud中,您可以透過多種方式管理這類暫時提升的存取權。
Privileged Access Manager
您可以使用 Privileged Access Manager (PAM) 管理特定主體的即時暫時性權限提升,並在之後查看稽核記錄,瞭解誰在何時存取了哪些內容。
在下列情況中,您可能需要透過 Privileged Access Manager 暫時提升權限:
授予緊急存取權:允許特定緊急應變人員執行重要工作,無須等待核准。您可以強制要求提供事由,說明為何需要緊急存取權。
控管機密資源的存取權:嚴格控管機密資源的存取權,要求核准和業務正當性。您也可以使用 Privileged Access Manager 稽核這項存取權的使用方式,例如授予的角色何時對使用者生效、這段期間可存取的資源、存取權的理由,以及核准者。
舉例來說,您可以使用 Privileged Access Manager 執行下列操作:
授予開發人員實際工作環境的臨時存取權,以進行疑難排解或部署作業。
授予支援工程師特定工作所需的機密客戶資料存取權。
授予資料庫管理員進階權限,以進行維護或設定變更。
實作精細的最低權限:為所有使用者指派管理員角色或廣泛存取權,可能會擴大攻擊面。為避免這種情況,管理員可以指派最低權限的永久角色,並在需要時使用 Privileged Access Manager,為特定工作提供有時間限制的暫時性提升權限。管理員可以建立具有標記條件的授權,並強制要求者建立具有自訂範圍的授權要求,以及在工作完成後撤銷授權。這可大幅減少濫用機會,並強化「即時」存取權原則。
自動核准特殊存取權:為提升效率,您可以在 DevOps 管道中將服務帳戶設為核准者。這些帳戶可直接從 ITSM 系統驗證單據,自動完成程式輔助核准程序,省去緩慢的手動檢查作業。
協助保護服務帳戶:不要永久授予服務帳戶角色,而是允許服務帳戶在需要執行自動化工作時,自行提升權限並擔任角色。
防範內部威脅和誤用情形:透過多方核准機制,您可以在決策過程中新增兩層核准程序。這樣可降低風險,避免單一管理員或遭入侵的核准者帳戶核准惡意存取要求。
管理約聘人員和延伸工作團隊的存取權:授予約聘人員或延伸工作團隊成員臨時存取資源的權限,並要求他們提出核准和理由。
如要進一步瞭解如何設定 Privileged Access Manager,請參閱「Privileged Access Manager 總覽」。
如要進一步瞭解如何要求暫時提升權限,請參閱「要求暫時提升的存取權」。
Google 網路論壇
管理暫時提升的存取權時,可以授予 Google 群組存取機密資源的權限,然後在該群組中新增及移除使用者,藉此控管存取權。
如要設定 Google 群組以提供暫時性提升的存取權,請先建立群組,然後授予該群組您想暫時授予使用者的角色。如果您使用拒絕政策,也請考慮將群組排除在所有相關拒絕規則之外,以免發生非預期的拒絕情況。
設定群組後,您可以新增及移除使用者,藉此修改他們的存取權。如果您使用 Google Groups API,可以透過成員資格到期日,暫時將使用者加入群組。
如要記錄使用者存取機密資源的理由,您必須自行定義作業程序和工具。
舉例來說,如要管理 Compute Engine 資源的緊急存取權,您可以建立群組 emergency-compute-access@example.com
,並授予該群組 Compute 管理員角色 (roles/compute.admin
)。如果使用者需要緊急管理員存取權才能存取運算資源,您可以將他們新增至 emergency-compute-access@example.com
群組。緊急狀況解除後,即可將他們從群組中移除。
IAM Conditions
您可以使用 IAM Conditions,授予使用者Google Cloud 資源的存取權,並設定存取權效期。詳情請參閱「設定臨時存取權」。
如要記錄使用者存取機密資源的理由,您必須自行定義作業程序和工具。
過期的角色繫結不會自動從允許政策中移除。 為確保允許政策不會超過允許政策的大小上限,建議您定期移除過期的角色繫結。
拒絕政策不支援以時間為準的條件。因此,您無法在拒絕政策中使用條件,暫時將使用者從拒絕規則中排除。
即時特殊權限存取權
Just-In-Time Access 是一項開放原始碼應用程式,可使用 IAM 條件,授予使用者資源的即時權限存取權。 Google Cloud這個應用程式設計為在 App Engine 或 Cloud Run 上執行。
相較於手動新增條件式角色繫結,這個應用程式具有下列優點:
- 使用者可以搜尋可透過即時存取權啟用的角色。
- 使用者必須先提供理由,才能取得存取權。
- 應用程式會取代現有的條件繫結,而非建立新的繫結,有助於維持 IAM 允許政策的大小。
如要進一步瞭解即時存取權,請參閱「管理專案的即時權限存取權」。
服務帳戶模擬
當經過驗證的主體 (例如使用者或其他服務帳戶) 驗證為服務帳戶,以取得服務帳戶的權限時,即為模擬服務帳戶。模擬服務帳戶時,經過驗證的主體可以存取服務帳戶能存取的任何內容。只有經過驗證且具備適當權限的主體,才能模擬服務帳戶。
如要設定服務帳戶以取得暫時提升的存取權,請建立服務帳戶,然後授予您想暫時授予使用者的角色。如果您使用拒絕政策,也請考慮將服務帳戶從任何相關拒絕規則中排除,避免發生非預期的拒絕情況。
設定服務帳戶後,您可以允許使用者模擬服務帳戶,暫時授予他們更高的存取權。您可以透過多種方式允許使用者模擬服務帳戶:
授予使用者可為服務帳戶建立短期憑證的角色。使用者接著就能使用短期憑證模擬服務帳戶。
授予服務帳戶 OpenID Connect 身分識別權杖建立者角色 (
roles/iam.serviceAccountOpenIdTokenCreator
),允許使用者為服務帳戶建立短期有效的 OpenID Connect (OIDC) ID 權杖。授予服務帳戶憑證建立者角色 (
roles/iam.serviceAccountTokenCreator
),允許使用者建立下列類型的服務帳戶憑證:- OAuth 2.0 存取權杖,可用於向 Google API 進行驗證
- OIDC ID 權杖
- 已簽署的 JSON Web Token (JWT) 和二進位 blob
如果您授予使用者其中一個角色,他們隨時可以模擬服務帳戶身分,藉此提升自己的存取權。不過,他們不太可能無意間存取或修改機密資源。
如要瞭解如何模擬服務帳戶,請參閱「使用服務帳戶模擬」。
建立權杖代理服務,在使用者完成驗證並提供理由後,為服務帳戶提供短期憑證。使用者接著就能使用短期憑證模擬服務帳戶。
使用這個方法,您可以決定何時允許使用者模擬服務帳戶。
如要瞭解如何產生短期憑證,請參閱「為服務帳戶建立短期憑證」。
如要進一步瞭解服務帳戶模擬功能,請參閱「服務帳戶模擬」一文。