公用信息模型 (CIM) 系统提供了一个接口,便于使用一组标准 API 从远程应用程序进行硬件级别管理。为了确保 CIM 接口安全,请仅为这些远程应用程序提供必需的最小访问权限。使用 root 或管理员帐户置备远程应用程序时,如果应用程序受到影响,则虚拟环境可能也会受到影响。

CIM 是一种开放式标准,用于为 ESXi 主机硬件资源的无代理标准监控定义一个框架。该框架由一个 CIM 对象管理器(通常称为“CIM 代理程序”)和一组 CIM 提供程序构成。

CIM 提供程序支持对设备驱动程序和底层硬件进行管理访问。硬件供应商(包括服务器制造商和硬件设备供应商)可以编写提供程序,以便监控和管理其设备。VMware 可以编写提供程序,用于监控服务器硬件、ESXi 存储基础架构和虚拟化特定资源。这些提供程序属于轻量级程序,在 ESXi 主机内部运行,并专注于特定管理任务。CIM 代理程序从所有 CIM 提供程序获得信息,并使用标准 API 将这些信息提供给外部。最常用的 API 是 WS-MAN。

请不要为远程应用程序提供访问 CIM 接口的 root 凭据。请为这些应用程序创建低特权 vSphere 用户帐户,并使用 VIM API 票证功能向此低特权用户帐户发布一个 sessionId(称为“票证”)以向 CIM 进行身份验证。如果该帐户已获得获取 CIM 票证的权限,则 VIM API 可将票证提供给 CIM。然后,将这些票证作为用户 ID 和密码提供给任何 CIM-XML API 调用。有关详细信息,请参见 AcquireCimServicesTicket()方法。

安装第三方 CIM VIB(例如,运行 esxcli software vib install -n VIBname 命令)时,CIM 服务启动。

如果必须手动启用 CIM 服务,请运行以下命令:

esxcli system wbem set -e true

如有必要,可以禁用 wsman(WS-Management 服务),以便仅运行 CIM 服务:

esxcli system wbem set -W false

要确认 wsman 已禁用,请运行以下命令:

esxcli system wbem get
…
WSManagement PID: 0
WSManagement Service: false

有关 ESXCLI 命令的详细信息,请参见 ESXCLI 文档。有关启用 CIM 服务的详细信息,请参见 VMware 知识库文章,网址为 https://kb.vmware.com/kb/1025757

过程

  1. 为 CIM 应用程序创建非 root vSphere 用户帐户。
    请参见 《vSphere 身份验证》中有关添加 vCenter Single Sign-On 用户的主题。此用户帐户所需的 vSphere 特权为 Host.CIM.交互
  2. 使用所选 vSphere API SDK 针对 vCenter Server 对用户帐户进行身份验证。然后,调用 AcquireCimServicesTicket()返回票证,以管理员级别帐户使用 CIM-XML 端口 5989 或 WS-Man 端口 433 API 通过 ESXi 进行身份验证。
    有关详细信息,请参见 《vSphere Web Services API 参考》
  3. 根据需要每隔两分钟续订一次票证。