고객 관리형 키를 통한 투명한 데이터 암호화를 위한 관리 ID

적용 대상:Azure SQL DatabaseAzure SQL Managed Instance

Microsoft Entra ID(이전의 Azure Active Directory)는 코드에 자격 증명을 노출하지 않고도 Azure Key Vault와 같은 Microsoft Entra 인증을 지원하는 모든 Azure 서비스에 인증하는 자동 관리 ID를 제공합니다. 자세한 내용은 Azure의 관리 ID 유형을 참조하세요.

관리 ID에는 다음과 같은 두 가지 유형일 수 있습니다.

  • 시스템 할당
  • 사용자 할당

자세한 내용은 Azure SQL에 대한 Microsoft Entra ID의 관리 ID를 참조하세요.

Azure SQL에서 CMK(고객 관리형 키)를 사용하는 TDE의 경우 서버의 관리 ID는 키 자격 증명 모음의 서버에 대한 액세스 권한을 제공하는 데 사용됩니다. 예를 들어 서버에서 CMK로 TDE를 활성화하기 전에 서버의 시스템 할당 관리 ID에 키 자격 증명 모음 권한이 제공되어야 합니다.

CMK를 사용하는 TDE에 이미 지원되는 시스템 할당 관리 ID 외에도 서버에 할당된 UMI(사용자 할당 관리 ID)를 사용하여 서버가 키 자격 증명 모음에 액세스할 수 있습니다. 키 자격 증명 모음 액세스를 사용하도록 설정하기 위한 필수 구성 요소는 사용자 할당 관리 ID에 키 자격 증명 모음의 Get, wrapKeyunwrapKey 권한이 제공되도록 하는 것입니다. 사용자 할당 관리 ID는 키 자격 증명 모음에 대한 액세스 권한을 부여할 수 있는 독립 실행형 리소스이므로 이제 서버 또는 데이터베이스 생성 시 고객 관리형 키가 있는 TDE를 사용할 수 있습니다.

참고

