限制对“运行”命令的访问(预览版)

虽然 Run 命令启用的远程访问降低了在虚拟机(VM)上执行某些任务的开销,但有几种方法可以确保远程访问已启用 Arc 的服务器受到限制。

  • 限制对订阅中的“运行”命令的访问
  • 允许或阻止特定服务器上本地运行的命令

使用基于角色的访问 (RBAC) 限制对运行命令的访问

可以使用 RBAC 控制订阅中哪些角色可以使用 Run 命令执行命令和脚本。 下表描述了可以使用 Run 命令执行的操作、需要执行这些操作的权限,以及授予这些权限的 RBAC 角色。

行动 许可 RBAC 和权限
列出“运行”命令或显示命令的详细信息 Microsoft.HybridCompute/machines/runCommands/read 内置读取者角色及更高级别的角色
运行命令 Microsoft.HybridCompute/machines/runCommands/write Azure Connected Machine 资源管理员角色及更高级别的角色

若要控制对 Run 命令功能的访问,请使用其中一个 内置角色 或创建自定义 角色 来授予 Run 命令权限。

在本地阻止运行命令

可以通过将 Run 命令扩展添加到白名单(包含)或黑名单(排除)来控制 Connected Machine 代理是否允许通过 Run 命令访问 VM。

小窍门

如果想要在将来的某个时间禁用 Run 命令,请将 Run 命令扩展添加到阻止列表。

若要了解详细信息,请参阅扩展允许列表和阻止列表

Windows 示例

以下示例将 Run 命令扩展添加到 Windows VM 上的阻止列表。

azcmagent config set extensions.blocklist "microsoft.cplat.core/runcommandhandlerwindows"

Linux 示例

以下示例将 Run 命令扩展添加到 Linux VM 上的允许列表。

azcmagent config set extensions.allowlist "microsoft.cplat.core/runcommandhandlerlinux"`