Key Vault 로깅을 사용하도록 설정

하나 이상의 키 자격 증명 모음을 만든 후에는 키 자격 증명 모음에 액세스하는 방법, 시기 및 사용자를 모니터링하려고 할 수도 있습니다. 기능에 대한 자세한 내용은 Azure Key Vault 로깅을 참조하세요.

기록되는 내용:

  • 인증된 모든 REST API 요청(예: 액세스 권한, 시스템 오류 또는 잘못된 요청으로 인해 실패한 요청)
  • 키 자격 증명 모음 자체에 대한 작업(예: 키 자격 증명 모음 액세스 정책 만들기, 삭제, 설정 및 태그와 같은 키 자격 증명 모음 특성 업데이트)
  • 다음을 포함하여 키 자격 증명 모음의 키 및 비밀에 대한 작업
    • 이러한 키 또는 비밀 만들기, 수정 또는 삭제
    • 서명, 확인, 암호화, 암호 해독, 키 래핑 및 래핑 해제, 비밀 가져오기, 키 및 비밀(및 해당 버전) 나열
  • 401 응답이 발생하는 인증되지 않은 요청. 예제는 전달자 토큰이 부족하거나 형식이 잘못되었거나 만료되었거나 잘못된 토큰이 있는 요청입니다.
  • 다음 조건에 대한 Azure Event Grid 알림 이벤트: 만료됨, 만료 임박, 자격 증명 모음 액세스 정책 변경됨(새 버전 이벤트가 기록되지 않음). 키 자격 증명 모음에 생성된 이벤트 구독이 있더라도 이벤트가 기록됩니다. 자세한 내용은 Event Grid 원본으로 사용되는 Azure Key Vault를 참조하세요.

필수 조건

이 자습서를 완료하려면 Azure 키 자격 증명 모음이 필요합니다. 다음 방법 중 하나를 사용하여 새 Key Vault를 만들 수 있습니다.

로그에 대한 대상도 필요합니다. 대상은 기존 또는 새 Azure 스토리지 계정 및/또는 Log Analytics 작업 영역일 수 있습니다.

다음 방법 중 하나를 사용하여 새 Azure Storage 계정을 만들 수 있습니다.

다음 방법 중 하나를 사용하여 새 Log Analytics 작업 영역을 만들 수 있습니다.

Key Vault 구독에 연결

키 로깅을 설정하는 첫 번째 단계는 계정과 연결된 구독이 여러 개 있는 경우 키 자격 증명 모음이 포함된 구독에 연결하는 것입니다.

Azure CLI를 사용하면 az account list 명령을 사용하여 모든 구독을 볼 수 있습니다. 그런 다음, az account set 명령을 사용하여 연결할 수 있습니다.

az account list

az account set --subscription "<subscriptionID>"

Azure PowerShell을 사용하면 먼저 Get-AzSubscription cmdlet을 사용하여 구독을 나열할 수 있습니다. 그런 다음, Set-AzContext cmdlet을 사용하여 연결합니다.

Get-AzSubscription

Set-AzContext -SubscriptionId "<subscriptionID>"

리소스 ID 가져오기

키 자격 증명 모음에서 로깅을 사용하도록 설정하려면 키 자격 증명 모음의 리소스 ID 및 대상(Azure Storage 또는 Log Analytics 계정)이 필요합니다.

Key Vault의 이름이 기억나지 않는 경우, Azure CLI az keyvault list 명령이나 Azure PowerShell Get-AzKeyVault cmdlet을 사용하여 이름을 찾을 수 있습니다.

키 자격 증명 모음 이름을 사용하여 리소스 ID를 찾습니다. Azure CLI를 사용하는 경우 az keyvault show 명령을 사용합니다.

az keyvault show --name "<your-unique-keyvault-name>"

Azure PowerShell을 사용하는 경우 Get-AzKeyVault cmdlet을 사용합니다.

Get-AzKeyVault -VaultName "<your-unique-keyvault-name>"

키 자격 증명 모음의 리소스 ID 형식은 "/subscriptions/your-subscription-ID/resourceGroups/myResourceGroup/providers/Microsoft.KeyVault/vaults/your-unique-keyvault-name입니다. 다음 단계를 위해 기록해둡니다.

로깅 사용

Azure CLI, Azure PowerShell, Azure Portal을 사용하여 Key Vault에 대한 로깅을 사용하도록 설정할 수 있습니다.

Azure CLI

Azure CLI az monitor diagnostic-settings create 명령, 스토리지 계정 ID 및 키 자격 증명 모음 리소스 ID를 다음과 같이 사용합니다.

