Microsoft Entra ID 中有三种类型的服务帐户:托管标识、服务主体和用作服务帐户的用户帐户。 创建服务帐户以自动使用时,系统会授予访问 Azure 中的资源的权限,并Microsoft Entra ID。 资源可以包括Microsoft 365 服务、软件即服务(SaaS)应用程序、自定义应用程序、数据库、HR 系统等。 控制Microsoft Entra 服务帐户管理创建、权限和生命周期,以确保安全性和连续性。
了解详细信息:
注释
我们不建议用户帐户作为服务帐户,因为它们不太安全。 这包括同步到 Microsoft Entra ID 的本地服务帐户,因为它们不会转换为服务主体。 相反,我们建议使用托管标识或服务主体,以及使用条件访问。
了解详细信息: 什么是条件访问?
规划服务帐户
在创建服务帐户或注册应用程序之前,请记录服务帐户密钥信息。 使用信息来监视和管理帐户。 建议收集以下数据,并将其跟踪到集中式配置管理数据库(CMDB) 中。
Data | Description | 详细信息 |
---|---|---|
所有者 | 负责管理和监视服务帐户的用户或组 | 授予所有者监视帐户的权限,并实现缓解问题的方法。 问题缓解由所有者或向 IT 团队发出请求来完成。 |
目的 | 如何使用帐户 | 将服务帐户映射到服务、应用程序或脚本。 避免创建多使用服务帐户。 |
权限(范围) | 预期的权限集 | 记录它访问的资源以及这些资源的权限 |
CMDB 链接 | 链接到访问的资源以及在其中使用服务帐户的脚本 | 记录资源和脚本所有者以传达更改的影响 |
风险评估 | 如果帐户遭到入侵,风险和业务效应 | 使用信息缩小权限范围并确定对信息的访问权限 |
审查期限 | 所有者查看服务帐户的节奏 | 查看通信和评论。 记录在计划评审期之后执行评审时会发生什么情况。 |
辈子 | 预计最长帐户生存期 | 使用此度量计划与所有者的通信,禁用,然后删除帐户。 为凭据设置过期日期,防止凭据自动滚动更新。 |
Name | 标准化帐户名称 | 为服务帐户创建命名约定以搜索、排序和筛选它们 |
最小特权原则
授予执行任务所需的服务帐户权限,再授予更多权限。 如果服务帐户需要高级权限,请评估原因并尝试减少权限。
建议对服务帐户特权执行以下做法。
Permissions
- 不要将内置角色分配给服务帐户
- 为服务主体分配特权角色
- 不要将服务帐户作为具有提升权限的任何组的成员包含在内
Get-MgDirectoryRoleMember
,并筛选对象类型“服务主体”,或使用Get-MgServicePrincipal | % { Get-MgServicePrincipalAppRoleAssignment -ObjectId $_ }
- 请参阅, 权限简介和同意 ,以限制服务帐户可以访问资源的功能
- 服务主体和托管标识可以在委托上下文中使用开放式授权 (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 许可授予
- 在定义的时间段后,向所有者发出警告,从目录中删除服务帐户