다음을 통해 공유


자습서: Azure Database for MySQL - 유연한 서버를 사용하여 감사 로그 구성

적용 대상: Azure Database for MySQL - 유연한 서버

Azure Database for MySQL 유연한 서버를 사용하여 감사 로그를 구성할 수 있습니다. 감사 로그는 연결, 관리, DDL(데이터 정의 언어) 및 DML(데이터 조작 언어) 이벤트를 포함한 데이터베이스 수준 작업을 추적하는 데 사용할 수 있습니다. 이러한 유형의 로그는 일반적으로 규정 준수를 위해 사용됩니다. 일반적으로 데이터베이스 감사를 사용하여 다음을 수행합니다.

  • 특정 스키마, 테이블 또는 행 내에서 발생하거나 특정 콘텐츠에 영향을 주는 모든 작업을 고려합니다.
  • 사용자(또는 다른 사용자)의 책임에 따라 부적절한 작업을 방지합니다.
  • 의심스러운 활동을 조사합니다.
  • 특정 데이터베이스 작업에 대한 데이터를 모니터링하고 수집합니다.

이 문서에서는 MySQL 감사 로그, Log Analytics 도구 또는 통합 문서 템플릿을 사용하여 Azure Database for MySQL 유연한 서버에 대한 감사 정보를 시각화하는 방법에 대해 설명합니다.

이 자습서에서는 다음 작업을 수행하는 방법을 알아봅니다.

  • Azure Portal 또는 Azure CLI를 사용하여 감사 구성
  • 진단 설정
  • Log Analytics를 사용하여 감사 로그 보기
  • 통합 문서를 사용하여 감사 로그 보기

필수 조건

Azure Portal을 사용하여 감사 구성

  1. Azure Portal에 로그인합니다.

  2. 유연한 서버 인스턴스를 선택합니다.

  3. 왼쪽 창의 설정 아래에서 서버 매개 변수를 선택합니다.

    '서버 매개 변수' 목록을 보여 주는 스크린샷

  4. audit_log_enabled 매개 변수에 대해 ON을 선택합니다.

    'on'으로 전환된 'audit_log_enabled' 매개 변수를 보여 주는 스크린샷

  5. audit_log_events 매개 변수에 대해 드롭다운 목록에서 기록할 이벤트 유형을 선택합니다.

    'audit_log_events' 드롭다운 목록의 이벤트 옵션에 대한 스크린샷

  6. audit_log_exclude_usersaudit_log_include_users 매개 변수에 대해 MySQL 사용자 이름을 제공하여 로깅에 포함하거나 제외할 MySQL 사용자를 지정합니다.

    로깅에서 포함하거나 제외할 MySQL 사용자 이름을 보여 주는 스크린샷

  7. 저장을 선택합니다.

    매개 변수 값의 변경 내용을 저장하기 위한 '저장' 단추의 스크린샷

Azure CLI를 사용하여 감사 구성

또는 다음 명령을 실행하여 Azure CLI에서 유연한 서버에 대한 감사를 사용 하도록 설정하고 구성할 수 있습니다.

# Enable audit logs
az mysql flexible-server parameter set \
--name audit_log_enabled \
--resource-group myresourcegroup \
--server-name mydemoserver \
--value ON

진단 설정

감사 로그는 Azure Monitor 진단 설정과 통합되어 로그를 다음 세 가지 데이터 싱크 중 하나에 파이프할 수 있습니다.

  • Log Analytics 작업 영역
  • 이벤트 허브
  • 스토리지 계정

참고 항목

진단 설정을 구성하기 전에 먼저 데이터 싱크를 만들어야 합니다. 구성한 데이터 싱크에 있는 감사 로그에 액세스할 수 있습니다. 로그가 표시되는 데에는 최대 10분이 걸릴 수 있습니다.

  1. 왼쪽 창의 모니터링 아래에서 진단 설정을 선택합니다.

  2. 진단 설정 창에서 진단 설정 추가를 선택합니다.

    '진단 설정' 창의 '진단 설정 추가' 링크 스크린샷

  3. 이름 상자에서 진단 설정의 이름을 입력합니다.

    구성 옵션을 선택하기 위한 '진단 설정' 창의 스크린샷

  4. 해당 확인란을 선택하여 감사 로그를 보낼 대상(Log Analytics 작업 영역, 이벤트 허브 또는 스토리지 계정)을 지정합니다.

    참고 항목

    이 자습서에서는 감사 로그를 Log Analytics 작업 영역에 보냅니다.

  5. 로그 아래에서 로그 유형에 대해 MySqlAuditLogs 확인란을 선택합니다.

  6. 감사 로그를 파이프하도록 데이터 싱크가 구성되면 저장을 선택합니다.

