Azure Key Vault의 고객 관리 키를 사용한 투명한 데이터 암호화에 대한 일반적인 오류
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics
이 문서에서는 Azure Key Vault에서 고객이 관리하는 키와 함께 TDE(투명 데이터 암호화)를 사용하도록 구성된 데이터베이스에 액세스할 수 없게 된 Azure Key Vault 키 액세스 문제를 식별하고 해결하는 방법에 대해 설명합니다.
참고 항목
Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.
소개
TDE가 Azure Key Vault에서 고객 관리 키를 사용하도록 구성된 경우, 데이터베이스를 온라인 상태로 유지하려면 이 TDE 보호기에 계속 액세스해야 합니다. 논리 SQL Server 또는 관리되는 인스턴스가 Azure Key Vault의 고객 관리형 TDE 보호기에 대한 액세스 권한을 잃게 되면 데이터베이스는 적절한 오류 메시지와 함께 모든 연결을 거부하고 Azure Portal에서 해당 상태를 "액세스할 수 없음"으로 변경합니다.
처음 30분 동안 기본 Azure Key Vault 키 액세스 문제가 해결되면 데이터베이스가 자동으로 복구되고 온라인 상태가 됩니다. 즉, 일시적인 모든 네트워크 중단 시나리오의 경우 사용자 작업이 필요하지 않으며 데이터베이스는 자동으로 온라인 상태가 됩니다. 대부분의 경우 기본 키 자격 증명 모음 키 액세스 문제를 해결하려면 사용자 작업이 필요합니다.
액세스할 수 없는 데이터베이스가 더 이상 필요하지 않은 경우 즉시 삭제하여 비용 발생을 중지할 수 있습니다. Azure Key Vault 키에 대한 액세스가 복원되고 데이터베이스가 다시 온라인 상태가 될 때까지 데이터베이스에 대한 기타 모든 작업은 허용되지 않습니다. 고객 관리 키로 암호화된 데이터베이스에 액세스할 수 없는 동안에는 서버에서 TDE 옵션을 고객 관리 키에서 서비스 관리 키로 변경하는 것도 불가능합니다. 이 기능은 TDE 보호기에 대한 권한이 해지된 상태에서 무단 액세스로부터 데이터를 보호하는 데 필요합니다.
데이터베이스가 30분 넘게 액세스할 수 없게 된 후에는 더 이상 자동으로 복구되지 않습니다. 해당 기간 후에 필요한 Azure Key Vault 키 액세스가 복원된 경우 데이터베이스를 다시 온라인 상태로 전환하려면 수동으로 키 액세스의 유효성을 다시 검사해야 합니다. 이 경우 데이터베이스를 다시 온라인 상태로 전환하는 데는 데이터베이스의 크기에 따라 상당한 시간이 걸릴 수 있습니다. 데이터베이스가 다시 온라인 상태가 되면 장애 조치(failover) 그룹, PITR 기록, 태그 등 이전에 구성한 설정이 모두 손실됩니다. 따라서 가능한 한 빨리 근본적인 키 저장소 키 액세스 문제를 인지하고 해결할 수 있는 작업 그룹을 사용하여 알림 시스템을 구현하는 것이 좋습니다.
데이터베이스들에 액세스할 수 없는 일반적인 오류
Key Vault에서 TDE를 사용할 때 발생하는 대부분의 문제는 다음 구성 오류 중 하나로 인해 발생합니다.
키 자격 증명 모음을 사용할 수 없거나 존재하지 않습니다
- Key Vault를 실수로 삭제되었습니다.
- Azure Key Vault를 위한 방화벽이 구성되었지만 Microsoft 서비스에 대한 액세스를 허용하지 않습니다.
- 일시적인 네트워크 오류로 인해 Key Vault를 사용할 수 없습니다.
키 자격 증명 모음 또는 키에 액세스할 수 있는 권한이 없습니다
- 키가 실수로 삭제되었거나 비활성화됐거나 키가 만료됐습니다.
- 서버의 관리 ID(시스템 할당 또는 사용자 할당)가 실수로 삭제되었습니다.
- 서버가 다른 구독으로 이동되었습니다. 서버를 다른 구독으로 이동할 때 새 관리 ID(시스템 할당 또는 사용자 할당)가 서버에 할당되어야 합니다.
- 키에 대한 서버의 관리 ID에 부여된 권한이 부족합니다(가져오기, 래핑 및 래핑 해제 권한을 포함하지 않음).
- 서버의 관리 ID에 부여된 권한이 키 자격 증명 모음에서 취소되었습니다.
일반적인 오류 식별 및 해결
이 섹션에서는 가장 일반적인 오류에 대한 문제 해결 단계를 나열합니다.
누락된 서버 ID
오류 메시지
401 AzureKeyVaultNoServerIdentity - 서버 ID가 서버에 올바르게 구성되어 있지 않습니다. 지원 담당자에게 문의하세요.
감지
다음 cmdlet 또는 명령을 사용하여 ID가 서버에 할당되었는지 확인합니다.
Azure PowerShell: Get-AzSqlServer
Azure CLI: az-sql-server-show
완화 방법
다음 cmdlet 또는 명령을 사용하여 서버에 대한 사용자 할당 또는 시스템 할당 관리 ID를 구성합니다.
Azure PowerShell: Set-AzSqlServer 및
-AssignIdentity
옵션.Azure CLI:
--assign_identity
옵션이 있는 az sql server update
Azure Portal에서 Key Vault로 이동한 다음 액세스 정책으로 이동합니다. 다음 단계들을 완료하세요.
- 새로 추가 버튼을 사용하여 이전 단계에서 만든 서버에 대한 AppId를 추가하세요.
- 다음 주요 권한을 할당합니다. 가져오기, 래핑 및 래핑 해제
자세히 알아보려면 본인 서버에 관리 ID 할당하기를 참조하세요.
Important
Key Vault를 사용하여 TDE를 처음 구성한 후 Azure SQL Managed Instance 또는 Azure SQL Database 논리 서버를 새 Microsoft Entra 테넌트로 이동하는 경우 이 관리 ID 구성은 새 테넌트에서 다시 실행되어야 합니다.
누락된 키 자격 증명 모음
오류 메시지
503 AzureKeyVaultConnectionFailed - Azure Key Vault에 대한 연결 시도가 실패했기 때문에 서버에서 작업을 완료할 수 없습니다.
감지
키 URI 및 키 자격 증명 모음을 식별하려면 다음을 수행합니다.
다음 cmdlet 또는 명령을 사용하여 특정 서버 인스턴스의 키 URI를 가져옵니다.
Azure PowerShell: Get-AzSqlServerKeyVaultKey
Azure CLI: az-sql-server-tde-key-show
키 URI를 사용하여 키 자격 증명 모음을 식별합니다.
Azure PowerShell: $MyServerKeyVaultKey 변수의 속성을 검사하여 Key Vault에 대한 세부 정보를 가져올 수 있습니다.
Azure CLI: 반환된 서버 암호화 보호기에서 키 자격 증명 모음에 대한 세부 정보를 검사합니다.
완화 방법
키 자격 증명 모음을 사용할 수 있는지 확인합니다.
- 키 자격 증명 모음을 사용할 수 있고 서버에 액세스 권한이 있는지 확인합니다.
- 키 자격 증명 모음이 방화벽 뒤에 있는 경우 Microsoft 서비스 키 자격 증명 모음에 액세스할 수 있도록 허용하는 확인란이 선택되어 있는지 확인합니다.
- Key Vault를 실수로 삭제한 경우 구성을 처음부터 완료해야 합니다.
누락된 키
오류 메시지
404 ServerKeyNotFound - 요청된 서버 키를 현재 구독에서 찾을 수 없습니다.
409 ServerKeyDoesNotExists - 서버 키가 없습니다.
감지
키 URI 및 키 자격 증명 모음을 식별하려면 다음을 수행합니다.
- 누락된 키 자격 증명 모음의 cmdlet 또는 명령을 사용하여 논리 SQL Server 인스턴스에 추가된 키 URI를 식별합니다. 명령을 실행하면 키 목록이 반환됩니다.
완화 방법
TDE 보호기가 Key Vault에 있는지 확인합니다.
- Key Vault를 식별하고 Azure Portal의 Key Vault로 이동합니다.
- 키 URI로 식별된 키가 있는지 확인합니다.
만료된 키
오류 메시지
서버 <server_name>
에는 RBAC 정책에 대한 키 자격 증명 모음 암호화 서비스 암호화 사용자 권한이 필요하거나 Azure Key Vault 권한(Get, WrapKey, UnwrapKey)이 필요합니다. ID가 <akv_key>
인 서비스 주체에게 누락된 권한을 부여하세요. 키가 활성 상태이고, 만료되거나 사용하지 않도록 설정되지 않았는지, 키 활성화 날짜가 현재 날짜 이후로 설정되었는지 확인하고, 신뢰할 수 있는 Microsoft 서비스가 해당하는 경우 방화벽을 우회할 수 있는지 확인합니다.
감지
키 자격 증명 모음에서 만료된 키를 식별하려면 다음을 수행합니다.
- Azure Portal을 사용하여 키 자격 증명 모음 서비스 메뉴 >개체>키로 이동하여 키 만료를 확인합니다.
- PowerShell 명령인 Get-AzKeyVaultKey를 사용합니다.
- Azure CLI 명령인 az keyvault key show를 사용합니다.
완화 방법
- 키 자격 증명 모음 키의 만료일을 확인하여 키가 만료되었음을 확인합니다.
- 키 만료일을 연장합니다.
- 다음 중 하나를 사용하여 키 유효성 재검사 옵션을 선택하여 데이터베이스를 다시 온라인 상태로 설정합니다.
- 기존 키를 다시 시도.
- 백업 키 선택.
자세한 내용은 액세스할 수 없는 TDE 보호기를 참조하세요.
참고 항목
키는 오류에 대응할 수 있는 충분한 시간을 제공하기 위해 만료 전 지정된 일 수에서 회전되어야 합니다. 자세한 내용은 키 자격 증명 모음에 대한 Azure Policy 기본 제공 정의를 참조하세요.
권한 없음
오류 메시지
401 AzureKeyVaultMissingPermissions - 서버에 Azure Key Vault에 대한 필수 권한이 없습니다.
감지
키 URI 및 키 자격 증명 모음을 식별하려면 다음을 수행합니다.
- 누락된 키 자격 증명의 cmdlet 또는 명령을 사용하여 논리적 SQL Server 인스턴스가 사용하는 키 저장소를 식별합니다.
완화 방법
서버에 키 자격 증명 모음에 대한 사용 권한 및 키에 액세스할 수 있는 권한이 있는지 확인:
- Azure Portal에서 키 자격 증명 모음으로 이동한 다음 >액세스 정책으로 이동합니다. 서버의 관리 ID(시스템 할당 또는 사용자 할당)를 찾습니다.
- 서버 ID가 있는 경우 다음 키 권한이 있는지 확인합니다. Get, WrapKey, UnwrapKey.
- 서버 ID가 없는 경우 새로 추가 단추를 사용하여 추가합니다.
활동 로그에서 TDE 상태 가져오기
Azure Key Vault 키 액세스 문제로 인한 데이터베이스 상태를 모니터링할 수 있도록 하기 위해 Azure Resource Manager URL을 기반으로 하는 리소스 ID에 대한 활동 로그에 다음 이벤트가 기록됩니다.
참고 항목
이벤트는 키 자격 증명 모음 액세스 문제가 발생한 시간부터 활동 로그에 표시되는 데 최소 15~30분이 걸릴 수 있습니다.
서비스에서 Azure Key Vault 키에 대한 액세스 권한을 상실하는 경우 이벤트
Azure SQL Database
EventName: MakeDatabaseInaccessible
상태: 시작됨
설명: {server_name} 서버의 {database_name} 데이터베이스에서 Azure Key Vault 키에 대한 액세스 권한이 손실되었으며 이제 액세스할 수 없는 상태로 전환되고 있습니다.
Azure SQL Managed Instance
EventName: MakeManagedDbInaccessible
상태: 시작됨
설명: {server_name} 관리되는 서버의 {database_name} 데이터베이스에서 Azure Key Vault 키에 대한 액세스 권한이 손실되었으며 이제 액세스할 수 없는 상태로 전환되고 있습니다.
30분 이내에 문제가 해결되지 않고 Azure Key Vault 키 액세스의 유효성을 수동으로 검사해야 하는 경우 발생하는 이벤트
Azure SQL Database
EventName: MakeDatabaseInaccessible
상태: 성공
설명: 데이터베이스에 액세스할 수 없으면 사용자가 Azure Key Vault 오류를 해결하고 키 유효성 재검사를 사용하여 Azure Key Vault 키에 대한 액세스를 다시 설정해야 합니다.
Azure SQL Managed Instance
EventName: MakeManagedDbInaccessible
상태: 성공
설명: {server_name} 관리되는 서버의 {database_name} 데이터베이스가 Azure Key Vault 키에 액세스할 수 없으며 사용자가 키에 대한 액세스를 다시 설정해야 합니다.
Azure Key Vault 키 액세스의 유효성 재검사에 성공하고 db가 다시 온라인 상태가 되는 경우 이벤트
Azure SQL Database
EventName: MakeDatabaseAccessible
상태: 시작됨
설명: Azure Key Vault 키에 대한 액세스가 다시 설정되었으며 {server_name} 서버의 {database_name} 데이터베이스가 액세스할 수 있도록 하는 작업이 시작되었습니다.
Azure SQL Managed Instance
EventName: MakeManagedDatabaseAccessible
상태: 시작됨
설명: Azure Key Vault 키에 대한 액세스가 다시 설정되었으며 {server_name} 관리되는 서버의 {database_name} 데이터베이스가 액세스할 수 있도록 하는 작업이 시작되었습니다.
데이터베이스가 성공적으로 다시 온라인 상태가 되는 경우 발생하는 이벤트
Azure SQL Database
EventName: MakeDatabaseAccessible
상태: 성공
설명: Azure Key Vault 키에 대한 액세스가 다시 설정되었으며 {server_name} 서버의 {database_name} 데이터베이스가 이제 온라인 상태입니다.
Azure SQL Managed Instance
EventName: MakeManagedDatabaseAccessible
상태: 성공
설명: Azure Key Vault 키에 대한 액세스가 다시 설정되었으며 {server_name} 관리되는 서버의 {database_name} 데이터베이스가 이제 온라인 상태입니다.
Azure Key Vault 키 액세스의 유효성을 다시 검사하지 못한 경우 이벤트
Azure SQL Database
EventName: MakeDatabaseAccessible
상태: 실패
설명: Azure Key Vault 키 액세스에 대한 액세스가 다시 설정되었으며 {server_name} 서버의 {database_name} 데이터베이스가 액세스할 수 있도록 하는 작업이 실패했습니다.
Azure SQL Managed Instance
EventName: MakeManagedDatabaseAccessible
상태: 실패
설명: Azure Key Vault 키 액세스에 대한 액세스가 다시 설정되었으며 {server_name} 관리되는 서버의 {database_name} 데이터베이스가 액세스할 수 있도록 하는 작업이 실패했습니다.
관련 콘텐츠
- Azure 리소스 상태에 대해 알아보세요.
- 이메일/SMS/푸시/음성, 로직 앱, 웹훅, ITSM, 자동화 런북 등 기본 설정에 따라 알림 및 경고를 받도록 작업 그룹을 설정하세요.