Share via


Bastion 리소스 로그 사용 및 작업

사용자가 Azure Bastion을 사용하여 워크로드에 연결하면 Bastion에서 원격 세션 진단을 로깅할 수 있습니다. 그런 다음 진단을 사용하여 어떤 사용자가 어디에서 언제 어떤 워크로드에 연결되었는지 및 관련된 로깅 정보 등을 볼 수 있습니다. 진단을 사용하려면 Azure Bastion에서 진단 로그를 사용하도록 설정해야 합니다. 이 문서는 진단 로그를 사용하도록 설정하고 로그를 확인하는 데 도움이 됩니다.

참고 항목

Bastion에 사용할 수 있는 모든 리소스 로그를 보려면 각 리소스 로그를 선택합니다. '모든 로그' 설정을 제외하면 사용 가능한 리소스 로그가 모두 표시되지 않습니다.

리소스 로그 사용

  1. Azure Portal에서 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":"eastus",
    "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":"eastus",
    "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":"eastus",
    "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":"eastus",
    "CustomerSubscriptionId":"<subscripionID>"
    }
    

다음 단계

Bastion FAQ를 참조하세요.