保護您的 Azure 環境
現在您已了解如何控制環境及保護部署管線,您可以考慮停用對您所控環境的人為存取。 在本單元中,您會了解如何建構使用者對 Azure 環境的許可權。 包括在緊急情況下如何允許存取,以及如何稽核在您的 Azure 資產中發生的任何變更。
封鎖人為存取
藉由封鎖人員對您所控環境的存取,您可確保小組的檢閱和自動化部署流程部會略過意外或惡意變更。 如果您不封鎖人為存取,則您花費大量時間規劃及實作的存放庫和管線控制項,可能會在不小心的情況下被某人規避。
若不封鎖控制項,也很容易讓人員不小心中斷某些項目。 例如,假設使用者已開啟兩份 Azure 入口網站複本。 一個用於測試環境,另一個用於實際執行環境。 當使用者在瀏覽器分頁之間來回切換時,很容易就會不小心變更了應用於測試環境的實際執行環境。
若要封鎖人為存取,您可以使用 Azure 角色型存取控制 (RBAC)。 您可以在 RBAC 中建立角色指派來定義:
- 哪些使用者、群組或服務主體可以存取定義的 Azure 資源集 (範圍)。
- 這些使用者、群組或服務主體在存取資源時可以執行的動作 (角色)。
Azure RBAC 提供許多內建角色類型,包括:
- 具有環境唯讀存取權的讀取者。
- 可以修改資源的參與者。
- 可以修改資源並將存取權授與其他人的擁有者。
請務必在適當的範圍內授與存取權。 如果您的組織遵循針對每個環境的建議做法,使用專用 Azure 訂閱,請考慮使用 Azure 管理群組來簡化角色指派的範圍。 如果您的組織針對所有環境使用單一的 Azure 訂閱,請避免授與人員能存取整個訂閱的權限,因為所有資源 (包括您受控的環境) 都會繼承該許可權。
提示
角色指派是 Azure Resource Manager (ARM) 資源。 這表示您可以在程式碼中設定 Azure RBAC 角色指派,例如使用 Bicep 進行設定。
當您規劃角色指派時,必須決定哪些是對組織有意義的。 例如,假設您的組織會為您的每個環境建立個別訂閱。 您可以選擇授與系統管理員和開發人員對您所控環境的讀取者存取權。 授與該角色後,系統管理員和開發人員便能存取 Azure 入口網站內的實際執行環境,以檢閱資源的設定、檢視計量和記錄以及調查問題或錯誤,而不對環境進行任何變更。
以下說明如何針對您的玩具公司設定環境角色指派,以供您的 Azure 系統管理員,以及為您撰寫程式碼和指令碼的開發人員使用:
環境名稱 | 控制層級 | 系統管理員權限 | 開發人員權限 |
---|---|---|---|
部署 | 受控 | 讀取者 | 讀取者 |
Test | 受控 | 讀取者 | 讀取者 |
預備 | 受控 | 讀取者 | 讀取者 |
Production | 受控 | 讀取者 | 讀取者 |
示範 | 不受控 | 擁有者 | 參與者 |
效能測試 | 不受控 | 負責人 | 無 |
滲透測試 | 不受控 | 負責人 | 無 |
PR 檢閱 | 不受控 | 負責人 | 負責人 |
開發沙箱 | 不受控 | 負責人 | 負責人 |
在規劃角色指派時,請確認您已徹底測試過這些角色。 有時候,管理作業需要的權限可能並不直觀。 請讓您的小組成員有機會使用您打算使用的權限,來測試其所有的日常工作。 檢閱小組成員遇到的任何問題。
定期稽核您的角色指派。 請確認您沒有在意外情況下,將存取權授與錯誤的人員,或是授與過多的存取權。
資料平面存取
Azure 內有兩種作業類型:
- 用於管理您訂閱內資源的控制平面作業。
- 用於存取資源所公開功能的資料平面作業。
例如,您將使用控制平面作業來建立儲存體帳戶。 您將使用資料平面作業來連線至儲存體帳戶,並存取其中包含的資料。
當您封鎖使用者對 Azure 資源的直接存取權時,也請考慮如何將此限制套用至資料平面作業。 例如,您的部署程序可能會將儲存體帳戶的金鑰儲存在系統管理員可以存取的位置。 該系統管理員可能會使用該金鑰來規避您的控制,並直接存取儲存體帳戶的資料平面。
有越來越多的 Azure 資源支援使用 Microsoft Entra ID 來設定其資料平面存取控制。 這項支援能夠降低您不小心洩漏金鑰,或無意間授與資料平面存取權的可能性。 您可以隨時隨地使用 Microsoft Entra ID 進行資料平面存取是很好的作法。
緊急存取
有時候會發生緊急事件,而人員必須立即存取實際執行環境,以調查或解決問題。 在緊急狀況發生之前,請務必規劃和排練您要如何回應這些緊急狀況。 您不會想在遭遇中斷時,還得手忙腳亂地回應。
其中一個可以考慮採用的方法是緊急存取帳戶,這是一種特殊的使用者帳戶,其權限等級高於一般使用者所擁有的帳戶。 此帳戶命名為緊急存取帳戶,是因為其需要非一般使用的資訊才能存取認證資訊,就像打破火災警報裝置面板的玻璃。 您可以提供安全的方式,讓您的操作員取得緊急存取帳戶憑證的存取權。 然後,這些操作員就能以該帳戶登入,以執行緊急變更。
使用緊急存取帳戶的步驟順序為:
- 使用者嘗試使用一般帳戶執行緊急變更,但因一般使用者帳戶沒有足夠的權限,導致作業遭到封鎖。
- 接著使用者存取緊急存取帳戶的認證,並以該使用者身分登入。
- 系統允許使用者 (以緊急存取帳戶身分) 來執行此作業。
使用緊急存取帳戶需要具有高度紀律。 應保留至真正的緊急狀況才使用此帳戶。 請謹慎管理和保護帳戶的登入資訊,因為該帳戶提供高度的權限。 建議您經常變更緊急存取帳戶的登入資訊,以儘量降低其暴露或遭盜用的機率。
緊急存取帳戶通常會在小組內共用,因此很難追蹤誰曾經使用過這些帳戶,以及這些使用者做了什麼。 除了緊急存取帳戶以外,另一種方法是採用 Microsoft Entra Privileged Identity Management (PIM) 功能。 此功能可允許暫時將較高權限等級授與使用者自己使用的帳戶。
使用 PIM 的步驟順序為:
使用者嘗試使用一般帳戶執行緊急變更,但因一般使用者帳戶沒有足夠的權限,導致作業遭到封鎖。
使用者連絡 PIM,並要求暫時提高權限。
PIM 可能會根據組織對使用者身分識別的設定方式,對使用者身分識別執行進一步的驗證,或要求他人的核准。
如果要求得到授權,PIM 會暫時更新使用者的權限。
系統會允許該使用者執行此作業。
定義的時段結束之後,PIM 會撤銷其授與使用者的提升權限。
PIM 和 Azure 都會撰寫完整的稽核記錄,以協助您了解哪些人員要求提升的權限以及為什麼。 記錄也會追蹤在授與許可權時他們在您的環境中進行了什麼動作。
注意
PIM 需要 Microsoft Entra ID 的進階授權。
緊急事件結束後
緊急事件結束後,請務必執行恢復正常作業的流程。 您應在事件結束後盡早執行此流程,否則您可能會忘記重要資訊,或讓設定停留在不安全的狀態。
請仔細檢閱 Azure 和 PIM 的稽核記錄,了解在您受控環境 (特別是實際執行環境) 中執行的變更。
重要
使用 PIM 或緊急存取帳戶的人員,可能有機會將超出適當範圍的存取權授與人員的一般使用者帳戶。 這些人員也可能使用暫時權限,來存取資料平面金鑰,以便在撤銷其權限後能繼續使用這些金鑰。
請仔細稽核所有使用緊急存取帳戶或 PIM 的行為。 對於在緊急狀況期間可能已公開的任何金鑰,請將其撤銷或輪替。
緊急事件之後不久,請將緊急狀況下所進行的任何變更,與基礎結構即程式碼資產進行重新同步。 例如,假設在解決緊急問題時,系統管理員手動增加了 Azure App Service 方案的 SKU。 更新您的部署範本,在資源設定中加入新的 SKU。 否則,在下次從管線進行一般部署時,SKU 可能會重設為上次的值,導致另一次中斷。
稽核 Azure 環境的變更
同時這也是設定整體 Azure 環境的稽核和記錄,以及監控特定事件或威脅的最佳做法。
請考慮使用安全性資訊和事件管理 (SIEM) 工具,例如 Microsoft Sentinel。 您可以使用此工具來收集並分析來自您的 Azure 資產、甚至來自 Azure DevOps、GitHub 和其他系統的日誌。 您可以使用 Sentinel 來監視對您 Azure 資源的非預期或未經授權的變更。 您也可以匯入管線的稽核記錄,並在事件發生時觸發通知,例如當系統管理員變更您存放庫中的分支保護原則時觸發。