하나 이상의 키 자격 증명 모음을 만든 후에는 누가, 어떻게, 언제 키 자격 증명 모음에 액세스하는지를 모니터링하고 싶을 것입니다. 기능에 대한 자세한 내용은 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 작업 영역을 만들 수 있습니다.
- Azure CLI를 사용하여 Log Analytics 작업 영역 만들기
- Azure PowerShell을 사용하여 Log Analytics 작업 영역 만들기
- Azure Portal에서 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 모니터링을 참조하세요.


