다음을 통해 공유


사용자 지정 Azure 정책을 사용하여 대규모 진단 설정 만들기

정책 및 정책 이니셔티브는 Azure Monitor에 대한 진단 설정을 사용하여 대규모로 로깅을 사용하도록 설정하는 간단한 방법을 제공합니다. 이 문서에서는 기본 제공 정책이 없는 Azure 리소스에 대한 사용자 지정 정책을 만드는 방법을 설명합니다. 기본 제공 Azure 정책을 사용하여 대규모 진단 설정 만들기를 참조하여 기본 제공 정책이 있는 Azure 리소스에 대한 진단 설정을 보다 쉽게 만들 수 있습니다.

로그 범주 그룹

로그 범주 그룹은 유사한 형식의 로그를 함께 그룹화합니다. 범주 그룹을 사용하면 단일 명령으로 여러 로그를 쉽게 참조할 수 있습니다. 모든 로그를 포함하는 allLogs 범주 그룹이 존재합니다. 모든 감사 로그를 포함하는 audit 범주 그룹도 있습니다. 범주 그룹을 사용하여 새 로그 범주가 그룹에 추가됨에 따라 동적으로 업데이트하는 정책을 정의할 수 있습니다.

사용자 지정 정책 정의

기본 제공 정책이 없는 리소스 종류의 경우 사용자 지정 정책 정의를 만들어야 합니다. 기존 기본 제공 정책을 복사한 다음 리소스 종류에 맞게 수정하여 Azure Portal에서 수동으로 새 정책을 만들 수 있습니다. 또는 PowerShell 갤러리에서 스크립트를 사용하여 프로그래밍 방식으로 정책을 만듭니다.

Create-AzDiagPolicy 스크립트는 PowerShell 또는 Azure CLI를 사용하여 설치할 수 있는 특정 리소스 종류에 대한 정책 파일을 만듭니다. 다음 절차에 따라 진단 설정에 대한 사용자 지정 정책 정의를 만듭니다.

  1. Azure PowerShell이 설치되어 있는지 확인합니다.

  2. 다음 명령을 사용하여 스크립트를 설치합니다.

    Install-Script -Name Create-AzDiagPolicy
    
  3. 매개 변수를 사용하여 스크립트를 실행하여 로그를 보낼 위치를 지정합니다. 프롬프트에서 구독 및 리소스 유형을 지정합니다.

    예를 들어 Log Analytics 작업 영역 및 이벤트 허브에 로그를 보내는 정책 정의를 만들려면 다음 명령을 사용합니다.

    Create-AzDiagPolicy.ps1 -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
    

    또는 명령에서 구독 및 리소스 종류를 지정할 수 있습니다. 예를 들어 로그를 Log Analytics 작업 영역 및 SQL Server 데이터베이스용 이벤트 허브로 보내는 정책 정의를 만들려면 다음 명령을 사용합니다.

    Create-AzDiagPolicy.ps1 -SubscriptionID <subscription id> -ResourceType Microsoft.Sql/servers/databases -ExportLA -ExportEH -ExportDir ".\PolicyFiles"
    
  4. 스크립트는 각 정책 정의에 대해 별도의 폴더를 만듭니다. 각 폴더에는 azurepolicy.json, azurepolicy.rules.jsonazurepolicy.parameters.json이라는 세 개의 파일이 있습니다. Azure Portal에서 정책을 수동으로 만들려는 경우 전체 정책 정의를 포함하는 azurepolicy.json의 내용을 복사하여 붙여넣을 수 있습니다. PowerShell 또는 Azure CLI와 함께 다른 두 파일을 사용하여 명령줄에서 정책 정의를 만듭니다.

    다음 예제에서는 PowerShell과 Azure CLI 모두에서 정책 정의를 설치하는 방법을 보여 줍니다. 각 예제에는 모니터링 범주를 지정하여 새 정책 정의를 기본 제공 정책 정의와 그룹화하기 위한 메타데이터가 포함되어 있습니다.

    New-AzPolicyDefinition -name "Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace" -policy .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json -parameter .\Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json -mode All -Metadata '{"category":"Monitoring"}'
    
    az policy definition create --name 'deploy-diag-setting-sql-database--workspace' --display-name 'Deploy Diagnostic Settings for SQL Server database to Log Analytics workspace'  --rules 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.rules.json' --params 'Apply-Diag-Settings-LA-Microsoft.Sql-servers-databases\azurepolicy.parameters.json' --subscription 'AzureMonitor_Docs' --mode All
    

이니셔티브

각 정책 정의에 대한 할당을 만드는 대신, 일반적인 전략은 각 Azure 서비스에 대한 진단 설정을 만드는 정책 정의를 포함하는 이니셔티브를 만드는 것입니다. 환경을 관리하는 방법에 따라 이니셔티브와 관리 그룹, 구독 또는 리소스 그룹 간에 할당을 만듭니다. 이 전략은 다음과 같은 이점을 제공합니다.

  • 리소스 종류마다 여러 할당을 만드는 대신 이니셔티브에 대해 단일 할당을 만듭니다. 여러 모니터링 그룹, 구독 또는 리소스 그룹에 동일한 이니셔티브를 사용합니다.
  • 새 리소스 유형 또는 대상을 추가해야 하는 경우 이니셔티브를 수정합니다. 예를 들어, 초기에는 Log Analytics 작업 영역에만 데이터를 전송해야 하지만 나중에는 이벤트 허브를 추가할 수 있습니다. 새 할당을 만드는 대신 이니셔티브를 수정합니다.

이니셔티브 만들기에 대한 자세한 내용은 이니셔티브 정의 만들기 및 할당을 참조하세요. 다음 권장 사항을 살펴 보십시오.

  • 범주모니터링으로 설정하여 관련 기본 제공 및 사용자 지정 정책 정의와 그룹화합니다.
  • 이니셔티브에 포함된 정책 정의에 대한 Log Analytics 작업 영역 및 이벤트 허브의 세부 정보를 지정하는 대신 일반적인 이니셔티브 매개 변수를 사용합니다. 이 매개 변수를 사용하면 모든 정책 정의에 대한 공통 값을 쉽게 지정하고 필요한 경우 해당 값을 변경할 수 있습니다.

이니셔티브 정의에 대한 설정을 보여 주는 스크린샷

양도

모니터링할 리소스의 범위에 따라 Azure 관리 그룹, 구독 또는 리소스 그룹에 이니셔티브를 할당합니다. 관리 그룹은 특히 조직에 여러 구독이 있는 경우 범위 지정 정책에 유용합니다.

Azure Portal의 Log Analytics 작업 영역에 대한 진단 설정의 이니셔티브 할당 섹션에 있는 기본 사항 탭의 설정 스크린샷

이니셔티브 매개 변수를 사용하여 이니셔티브의 모든 정책 정의에 대해 작업 영역 또는 다른 세부 정보를 한 번 지정할 수 있습니다.

매개 변수 탭의 이니셔티브 매개 변수를 보여 주는 스크린샷

교정

이니셔티브는 생성되는 각 가상 머신에 적용됩니다. 수정 작업은 이니셔티브의 정책 정의를 기존 리소스에 배포하므로 이미 만들어진 모든 리소스에 대한 진단 설정을 만들 수 있습니다.

Azure Portal을 사용하여 할당을 만들면서 동시에 수정 작업을 만들 수 있습니다. 수정에 대한 자세한 내용은 Azure Policy를 사용하여 비준수 리소스 수정을 참조하세요.

Log Analytics 작업 영역에 대한 이니셔티브 수정을 보여 주는 스크린샷

다음 단계