限制对由 Azure Arc (Azure Stack HCI 22H2 上的 AKS 启用的 AKS 中的虚拟机的 SSH 访问)

适用于:Azure Stack HCI 22H2 上的 AKS、Windows Server 上的 AKS

本文介绍 AKS Arc 中的一项新安全功能,该功能限制安全外壳协议 (SSH) 访问基础虚拟机 (VM) 。 此功能仅限制对某些 IP 地址的访问,并限制可以通过 SSH 运行的命令集。

概述

目前,任何具有由 Arc 启用的 AKS 管理员访问权限的人都可以在任何计算机上通过 SSH 访问 VM。 在某些情况下,你可能希望限制该访问权限,因为无限制的访问使得难以通过合规性。

注意

目前,此功能仅适用于 AKS Arc 的新安装,不适用于升级。 只有 AKS Arc 的新安装才能传递受限 IP 并限制通过 SSH 运行的命令。

启用 SSH 限制

若要启用 SSH 限制,请执行以下步骤:

  1. 使用 New-AksHciSSHConfiguration cmdlet Create SSH 配置,以及要允许访问 VM 的允许源 IP 地址或 CIDR:

    $ssh = New-AksHciSSHConfiguration -name sshConfig -cidr 172.16.0.0/24
    

    $ssh = New-AksHciSSHConfiguration -name sshConfig -ipAddresses 4.4.4.4,8.8.8.8
    

    或者,若要限制 SSH 访问,请:

    $ssh = New-AksHciSSHConfiguration -name sshConfig –restrictSSHCommands 
    

    注意

    如果未传递 SSH 密钥,则会重复使用管理群集 SSH 密钥。

  2. 通过运行 Set-AksHciConfig cmdlet 来添加 SSH 配置,并传入在上一步中创建的 SSH 配置:

    Set-AksHciConfig -ssh $ssh
    

验证:目标群集

创建群集后,可以通过尝试通过 SSH 连接到其中一个 VM 来手动验证是否已添加 SSH 限制。 例如:

ssh -i (get-MocConfig).sshPrivateKey clouduser@<vm-ipaddress>

可以在指定的 IP 地址/CIDR 列表中或 IP 地址列表之外执行此步骤。 IP 地址/CIDR 范围内的 SSH 具有访问权限。 来自列表外部的 SSH 尝试没有访问权限。

还可以直接从 SSH 运行命令。 此命令返回日期。 Sudo 命令不起作用:

ssh -i (get-mocconfig).sshPrivateKey clouduser@<ip> date 

验证:日志收集

此命令返回 VM 日志,例如 cloudinitlb 日志等。

Get-AksHciLogs –virtualMachineLogs

注意事项

  • 工作负载群集的单个 SSH 配置现已推出。 工作负载群集的配置使用 New-AksHciSSHConfiguration PowerShell cmdlet。
  • 此限制仅适用于 Linux。 Windows 节点没有此限制;应该能够成功通过 SSH。
  • 只能在 AKS Arc 的安装阶段设置配置。
  • 如果错误地配置了任何 SSH 设置,则必须执行重新安装。
  • 不支持升级。
  • 可以添加可限制 SSH 访问的CIDR或 IP 地址。
  • 所有目标群集都重复使用提供的 SSH 设置。 工作负荷群集的单个 SSH 配置不可用。

后续步骤