管理 Microsoft Entra 服务帐户
Microsoft Entra ID 中有三种类型的服务帐户:托管标识、服务主体和用作服务帐户的用户帐户。 当你创建服务帐户以进行自动化使用时,将向它们授予访问 Azure 和 Microsoft Entra ID 中资源的权限。 资源可以包括 Microsoft 365 服务、软件即服务 (SaaS) 应用程序、自定义应用程序、数据库、HR 系统等。 管控 Microsoft Entra 服务帐户意味着管理其创建、权限和生命周期,以确保安全性和连续性。
了解详细信息:
注意
不建议将用户帐户用作服务帐户,因为它们不太安全。 这包括同步到 Microsoft Entra ID 的本地服务帐户,因为它们不会转换为服务主体。 相反,我们建议使用托管标识或服务主体,并使用条件访问。
详细了解:什么是条件访问?
规划服务帐户
创建服务帐户或注册应用程序之前,请记录服务帐户的密钥信息。 使用信息监视和管控帐户。 建议收集以下数据并在集中式配置管理数据库 (CMDB) 中对其进行跟踪。
数据 | 说明 | 详细信息 |
---|---|---|
“所有者” | 负责管理和监视服务帐户的用户或组 | 授予所有者权限以监视帐户并实施缓解问题的方法。 问题缓解由所有者完成,或通过向 IT 团队请求来完成。 |
目的 | 此帐户是如何使用的 | 将服务帐户映射到服务、应用程序或脚本。 避免创建多用途服务帐户。 |
权限(范围) | 预期的权限集 | 记录其访问的资源以及这些资源的权限 |
CMDB 链接 | 链接到访问的资源以及在其中使用服务帐户的脚本 | 记录资源和脚本所有者以传达更改的影响 |
风险评估 | 风险和业务影响(如果帐户遭到入侵) | 使用此信息来缩小权限范围,并确定信息的访问权限 |
审查时段 | 所有者对服务帐户进行评审的频率 | 查看通信和评审。 记录如果评审在计划评审期之后进行会发生什么。 |
生存期 | 预计最长帐户生存期 | 使用此度量值来安排与所有者的通信,禁用然后删除帐户。 为凭据设置到期日期,防止它们自动续期。 |
名称 | 标准化的账户名 | 为服务帐户创建命名约定以便于搜索、排序和筛选 |
最低权限原则
授予服务帐户执行任务所需的权限,不授予更多。 如果服务帐户需要高级权限,请评估原因并尝试减少权限。
建议为服务帐户特权应用以下做法。
权限
- 请勿将内置角色分配给服务帐户
- 为服务主体分配特权角色
- 请勿纳入服务帐户作为具有提升权限的任何组的成员
Get-MgDirectoryRoleMember
,然后筛选 objectType "Service Principal",或使用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 登录日志导出到
使用以下屏幕截图查看服务主体登录。
登录日志详细信息
在登录日志中查找以下详细信息。
- 服务帐户未登录到租户
- 登录服务帐户模式的变化
建议导出 Microsoft Entra 登录日志,然后将其导入安全信息和事件管理 (SIEM) 工具,如 Microsoft Sentinel。 使用 SIEM 工具生成警报和仪表板。
审查服务帐户权限
定期评审服务账户权限和访问的范围,以确定是否可以减少或移除它们。
- 请参阅 Get-MgServicePrincipalOauth2PermissionGrant
- 请参阅
AzureADAssessment
并确认有效性 - 请勿将服务主体的凭据设置为永不过期
- 尽可能使用 Azure Key Vault 中存储的证书或凭据
再次验证服务帐户使用
建立常规评审流程以确保服务帐户定期由所有者、安全团队或 IT 团队进行评审。
此过程包括:
- 确定服务帐户评审周期,并将其记录在 CMDB 中
- 评审前与所有者、安全团队、IT 团队的通信
- 确定警告通信及其时机(如果错过评审)
- 所有者未能进行评审或响应的情况的说明
- 在评审完成之前禁用帐户,但不要删除它
- 用于确定依赖项的指令。 将影响告知资源所有者
评审包含所有者和 IT 合作伙伴,他们需要认证:
- 帐户是必需的
- 授予该帐户的权限是足够的和必要的,或需要进行更改
- 对帐户的访问权限和凭据是受控制的
- 帐户凭据是准确的:凭据类型和生存期
- 自上次重新认证以来,帐户风险分数没有变化
- 更新预期的帐户生存期和下一次重新认证日期
取消预配服务帐户
在下列情况下取消设置服务帐户:
- 帐户脚本或应用程序已停用
- 帐户脚本或应用程序函数已停用。 例如,对资源的访问。
- 服务帐户被替换为另一个服务帐户
- 凭据已过期,或者该帐户无法正常工作,并且没有收到投诉
取消预配包括以下任务:
取消预配关联的应用程序或脚本后:
- Microsoft Entra ID 中的登录日志和服务帐户的资源访问
- 如果帐户处于活动状态,则在继续之前确定其使用方式
- 对于托管服务标识,禁用服务帐户登录,但不要将其从目录中删除
- 撤消服务帐户的角色分配以及 OAuth2 许可批准
- 在定义的时段后,并对所有者进行警告后,从目录中删除服务帐户