VNet 및 방화벽의 스토리지 계정에 대한 감사 작성

적용 대상:Azure SQL DatabaseAzure Synapse Analytics

Azure SQL Database 및 Azure Synapse Analytics에 대한 감사는 가상 네트워크 및 방화벽 뒤에 있는 Azure Storage 계정에 데이터베이스 이벤트를 작성하도록 지원합니다.

이 문서에서는 이 옵션에 대해 Azure SQL Database 및 Azure Storage 계정을 구성하는 두 가지 방법을 설명합니다. 첫 번째 방법은 Azure Portal을 사용하고, 두 번째 방법은 REST를 사용합니다.

배경

Azure Virtual Network(VNet)는 Azure의 프라이빗 네트워크의 기본 구성 요소입니다. VNet을 사용하면 Azure VM(Virtual Machines)과 같은 다양한 형식의 Azure 리소스가 서로, 인터넷 및 특정 온-프레미스 네트워크와 안전하게 통신할 수 있습니다. VNet은 자체 데이터 센터의 기존 네트워크와 유사하지만, 확장, 가용성 및 격리와 같은 Azure 인프라 이점을 추가로 활용할 수 있습니다.

VNet 개념, 모범 사례 등에 대해 자세히 알아보려면 Azure Virtual Network란?을 참조하세요.

가상 네트워크를 만드는 방법에 대한 자세한 내용은 빠른 시작: Azure Portal을 사용하여 가상 네트워크 만들기를 참조하세요.

필수 조건

감사를 통해 VNet 또는 방화벽의 스토리지 계정에 쓰려면 다음 필수 구성 요소가 필요합니다.

  • 범용 v2 스토리지 계정. 범용 v1 또는 Blob Storage 계정이 있는 경우 범용 v2 스토리지 계정으로 업그레이드합니다. 자세한 정보는 스토리지 계정 유형을 참조하세요.
  • BlockBlobStorage가 포함된 프리미엄 스토리지가 지원됩니다.
  • 스토리지 계정은 논리 SQL 서버와 동일한 테넌트 및 동일한 위치에 있어야 합니다(다른 구독이어도 괜찮습니다).
  • Azure Storage 계정을 사용하려면 Allow trusted Microsoft services to access this storage account해야 합니다. 스토리지 계정의 방화벽 및 가상 네트워크에 설정합니다.
  • 선택한 스토리지 계정에 대한 Microsoft.Authorization/roleAssignments/write 권한이 있어야 합니다 . 자세한 정보는 Azure 기본 제공 역할을 참조하세요.

참고 항목

서버 / db에서 이미 스토리지 계정에 대한 감사 사용이 이미 설정되어 있고, 테넌트 스토리지 계정이 방화벽으로 이동되면 스토리지 계정에 대한 쓰기 액세스 권한이 손실되고 감사 로그가 기록되지 않습니다. 감사 작업을 수행하려면 포털에서 감사 설정을 다시 저장해야 합니다.

Azure Portal에서 구성

구독으로 Azure Portal에 연결 리소스 그룹 및 서버로 이동합니다.

  1. 보안 제목에서 감사를 클릭하세요. 켜기를 선택합니다.

  2. 스토리지를 선택합니다. 로그를 저장할 스토리지 계정을 선택하세요. 스토리지 계정은 필수 구성 요소에 나열된 요구 사항을 준수해야 합니다.

  3. 스토리지 세부 정보 열기

참고 항목

선택한 스토리지 계정이 VNet에 있는 경우 다음 메시지가 표시됩니다.

You have selected a storage account that is behind a firewall or in a virtual network. Using this storage requires to enable 'Allow trusted Microsoft services to access this storage account' on the storage account and creates a server managed identity with 'storage blob data contributor' RBAC.

스토리지 계정이 VNet에 있지 않을 경우, 이 메시지가 표시되지 않습니다.

  1. 보존 기간의 일 수를 선택하세요. 그런 후 OK를 클릭합니다. 보존 기간 보다 오래된 로그는 삭제됩니다.

  2. 감사 설정에서 저장을 선택하세요.

VNet 또는 방화벽 뒤에 있는 스토리지 계정에 쓰도록 감사를 구성했습니다.

REST 명령을 사용하여 구성하기

Azure Portal을 사용하는 대신 REST 명령을 사용하여 VNet 및 방화벽 뒤에 있는 스토리지 계정에 데이터베이스 이벤트를 작성하도록 감사를 구성할 수 있습니다.

이 섹션의 샘플 스크립트를 실행하기 전에 해당 스크립트를 업데이트해야 합니다. 스크립트에서 다음 값을 바꿉니다.

샘플 값 샘플 설명
<subscriptionId> Azure 구독 ID
<resource group> Resource group
<logical SQL Server> 서버 이름
<administrator login> 관리자 계정
<complex password> 관리자 계정용 복잡한 암호

VNet 또는 방화벽 뒤의 스토리지 계정에 이벤트를 쓰도록 SQL 감사를 구성하려면

  1. Microsoft Entra ID(이전의 Azure Active Directory)를 사용하여 서버를 등록하세요. PowerShell 또는 REST API 중 하나를 사용합니다.

    PowerShell

    Connect-AzAccount
    Select-AzSubscription -SubscriptionId <subscriptionId>
    Set-AzSqlServer -ResourceGroupName <your resource group> -ServerName <azure server name> -AssignIdentity
    

    REST API:

    샘플 요청

    PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Sql/servers/<azure server name>?api-version=2015-05-01-preview
    

    요청 본문

    {
    "identity": {
               "type": "SystemAssigned",
               },
    "properties": {
      "fullyQualifiedDomainName": "<azure server name>.database.windows.net",
      "administratorLogin": "<administrator login>",
      "administratorLoginPassword": "<complex password>",
      "version": "12.0",
      "state": "Ready"
      }
    }
    
  2. 이전 단계에서 Microsoft Entra ID에 등록한 데이터베이스를 호스팅하는 서버에 Storage Blob 데이터 기여자 역할을 할당하세요.

    세부 단계에 대해서는 Azure Portal을 사용하여 Azure 역할 할당을 참조하세요.

    참고 항목

    소유자 권한이 있는 멤버만 이 단계를 수행할 수 있습니다. 다양한 Azure 기본 제공 역할에 관해서는 Azure 기본 제공 역할을 참조하세요.

  3. storageAccountAccessKey를 지정하지 않고 서버 BLOB 감사 정책을 구성하세요.

    샘플 요청

      PUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group>/providers/Microsoft.Sql/servers/<azure server name>/auditingSettings/default?api-version=2017-03-01-preview
    

    요청 본문

    {
      "properties": {
       "state": "Enabled",
       "storageEndpoint": "https://<storage account>.blob.core.windows.net"
      }
    }
    

Azure PowerShell 사용

Azure Resource Manager 템플릿 사용

다음 예제와 같이 Azure Resource Manager 템플릿을 사용하여 가상 네트워크 및 방화벽으로 보호되는 스토리지 계정에 데이터베이스 이벤트를 쓰도록 감사를 구성할 수 있습니다.

Important

가상 네트워크 및 방화벽 뒤에 스토리지 계정을 사용하려면 isStorageBehindVnet 매개 변수를 true로 설정해야 합니다.

참고 항목

연결된 샘플은 외부 공용 리포지토리에 있으며 보증 없이 '있는 그대로' 제공되며 Microsoft 지원 프로그램/서비스에서 지원되지 않습니다.

다음 단계