启用和使用 Bastion 资源日志

当用户使用 Azure Bastion 连接到工作负载时,Bastion 可以记录对远程会话的诊断。 然后你可以使用诊断来查看哪些用户在什么时间从哪里连接到哪些工作负载,以及其他此类相关的日志记录信息。 若要使用诊断,必须在 Azure Bastion 上启用诊断日志。 本文可帮助你先启用诊断日志,然后查看这些日志。

注意

要查看可用于 Bastion 的所有资源日志,请选择每个资源日志。 如果排除“所有日志”设置,则看不到所有可用的资源日志。

启用资源日志

  1. Azure 门户中,转到 Azure Bastion 资源并从 Azure Bastion 页面选择“诊断设置”。

    Screenshot that shows the

  2. 选择“诊断设置”,然后选择“+添加诊断设置”,以便为日志添加目标。

    Screenshot that shows the

  3. 在“诊断设置”页上,选择要用于存储诊断日志的存储帐户的类型。

    Screenshot of the

  4. 完成设置后,设置将如以下示例所示:

    example settings

查看诊断日志

若要访问诊断日志,可以直接使用在启用诊断设置时指定的存储帐户。

  1. 导航到你的存储帐户资源,然后导航到“容器”。 你会看到在存储帐户 blob 容器中创建了 insights-logs-bastionauditlogs blob。

    diagnostics settings

  2. 在转到容器中后,会看到 Blob 中的各种文件夹。 这些文件夹指示 Azure Bastion 资源的资源层次结构。

    add diagnostic setting

  3. 导航到要访问/查看其诊断日志的 Azure Bastion 资源的完整层次结构。 “y=”、“m=”、“d=”、“h=”和“m=”分别指示资源日志的年、月、日、小时和分钟。

    select storage location

  4. 找到由 Azure Bastion 创建的 json 文件,其中包含导航到的时间段的诊断日志数据。

  5. 从存储 blob 容器下载 json 文件。 下面显示了 json 文件中成功登录的示例条目供参考:

    { 
    "time":"2019-10-03T16:03:34.776Z",
    "resourceId":"/SUBSCRIPTIONS/<subscripionID>/RESOURCEGROUPS/MYBASTION/PROVIDERS/MICROSOFT.NETWORK/BASTIONHOSTS/MYBASTION-BASTION",
    "operationName":"Microsoft.Network/BastionHost/connect",
    "category":"BastionAuditLogs",
    "level":"Informational",
    "location":"chinaeast2",
    "properties":{ 
       "userName":"<username>",
       "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
       "clientIpAddress":"131.107.159.86",
       "clientPort":24039,
       "protocol":"ssh",
       "targetResourceId":"/SUBSCRIPTIONS/<subscripionID>/RESOURCEGROUPS/MYBASTION/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/LINUX-KEY",
       "subscriptionId":"<subscripionID>",
       "message":"Successfully Connected.",
       "resourceType":"VM",
       "targetVMIPAddress":"172.16.1.5",
       "userEmail":"<userAzureAccountEmailAddress>",
       "tunnelId":"<tunnelID>"
    },
    "FluentdIngestTimestamp":"2019-10-03T16:03:34.0000000Z",
    "Region":"chinaeast2",
    "CustomerSubscriptionId":"<subscripionID>"
    }
    

    以下是 json 文件中登录失败(例如,由于用户名/密码不正确)的示例条目:

    { 
    "time":"2019-10-03T16:03:34.776Z",
    "resourceId":"/SUBSCRIPTIONS/<subscripionID>/RESOURCEGROUPS/MYBASTION/PROVIDERS/MICROSOFT.NETWORK/BASTIONHOSTS/MYBASTION-BASTION",
    "operationName":"Microsoft.Network/BastionHost/connect",
    "category":"BastionAuditLogs",
    "level":"Informational",
    "location":"chinaeast2",
    "properties":{ 
       "userName":"<username>",
       "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
       "clientIpAddress":"131.107.159.86",
       "clientPort":24039,
       "protocol":"ssh",
       "targetResourceId":"/SUBSCRIPTIONS/<subscripionID>/RESOURCEGROUPS/MYBASTION/PROVIDERS/MICROSOFT.COMPUTE/VIRTUALMACHINES/LINUX-KEY",
       "subscriptionId":"<subscripionID>",
       "message":"Login Failed",
       "resourceType":"VM",
       "targetVMIPAddress":"172.16.1.5",
       "userEmail":"<userAzureAccountEmailAddress>",
       "tunnelId":"<tunnelID>"
    },
    "FluentdIngestTimestamp":"2019-10-03T16:03:34.0000000Z",
    "Region":"chinaeast2",
    "CustomerSubscriptionId":"<subscripionID>"
    }
    

后续步骤

阅读 Bastion 常见问题解答