启用和禁用 Azure 串行控制台

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

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

VM 级禁用

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

订阅级别的启用/禁用

注意

运行此命令之前,请确保在正确的云 (Azure 公有云、Azure 美国政府云等) 。 可以使用 检查az cloud list,并使用 az 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="2018-05-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="2018-05-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="2018-05-01" | jq .properties

PowerShell

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

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

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

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

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

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

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

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

若要启用对串行控制台的最低特权访问,需要创建一个 Azure 角色,该角色具有对虚拟机 (所需的权限,该虚拟机需要访问) 资源组或 VM 所属订阅上的串行控制台。 可以将此 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 反馈社区提交产品反馈。