启用和禁用 Azure 串行控制台

适用于:✔️ Linux VM ✔️ Windows VM

与任何其他资源一样,可以启用和禁用 Azure 串行控制台。 默认情况下,全局 Azure 中的所有订阅都启用串行控制台。 目前,禁用串行控制台将禁用整个订阅的服务。 为订阅禁用或重新启用串行控制台需要订阅的参与者级访问权限或更高版本。

还可以通过禁用启动诊断为单个 VM 或虚拟机规模集实例禁用串行控制台。 VM/虚拟机规模集和启动诊断存储帐户都需要参与者级访问权限或更高版本。

VM 级禁用

可以通过禁用启动诊断设置为特定 VM 或虚拟机规模集禁用串行控制台。 从Azure 门户关闭启动诊断,以禁用 VM 或虚拟机规模集的串行控制台。 如果在虚拟机规模集上使用串行控制台,请确保将虚拟机规模集实例升级到最新的模型。

订阅级别启用/禁用

注意

运行此命令之前,请确保位于正确的云中(Azure 公有云、Azure 美国政府云等)。 可以使用 .az cloud listaz cloud set -n <Name of cloud>.

Azure CLI

可以使用 Azure CLI 中的以下命令为整个订阅禁用和重新启用串行控制台(可以使用“试用”按钮启动可在其中运行命令的 Azure Cloud Shell 实例):

若要为订阅禁用串行控制台,请使用以下命令:

$subscriptionId=$(az account show --output=json | jq -r .id)

az resource invoke-action --action disableConsole --ids "/subscriptions/$subscriptionId/providers/Microsoft.SerialConsole/consoleServices/default" --api-version="2023-01-01"

若要为订阅启用串行控制台,请使用以下命令:

$subscriptionId=$(az account show --output=json | jq -r .id)

az resource invoke-action --action enableConsole --ids "/subscriptions/$subscriptionId/providers/Microsoft.SerialConsole/consoleServices/default" --api-version="2023-01-01"

若要获取订阅串行控制台的当前启用/禁用状态,请使用以下命令:

$subscriptionId=$(az account show --output=json | jq -r .id)

az resource show --ids "/subscriptions/$subscriptionId/providers/Microsoft.SerialConsole/consoleServices/default" --output=json --api-version="2023-01-01" | jq .properties

PowerShell

还可以使用 PowerShell 启用和禁用串行控制台。

若要为订阅禁用串行控制台,请使用以下命令:

$subscription=(Get-AzContext).Subscription.Id

Invoke-AzResourceAction -Action disableConsole -ResourceId /subscriptions/$subscription/providers/Microsoft.SerialConsole/consoleServices/default -ApiVersion 2023-01-01

若要为订阅启用串行控制台,请使用以下命令:

$subscription=(Get-AzContext).Subscription.Id

Invoke-AzResourceAction -Action enableConsole -ResourceId /subscriptions/$subscription/providers/Microsoft.SerialConsole/consoleServices/default -ApiVersion 2023-01-01

使用 RBAC 启用对串行控制台的最小特权访问

若要启用对串行控制台的最小特权访问,需要创建具有虚拟机(需要访问串行控制台的虚拟机)资源组或 VM 所加入订阅的所需权限的 Azure 角色。 可以将此 Azure 角色分配给需要访问串行控制台的用户。

创建的角色需要以下 Azure Actions 权限:

"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Compute/virtualMachines/write",
"Microsoft.Resources/subscriptions/resourceGroups/read",
"Microsoft.Storage/storageAccounts/listKeys/action",
"Microsoft.Storage/storageAccounts/read",
"Microsoft.SerialConsole/serialPorts/connect/action"

下表说明了每个 Azure 操作的作用:

Azure 操作 说明
“Microsoft.Compute/virtualMachines/start/action” 启动虚拟机
“Microsoft.Compute/virtualMachines/read” 获取虚拟机的属性
“Microsoft.Compute/virtualMachines/write” 创建新的虚拟机,或更新现有的虚拟机
“Microsoft.Resources/subscriptions/resourceGroups/read 获取或列出资源组
“Microsoft.Storage/storageAccounts/listKeys/action” 返回指定存储帐户的访问密钥
“Microsoft.Storage/storageAccounts/read” 返回存储帐户列表或获取指定存储帐户的属性
“Microsoft.SerialConsole/serialPorts/connect/action” 连接到串行端口

下面的 JSON 可用于定义对订阅中 VM 的最小特权访问权限的自定义角色,以及订阅中资源组中的 VM。

如果只想分配对资源组中 VM 的访问权限,请删除以下属性中的assignableScopes第一个值 "/subscriptions/<subscriptionID>/"

如果要分配对订阅中 VM 的访问权限,请删除以下属性中的assignableScopes第二个值 "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>"

"properties": {
    "roleName": "Azure Serial Console Access Role",
    "description": "Serial Console access with least privilege.",
    "assignableScopes": [
        "/subscriptions/<subscriptionID>/"
        "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroup>"
    ],
    "permissions": [
        {
            "actions": [
                "Microsoft.Compute/virtualMachines/start/action",
                "Microsoft.Compute/virtualMachines/read",
                "Microsoft.Compute/virtualMachines/write",
                "Microsoft.Resources/subscriptions/resourceGroups/read",
                "Microsoft.Storage/storageAccounts/listKeys/action",
                "Microsoft.Storage/storageAccounts/read",
                "Microsoft.SerialConsole/serialPorts/connect/action"
            ],
            "notActions": [],
            "dataActions": [],
            "notDataActions": []
        }
    ]
}

有关如何使用Azure 门户创建自定义角色以对串行控制台进行最低特权访问的说明,请阅读以下文档:使用 Azure 门户 创建或更新 Azure 自定义角色。

对于 步骤 1:确定所需的权限,角色所需的权限是上面所示的 Azure 操作。

对于 步骤 5:可分配的范围,如果只希望具有角色的用户有权访问特定 VM 的串行控制台,请将范围设置为 VM 的资源组。 如果希望用户对订阅中的任何 VM 具有串行控制台访问权限,还可以将范围设置为订阅。

有关如何使用Azure 门户分配角色的说明,请阅读以下文档:使用 Azure 门户 分配 Azure 角色。

后续步骤

联系我们寻求帮助

如果你有任何疑问或需要帮助,请创建支持请求联系 Azure 社区支持。 你还可以将产品反馈提交到 Azure 反馈社区