保護機密資源的方法之一,就是限制存取權。不過,限制機密資源的存取權,也會對偶爾需要存取這些資源的使用者造成不便。舉例來說,使用者可能需要緊急存取敏感資源,才能解決事件。
在這種情況下,建議暫時授予使用者資源存取權。此外,為提升稽核成效,建議您記錄使用者存取資源的理由。
在 Google Cloud中,您可以透過多種方式管理這類暫時提升的存取權。
Privileged Access Manager
您可以使用 Privileged Access Manager (PAM) 管理特定主體的即時臨時權限提升,並在事後查看稽核記錄,瞭解哪些人何時存取了哪些內容。
在下列情況中,您可能需要透過 Privileged Access Manager 暫時提升權限:
授予緊急存取權:允許特定緊急應變人員執行重要工作,無須等待核准。您可以強制要求提供事由,說明為何需要緊急存取權。
控管機密資源的存取權:嚴格控管機密資源的存取權,要求核准和業務正當性。您也可以使用 Privileged Access Manager 稽核這項存取權的使用方式,例如授予的角色何時對使用者生效、這段期間可存取的資源、存取權的理由,以及核准者。
舉例來說,您可以使用 Privileged Access Manager 執行下列操作:
授予開發人員實際工作環境的臨時存取權,以進行疑難排解或部署作業。
授予支援工程師特定工作所需的機密客戶資料存取權。
授予資料庫管理員進階權限,以進行維護或設定變更。
協助保護服務帳戶:不要永久授予服務帳戶角色,而是允許服務帳戶在需要執行自動化工作時,自行提升權限並擔任角色。
管理約聘人員和延伸工作團隊的存取權:授予約聘人員或延伸工作團隊成員臨時存取資源的權限,並要求他們提出核准和理由。
如要進一步瞭解如何設定 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
如果您授予使用者其中一個角色,他們隨時可以模擬服務帳戶身分,藉此提升自己的存取權。不過,他們比較不會無意間存取或修改機密資源。
如要瞭解如何模擬服務帳戶,請參閱「使用服務帳戶模擬」。
建立權杖代理服務,在使用者完成驗證並提供理由後,為服務帳戶提供短期憑證。使用者接著就能使用短期憑證模擬服務帳戶。
使用這個方法,您可以決定何時允許使用者模擬服務帳戶。
如要瞭解如何產生短期憑證,請參閱「為服務帳戶建立短期憑證」。
如要進一步瞭解服務帳戶模擬功能,請參閱「服務帳戶模擬」一文。