az monitor diagnostic-settings create --storage-account "<storage-account-id>" --resource "<key-vault-resource-id>" --name "Key vault logs" --logs '[{"category": "AuditEvent","enabled": true}]' --metrics '[{"category": "AllMetrics","enabled": true}]'

필요에 따라 지정된 시간이 지나면 오래된 로그가 자동으로 삭제되도록 로그 보존 정책을 설정할 수 있습니다. 예를 들어 90일이 지난 로그를 자동으로 삭제하는 보존 정책을 설정할 수 있습니다.

Azure CLI를 사용하는 경우 az monitor diagnostic-settings update 명령을 사용합니다.

az monitor diagnostic-settings update --name "Key vault retention policy" --resource "<key-vault-resource-id>" --set retentionPolicy.days=90

로그에 액세스

Key Vault 로그는 제공한 스토리지 계정의 insights-logs-auditevent 컨테이너에 있습니다. 로그를 보려면 Blob을 다운로드해야 합니다.

먼저 컨테이너의 모든 Blob을 나열합니다. Azure CLI를 사용하는 경우 az storage blob list 명령을 사용합니다.

az storage blob list --account-name "<your-unique-storage-account-name>" --container-name "insights-logs-auditevent"

Azure PowerShell에서는 Get-AzStorageBlob을 사용합니다. 이 컨테이너의 모든 Blob을 나열하려면 다음을 입력합니다.

Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context

Azure CLI 명령 또는 Azure PowerShell cmdlet의 출력에서 Blob의 이름이 다음 형식임을 확인할 수 있습니다. resourceId=<ARM resource ID>/y=<year>/m=<month>/d=<day of month>/h=<hour>/m=<minute>/filename.json. 날짜 및 시간 값은 협정 세계시를 사용합니다.

동일한 스토리지 계정을 사용하여 여러 리소스에 대한 로그를 수집할 수 있으므로 Blob 이름의 전체 리소스 ID는 필요한 Blob에 액세스하거나 다운로드하는 데 유용합니다.

먼저 모든 Blob을 다운로드합니다. Azure CLI를 사용하는 경우 az storage blob download 명령을 사용하여 Blob의 이름과 결과를 저장하려는 파일의 경로를 전달합니다.

az storage blob download --container-name "insights-logs-auditevent" --file <path-to-file> --name "<blob-name>" --account-name "<your-unique-storage-account-name>"

Azure PowerShell에서는 Get-AzStorageBlob cmdlet을 사용하여 Blob 목록을 가져옵니다. 그런 다음, 이 목록을 Get-AzStorageBlobContent cmdlet에 파이프하여 선택한 경로에 로그를 다운로드합니다.

$blobs = Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context | Get-AzStorageBlobContent -Destination "<path-to-file>"

PowerShell에서 이 두 번째 cmdlet을 실행할 때 Blob 이름의 / 구분 기호는 대상 폴더 아래에 전체 폴더 구조를 만듭니다. 이 구조를 사용하여 Blob을 다운로드하고 파일로 저장합니다.

선택적으로 Blob을 다운로드하려면 와일드카드를 사용합니다. 예시:

  • 여러 키 자격 증명 모음이 있고 CONTOSOKEYVAULT3이라는 하나의 키 자격 증명 모음에 대한 로그를 다운로드하려는 경우:

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/VAULTS/CONTOSOKEYVAULT3
    
  • 리소스 그룹이 여러 개이고 하나의 리소스 그룹에 대한 로그를 다운로드하려는 경우 -Blob '*/RESOURCEGROUPS/<resource group name>/*'을(를) 사용합니다.

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/RESOURCEGROUPS/CONTOSORESOURCEGROUP3/*'
    
  • 2019년 1월의 모든 로그를 다운로드하려면 -Blob '*/year=2019/m=01/*'을 사용합니다.

    Get-AzStorageBlob -Container "insights-logs-auditevent" -Context $sa.Context -Blob '*/year=2016/m=01/*'
    

Azure Monitor 로그 사용

Azure Monitor 로그에서 Key Vault 솔루션을 사용하여 Key Vault AuditEvent 로그를 검토할 수 있습니다. Azure Monitor 로그에서 로그 쿼리를 사용하여 데이터를 분석하고 필요한 정보를 가져옵니다. 자세한 내용은 Key Vault 모니터링을 참조하세요.

다음 단계

  • Key Vault 로그 해석 방법을 비롯한 개념 정보는 Key Vault 로깅을 참조하세요.
  • 키 자격 증명 모음에서 Azure Monitor를 사용하는 방법에 대해 자세히 알아보려면 Key Vault 모니터링을 참조하세요.