首页/系统与基础设施/自动化运维速查/自动化专用账号的设计
排障与安全50 条

自动化专用账号的设计

自动化专用账号的核心是把执行身份与人解耦:按业务域拆分、按任务授予最小权限、禁止交互登录并限定来源,凭据独立轮换,且能一键停用并立即被监控发现。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​​​​‌​‌‌​​​‌‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​​‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

自动化账号为什么必须独立

把自动化任务挂在某个人的账号下运行,短期最省事,长期会带来三个问题:人走了任务就断;任务的操作在审计里变成这个人的操作,无法归因;权限只能跟着人走,收不紧也放不宽。专用账号的价值在于它把「谁在操作」从人的身份里解耦出来,让权限可以按任务精确定义、让日志可以按系统归因、让凭据可以按周期独立轮换。

基本信息

适用对象执行剧本、巡检、备份、发布等任务的自动化账号
典型类型操作系统登录账号、作业平台账号、接口调用凭据
设计目标可归因、可轮换、可停用、权限按任务最小化
登录限制限定来源地址、限定密钥、禁止交互式登录
生命周期随任务创建、随任务下线、与人员变动解耦

设计要点

  • 一个任务域一个账号:按业务域或平台划分,避免一个超级账号承担所有任务
  • 只给需要的权限:需要提权的按命令清单授权,不需要的不放开
  • 禁止交互登录:账号只能被程序使用,减少被人工冒用的可能
  • 限定登录来源:来自固定的执行节点或网段,异常位置直接被拒
  • 凭据独立轮换:与人员账号分开管理,按周期更换且不影响人的登录
  • 留出停用开关:一键停用后所有依赖任务立即失败并被监控发现,而不是悄悄停摆

落地检查

落地检查
ssh-keygen -lf /home/svcauto/.ssh/id_ed25519.pub   # 核对密钥指纹与用途标记
cat /home/svcauto/.ssh/config                      # 客户端侧是否限定了目标与密钥
sudo -l -U svcauto                                 # 提权范围是否只覆盖必要命令
sudo -l -U svcauto | grep -c NOPASSWD              # 免密条目数量,越多越需要复核
awk '/svcauto/{print}' /etc/ssh/sshd_config        # 服务端是否对该账号做了限制
getent passwd svcauto | cut -d: -f7                # 登录解释器是否为不可登录

账号设计对照

维度个人账号挂任务专用账号
归因记在人名下,无法区分人与程序记在任务名下,来源清晰
人员变动离职即任务中断与人员无关,可持续运行
权限范围跟人走,通常过大按任务定义,可精确收敛
凭据轮换与人共用,轮换互相牵制独立轮换,影响面可控
停用方式只能停任务无法停身份可整体停用并立即显现
专用账号需要配套监控:账号被停用或被改权限后,任务会立即失败。把「任务连续多轮未成功」设为告警,可以避免自动化静默失效数周而无人察觉。
同一套执行环境承担多个业务域时,建议按域拆分账号而不是按脚本拆分。按脚本拆分会让账号数量迅速膨胀,反而难以维护与轮换。

易错点

  • 任务挂在个人账号下:人一变动自动化就断,交接时往往还伴随权限与凭据的模糊状态
  • 专用账号仍保留交互登录:程序账号被人工冒用后,日志里依旧无法区分
  • 不限制登录来源:凭据泄露后可从任意位置发起连接,收敛措施等于没有
  • 一个账号跑遍所有任务:任一任务被入侵就等于全平台权限泄露
  • 凭据与人共用轮换周期:任何一方改动都会影响另一方,最终谁也不敢换

数据来源与参考

  • NIST SP 800-53:服务账号与非交互账号控制项
  • OpenSSH 手册页:sshd_config(5) 登录限制选项
  • CIS 基准:服务账号管理建议

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/automation-dedicated-account-design.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​​‌​​​‌‌​‌​​‌​‌‌​​​‌‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​​​​‌​‌‌​​​‌‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌‌​‌​‌​‌‌​‌‌‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​​‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​