Log Analytics를 사용하여 감사 로그 보기

  1. Log Analytics의 왼쪽 창에 있는 모니터링 아래에서 로그를 선택합니다.

  2. 쿼리 창을 닫습니다.

    Log Analytics '쿼리' 창의 스크린샷.

  3. 실행할 쿼리는 쿼리 창에서 작성할 수 있습니다. 예를 들어 특정 서버에서 감사된 이벤트의 요약을 찾기 위해 다음 쿼리를 사용했습니다.

    AzureDiagnostics
        |where Category =='MySqlAuditLogs' 
        |project TimeGenerated, Resource, event_class_s, event_subclass_s, event_time_t, user_s ,ip_s , sql_text_s 
        |summarize count() by event_class_s,event_subclass_s 
        |order by event_class_s 
    

    특정 서버에서 감사된 이벤트의 요약을 찾으려는 Log Analytics 쿼리 예제의 스크린샷

통합 문서를 사용하여 감사 로그 보기

감사에 사용하는 통합 문서 템플릿을 사용하려면 플랫폼 로그를 보내는 진단 설정을 만들어야 합니다.

  1. Azure Monitor의 왼쪽 창에서 활동 로그를 선택한 다음, 진단 설정을 선택합니다.

    Azure Monitor '활동 로그' 창의 '진단 설정' 탭을 보여 주는 스크린샷.

  2. 진단 설정 창에서 새 설정을 추가하거나 기존 설정을 편집할 수 있습니다. 각 설정에는 하나의 대상 유형만 있을 수 있습니다.

    로그 대상을 선택하기 위한 Azure Monitor '진단 설정' 창의 스크린샷

    참고 항목

    이미 구성한 데이터 싱크(Log Analytics 작업 영역, 스토리지 계정 또는 이벤트 허브)에서 느린 쿼리 로그에 액세스할 수 있습니다. 로그가 표시되는 데에는 최대 10분이 걸릴 수 있습니다.

  3. Azure Portal의 왼쪽 창에 있는 Azure Database for MySQL 유연한 서버 인스턴스에 대한 모니터링에서 Workbooks를 선택합니다.

  4. 감사 통합 문서를 선택합니다.

    통합 문서 갤러리의 모든 통합 문서를 보여 주는 스크린샷

통합 문서에서 다음 시각화를 볼 수 있습니다.

  • 서비스에 대한 관리 작업
  • 감사 요약
  • 연결 이벤트 감사 요약
  • 연결 이벤트 감사
  • 테이블 액세스 요약
  • 식별된 오류

통합 문서 템플릿 '서비스에 대한 관리 작업'의 스크린샷

통합 문서 템플릿 '연결 이벤트 감사'의 스크린샷

참고 항목

  • 이러한 템플릿을 편집하고 요구 사항에 따라 사용자 지정할 수도 있습니다. 자세한 내용은 Azure 통합 문서의 "편집 모드" 섹션을 참조하세요.
  • 빠른 보기를 위해 통합 문서 또는 Log Analytics 쿼리를 대시보드에 고정할 수도 있습니다. 자세한 내용은 Azure Portal에서 대시보드 만들기를 참조하세요.

서비스에 대한 관리 작업 보기는 서비스에서 수행된 작업에 대한 세부 정보를 제공합니다. 구독의 리소스에 대해 수행된 쓰기 작업(PUT, POST, DELETE)의 대상, 사용자 및 시기를 확인하는 데 도움이 됩니다.

다른 시각화를 사용하여 데이터베이스 작업의 세부 정보를 이해할 수 있습니다. 데이터베이스 보안의 4가지 요소는 다음과 같습니다.

  • 서버 보안: 권한 없는 담당자가 데이터베이스에 액세스하지 못하도록 방지해야 합니다.
  • 데이터베이스 연결: 관리자는 권한 있는 담당자가 데이터베이스 업데이트를 수행했는지 여부를 확인해야 합니다.
  • 테이블 액세스 제어: 권한 있는 사용자의 액세스 키와 각 사용자가 처리할 권한이 있는 데이터베이스 내의 테이블을 표시합니다.
  • 데이터베이스 액세스 제한: 데이터베이스를 인터넷에 업로드한 사용자에게 특히 중요하며, 외부 원본에서 데이터베이스에 액세스하지 못하도록 방지하는 데 도움이 됩니다.

다음 단계