다음을 통해 공유


Key Vault 로깅 활성화

하나 이상의 키 자격 증명 모음을 만든 후에는 누가, 어떻게, 언제 키 자격 증명 모음에 액세스하는지를 모니터링하고 싶을 것입니다. 기능에 대한 자세한 내용은 Azure Key Vault 로깅을 참조하세요.

기록되는 내용:

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

필수 조건

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

로그를 저장할 위치도 필요합니다. 대상은 기존 또는 새 Azure Storage 계정 및/또는 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 가져오기

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

키 자격 증명 모음의 이름을 기억할 수 없는 경우 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임을 확인할 수 있습니다. 날짜 및 시간 값은 협정 세계시(UTC)를 사용합니다.

동일한 스토리지 계정을 사용하여 여러 리소스에 대한 로그를 수집할 수 있으므로 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 모니터링을 참조하세요.