控管 Microsoft Entra 服務帳戶
Microsoft Entra ID 中的服務帳戶類型有三種:受控識別、服務主體,以及作為服務帳戶使用的使用者帳戶。 當您建立服務帳戶以供自動化使用時,系統會授與這些服務帳戶存取 Azure 和 Microsoft Entra ID 中資源的權限。 資源可以包含 Microsoft 365 服務、軟體即服務 (SaaS) 應用程式、自訂應用程式、資料庫、HR 系統等等。 控管 Microsoft Entra 服務帳戶會管理建立、權限及生命週期,以確保安全性和持續性。
深入了解:
注意
不建議將使用者帳戶當作服務帳戶,因為其安全性較低。 這包括已同步處理至 Microsoft Entra ID 的內部部署服務帳戶,因為其不會轉換為服務主體。 相反地,建議使用受控識別或服務主體,並使用條件式存取。
深入了解:什麼是條件式存取?(部分機器翻譯)
規劃服務帳戶
建立服務帳戶或註冊應用程式之前,先記錄服務帳戶金鑰資訊。 使用資訊來監視和控管帳戶。 建議您在集中式設定管理資料庫 (CMDB) 中收集下列資料並加以追蹤。
資料 | 描述 | 詳細資料 |
---|---|---|
擁有者 | 負責管理和監視服務帳戶的使用者或群組 | 授與擁有者權限來監視帳戶並實作問題風險降低的方式。 問題風險降低會由擁有者或透過向 IT 小組要求來完成。 |
目的 | 帳戶的使用方式 | 將服務帳戶對應至服務、應用程式或指令碼。 避免建立多用途的服務帳戶。 |
權限 (範圍) | 預期的權限集合 | 記錄其存取的資源,以及那些資源的權限 |
CMDB 連結 | 連結至存取的資源,以及使用服務帳戶的指令碼 | 記錄資源和指令碼擁有者以傳達變更的效果 |
風險評估 | 帳戶遭到入侵時的風險和業務效果 | 使用此資訊來縮小權限的範圍,並決定存取資訊的權限 |
檢閱期間 | 擁有者檢閱服務帳戶的節奏 | 檢閱通訊和評論。 記錄在排程檢閱期間之後執行檢閱時會發生什麼情況。 |
存留期 | 預期的帳戶存留期上限 | 使用此測量來排程與擁有者的通訊、停用,然後刪除帳戶。 設定認證到期日,以防止認證自動變換。 |
名稱 | 標準化的帳戶名稱 | 建立服務帳戶的命名慣例,以搜尋、排序和篩選它們 |
最低權限準則
授與服務帳戶執行工作所需的權限,僅此而已。 如果服務帳戶需要高階權限,請評估原因並嘗試減少權限。
建議您針對服務帳戶權限採用下列做法。
權限
- 請勿將內建角色指派給服務帳戶
- 服務主體已獲指派特殊權限角色
- 請勿將服務帳戶包含為具有更高權限之任何群組的成員
Get-MgDirectoryRoleMember
,並篩選 objectType「服務主體」,或使用Get-MgServicePrincipal | % { Get-MgServicePrincipalAppRoleAssignment -ObjectId $_ }
- 請參閱權限和同意介紹,來限制服務帳戶可在資源上存取的功能
- 服務主體和受控識別可以在模擬已登入使用者的委派內容中使用 Open Authorization (OAuth) 2.0 範圍,或在應用程式內容中作為服務帳戶。 在應用程式內容中,沒有任何登入。
- 確認資源的範圍服務帳戶要求
- 如果帳戶要求 Files.ReadWrite.All,請評估其是否需要 File.Read.All
- Microsoft Graph 權限參考
- 確定您信任具有要求存取權的應用程式開發人員或 API
期間
- 將服務帳戶認證 (用戶端密碼、憑證) 限制為預期的使用期限
- 排程定期檢閱服務帳戶的使用方式和用途
- 確定檢閱會在帳戶到期前發生
了解用途、範圍及權限之後,建立您的服務帳戶,使用下列文章中的指示。
可能的話,請使用受控識別。 如果您無法使用受控識別,請使用服務主體。 如果您無法使用服務主體,則使用 Microsoft Entra 使用者帳戶。
建立生命週期程序
服務帳戶生命週期是從規劃開始,並以永久刪除做為結束。 下列各節說明您如何監視、檢閱權限、判斷持續的帳戶使用方式,最後取消佈建帳戶。
監視服務帳戶
監視您的服務帳戶,以確保使用模式正確,並使用了服務帳戶。
收集和監視服務帳戶登入
使用下列其中一個監視方法:
- Azure 入口網站中的 Microsoft Entra 登入記錄
- 將 Microsoft Entra 登入記錄匯出至
- Azure 儲存體文件
- Azure 事件中樞文件,或者
- Azure 監視器記錄概觀 (機器翻譯)
使用下列螢幕擷取畫面來查看服務主體登入。
登入記錄詳細資料
在登入記錄中尋找下列詳細資料。
- 未登入租用戶的服務帳戶
- 登入服務帳戶模式中的變更
建議您匯出 Microsoft Entra 登入記錄,然後將其匯入至安全性資訊與事件管理 (SIEM) 工具,例如 Microsoft Sentinel。 使用 SIEM 工具來建置警示和儀表板。
檢閱服務帳戶權限
定期檢閱服務帳戶權限和存取範圍,以查看是否可將其減少或消除。
- 請參閱 Get-MgServicePrincipalOauth2PermissionGrant
- 請參閱
AzureADAssessment
並確認有效性 - 請勿將服務主體認證設定為永不過期
- 盡可能使用儲存在 Azure Key Vault 中的憑證或認證
重新認證服務帳戶的使用
建立定期檢閱流程,以確保擁有者、安全性小組或 IT 小組可定期檢閱服務帳戶。
流程包括:
- 判斷服務帳戶檢閱週期,並將其記錄在您的 CMDB 中
- 檢閱之前,與擁有者、安全性小組、IT 小組進行通訊
- 判斷錯過了檢閱時的警告通訊及其時間
- 當擁有者無法檢閱或回應時的指示
- 在檢閱完成前,停用 (但不刪除) 帳戶
- 判斷相依性的指示。 通知資源擁有者效果
檢閱包括擁有者和 IT 合作夥伴,並認證:
- 需要帳戶
- 對帳戶的權限已足夠且必要,或要求變更
- 對帳戶的存取權及其認證會受到控制
- 帳戶認證正確:認證類型和存留期
- 帳戶風險分數自上次重新認證後並未變更
- 更新預期的帳戶存留期和下一個重新認證日期
取消佈建服務帳戶
在下列情況下,取消佈建服務帳戶:
- 帳戶指令碼或應用程式已淘汰
- 帳戶指令碼或應用程式功能已淘汰。 例如,存取資源。
- 服務帳戶會由另一個服務帳戶取代
- 認證已過期,或帳戶無法正常運作,而且沒有任何抱怨
取消佈建包括下列工作:
取消佈建相關聯的應用程式或指令碼之後:
- Microsoft Entra ID 中的登入記錄和服務帳戶存取的資源
- 如果帳戶在使用中,先決定其使用方式,然後再繼續
- 針對受控服務識別,則會停用服務帳戶登入,但不要將其從目錄中移除
- 撤銷服務帳戶角色指派和 OAuth2 同意授與
- 在定義的期間,以及對擁有者的警告之後,將該服務帳戶從目錄中刪除