사용자 할당 관리 ID를 논리 서버 또는 관리되는 인스턴스에 할당하려면 사용자에게 Microsoft.ManagedIdentity/userAssignedIdentities/*/assign/action 작업을 포함하는 다른 Azure RBAC 역할과 함께 SQL Server 기여자 또는 SQL Managed Instance 기여자 Azure RBAC 역할이 있어야 합니다.

고객 관리형 TDE에 UMI를 사용하는 이점

  • 서버 또는 데이터베이스가 생성되기 전에 사용자 할당 관리 ID를 만들고 키 자격 증명 모음에 대한 액세스 권한을 부여하여 Azure SQL 논리 서버 또는 관리되는 인스턴스에 대한 키 자격 증명 모음 액세스 권한을 미리 부여할 수 있습니다.

  • TDE 및 CMK가 활성화된 Azure SQL 논리 서버를 만들 수 있습니다.

  • 동일한 사용자 할당 관리 ID를 여러 서버에 할당할 수 있으므로 각 Azure SQL 논리 서버 또는 관리되는 인스턴스에 대해 시스템 할당 관리 ID를 개별적으로 설정하여 키 자격 증명 모음에 액세스 권한을 부여할 필요가 없습니다.

  • 사용 가능한 기본 제공 Azure 정책으로 서버 생성 시 CMK를 적용하는 기능을 제공합니다.

고객 관리 TDE에 UMI 사용 시 고려 사항

  • 기본적으로 Azure SQL의 TDE는 키 자격 증명 모음 액세스에 대해 서버에 설정된 기본 사용자 할당 관리 ID를 사용합니다. 서버에 사용자 할당 ID가 할당되지 않은 경우 서버의 시스템 할당 관리 ID가 키 자격 증명 모음 액세스에 사용됩니다.
  • CMK와 함께 TDE에 사용자 할당 관리 ID를 사용하는 경우 서버에 ID를 할당하고 서버의 기본 ID로 설정합니다.
  • 기본 사용자 할당 관리 ID에는 연속 키 자격 증명 모음 액세스(get, wrapKey, unwrapKey 권한)가 필요합니다. 키 자격 증명 모음에 대한 ID의 액세스 권한이 취소되거나 충분한 권한이 제공되지 않는 경우 데이터베이스가 액세스할 수 없음 상태로 변경됩니다.
  • 기본 사용자 할당 관리 ID가 다른 사용자 할당 관리 ID로 업데이트되는 경우 기본 ID를 업데이트하기 전에 새 ID에 자격 증명 모음에 대한 필수 권한을 제공해야 합니다.
  • 사용자 할당에서 키 자격 증명 모음 액세스에 대한 시스템 할당 관리 ID로 전환하려면 시스템 할당 관리 ID에 필요한 키 자격 증명 모음 권한을 제공한 다음, 서버에서 모든 사용자 할당 관리 ID를 제거합니다.

중요

CMK와 함께 TDE에 사용되는 기본 사용자 할당 관리 ID는 Azure에서 삭제하면 안 됩니다. 이 ID를 삭제하면 서버가 키 자격 증명 모음에 대한 액세스 권한을 상실하여 데이터베이스에 액세스할 수 없게 됩니다.

제한 사항 및 알려진 문제

  • 키 자격 증명 모음이 방화벽을 사용하는 VNet 뒤에 있는 경우, 사용자가 할당한 관리 ID 또는 시스템이 할당한 관리 ID를 사용하려면 키 자격 증명 모음의 네트워킹 메뉴에서 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용하는 옵션을 사용하도록 설정해야 합니다. 이 옵션을 사용하도록 설정하면 사용 가능한 키가 Azure Portal SQL Server TDE 메뉴에 나열될 수 없습니다. 개별 CMK를 설정하려면 키 식별자를 사용해야 합니다. 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용하는 옵션을 사용하도록 설정하지 않으면 다음 오류가 반환됩니다.
    • Failed to save Transparent Data Encryption settings for SQL resource: <ServerName>. Error message: The managed identity with ID '/subscriptions/subsriptionID/resourcegroups/resource_name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/umi_name' requires the following Azure Key Vault permissions: 'Get, WrapKey, UnwrapKey' to the key 'https://keyvault_name/keys/key_name'. Please grant the missing permissions to the identity. Additionally ensure the key is not expired and is not disabled. For expired key, please extend the key expiry time so that SQL can use it to perform wrap and unwrap operations. If your key vault is behind a virtual network or firewall, ensure you select the 'Allow trusted Microsoft services to bypass this firewall' option. (https://aka.ms/sqltdebyokcreateserver).
    • 위의 오류가 발생하면 키 자격 증명 모음이 가상 네트워크 또는 방화벽 뒤에 있는지 확인하고 신뢰할 수 있는 Microsoft 서비스가 이 방화벽을 우회하도록 허용 옵션이 사용 설정되어 있는지 확인합니다.
  • SQL Managed Instances의 사용자가 할당한 관리 ID는 현재 모든 네트워크에서 공용 액세스가 사용하도록 설정된 키 자격 증명 모음에서만 지원됩니다. AKV 방화벽이 특정 가상 네트워크 및 IP 주소를 필터링하거나 프라이빗 엔드포인트 연결을 사용하는 경우 지원되지 않습니다.
  • 여러 사용자가 할당한 관리 ID가 서버 또는 관리형 인스턴스에 할당된 경우 Azure Portal의 ID 창을 사용하여 서버에서 단일 ID를 제거하면 작업은 성공하지만 ID는 서버에서 제거되지 않습니다. Azure Portal에서 사용자 할당 관리 ID를 모두 제거하면 성공적으로 작동합니다.
  • 서버 또는 관리되는 인스턴스가 고객 관리형 TDE로 구성되고 서버에서 시스템 할당 및 사용자 할당 관리 ID가 모두 활성화되면 먼저 시스템 할당 관리 ID에 키 자격 증명 모음에 대한 시스템 할당 관리 ID 액세스 권한을 부여하지 않고 서버에서 사용자 할당 관리 ID를 제거하면 예기치 않은 오류가 발생함 메시지가 표시됩니다. 서버에서 기본 사용자 할당 관리 ID(및 기타 사용자 할당 관리 ID)를 제거하기 전에 시스템 할당 관리 ID에 키 자격 증명 모음 액세스를 제공해야 합니다.

다음 단계

추가 정보