暫時提升存取權總覽

保護機密資源的方法之一,就是限制存取權。不過,限制機密資源的存取權,也會對偶爾需要存取這些資源的使用者造成不便。舉例來說,使用者可能需要緊急存取敏感資源,才能解決事件。

在這種情況下,建議暫時授予使用者資源存取權。此外,為提升稽核成效,建議您記錄使用者存取資源的理由。

在 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

    如果您授予使用者其中一個角色,他們隨時可以模擬服務帳戶身分,藉此提升自己的存取權。不過,他們不太可能無意間存取或修改機密資源。

    如要瞭解如何模擬服務帳戶,請參閱「使用服務帳戶模擬」。

  • 建立權杖代理服務,在使用者完成驗證並提供理由後,為服務帳戶提供短期憑證。使用者接著就能使用短期憑證模擬服務帳戶。

    使用這個方法,您可以決定何時允許使用者模擬服務帳戶。

    如要瞭解如何產生短期憑證,請參閱「為服務帳戶建立短期憑證」。

如要進一步瞭解服務帳戶模擬功能,請參閱「服務帳戶模擬」一文。

後續步驟