다음을 통해 공유


고객 관리형 키를 통한 투명한 데이터 암호화를 위한 관리 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는 키 자격 증명 모음 또는 관리형 HSM의 서버에 대한 액세스 권한을 제공하는 데 사용됩니다. 예를 들어 서버에서 CMK를 사용하여 TDE를 사용하도록 설정하기 전에 서버의 시스템 할당 관리 ID에 Azure Key Vault 권한을 제공해야 합니다.

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

참고

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

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

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

  • TDE 및 CMK를 사용하도록 설정된 Azure SQL 논리 서버를 만들 수 있습니다.

  • 동일한 사용자 할당 관리 ID를 여러 서버에 할당할 수 있으므로 각 Azure SQL 논리 서버 또는 Azure SQL Managed Instance에 대해 시스템 할당 관리 ID를 개별적으로 켜고 키 자격 증명 모음 또는 관리형 HSM에 대한 액세스를 제공할 필요가 없습니다.

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

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

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

중요

CMK를 사용하여 TDE에 사용되는 기본 사용자 할당 관리 ID는 Azure에서 삭제해서는 안 됩니다. 이 아이덴티티를 삭제하면 서버가 키 자격 증명 모음 또는 관리형 HSM에 대한 액세스를 잃고 데이터베이스가 이용 불가 상태가 됩니다.

제한 사항 및 알려진 문제

  • 키 자격 증명 모음 또는 관리형 HSM이 방화벽을 사용하는 가상 네트워크 뒤에 있는 경우 사용자 할당 관리 ID 또는 시스템 할당 관리 ID를 사용하려면 키 자격 증명 모음 또는 관리형 HSM의 네트워킹 메뉴에서 신뢰할 수 있는 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/subscriptionID/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).
    • 위의 오류가 발생하면 키 자격 증명 모음 또는 관리형 HSM이 가상 네트워크 또는 방화벽 뒤에 있는지 확인하고 신뢰할 수 있는 Microsoft 서비스에서 이 방화벽을 우회하도록 허용하는 옵션이 활성화되어 있는지 확인합니다.
  • 여러 사용자가 할당한 관리 ID가 서버 또는 관리형 인스턴스에 할당된 경우 Azure Portal의 ID 창을 사용하여 서버에서 단일 ID를 제거하면 작업은 성공하지만 ID는 서버에서 제거되지 않습니다. Azure Portal에서 사용자 할당 관리 ID를 모두 제거하면 성공적으로 작동합니다.
  • 서버 또는 관리형 인스턴스가 고객 관리형 TDE로 구성되고 서버에서 시스템 할당 및 사용자 할당 관리 ID를 모두 사용하도록 설정하면 먼저 시스템 할당 관리 ID에 키 자격 증명 모음 또는 관리형 HSM에 대한 액세스 권한을 부여하지 않고 서버에서 사용자 할당 관리 ID를 제거하면 예기치 않은 오류 메시지가 발생합니다 . 서버에서 기본 사용자 할당 관리 ID(및 기타 사용자 할당 관리 ID)를 제거하기 전에 시스템 할당 관리 ID에 키 자격 증명 모음 또는 관리형 HSM 액세스 권한이 제공되었는지 확인합니다.

다음 단계