다음을 통해 공유


데이터베이스 수준 고객 관리형 키를 사용하는 TDE에 대한 ID 및 키 관리

적용 대상: Azure SQL Database

참고 항목

  • 데이터베이스 수준 TDE CMK는 Azure SQL Database(모든 SQL Database 버전)에서 사용할 수 있습니다. Azure SQL Managed Instance, SQL Server 온-프레미스, Azure VM 및 Azure Synapse Analytics(전용 SQL 풀(이전의 SQL DW))에서는 사용할 수 없습니다.
  • 동일한 가이드를 적용하여 페더레이션된 클라이언트 ID 매개 변수를 제외함으로써 동일한 테넌트에서 데이터베이스 수준 고객 관리형 키를 구성할 수 있습니다. 데이터베이스 수준 고객 관리형 키에 대한 자세한 내용은 데이터베이스 수준에서 고객 관리형 키를 사용하는 TDE(투명한 데이터 암호화)를 참조하세요.

이 가이드에서는 데이터베이스 수준에서 CMK(고객 관리형 키) 및 TDE(투명한 데이터 암호화)를 통해 Azure SQL Database를 생성, 업데이트 및 검색하는 단계를 안내합니다. 이때 사용자가 할당한 관리 ID를 활용하여 Azure Key Vault에 액세스합니다. Azure Key Vault는 Azure SQL Database와 다른 Microsoft Entra 테넌트에 있습니다. 자세한 내용은 투명한 데이터 암호화에서 교차 테넌트 고객 관리형 키를 참조하세요.

참고 항목

Microsoft Entra ID는 이전에 Azure Active Directory(Azure AD)로 알려졌습니다.

필수 조건

  • 이 가이드에서는 두 개의 Microsoft Entra 테넌트가 있다고 가정합니다.
    • 첫 번째 항목에는 Azure SQL Database 리소스, 다중 테넌트 Microsoft Entra 애플리케이션 및 사용자가 할당한 관리 ID가 포함됩니다.
    • 두 번째 테넌트에는 Azure Key Vault가 있습니다.
  • Microsoft Entra 애플리케이션 및 Azure Key Vault를 구성하는 데 필요한 교차 테넌트 CMK 및 RBAC 권한 설정에 대한 포괄적인 지침은 다음 가이드 중 하나를 참조하세요.
  • Azure CLI 버전 2.52.0 이상.
  • Az PowerShell 모듈 버전 10.3.0 이상.
  • 데이터베이스 수준 CMK에 필요한 RBAC 권한은 서버 수준 CMK에 필요한 권한과 동일합니다. 특히 서버 수준에서 Azure Key Vault, 관리 ID 및 TDE용 교차 테넌트 CMK를 사용할 때 적용할 수 있는 동일한 RBAC 권한을 데이터베이스 수준에서 적용할 수 있습니다. 키 관리 및 액세스 정책에 대한 자세한 내용은 키 관리를 참조하세요.

첫 번째 테넌트에 필요한 리소스

이 자습서의 목적에 따라 첫 번째 테넌트는 ISV(독립 소프트웨어 공급업체)에 속하고 두 번째 테넌트는 클라이언트에 속해 있다고 가정합니다. 이 시나리오에 대한 자세한 내용은 투명한 데이터 암호화에서 교차 테넌트 고객 관리형 키를 참조하세요.

교차 테넌트 CMK를 사용하여 Azure SQL Database에 대한 TDE를 구성하려면 먼저 애플리케이션에 대한 페더레이션 ID 자격 증명으로 할당된 사용자가 할당한 관리 ID를 사용해 구성한 다중 테넌트 Microsoft Entra 애플리케이션이 있어야 합니다. 필수 조건에서 가이드 중 하나를 따릅니다.

  1. Azure SQL Database를 생성하려는 첫 번째 테넌트에서 다중 테넌트 Microsoft Entra 애플리케이션을 생성하고 구성합니다.

  2. 사용자 할당 관리 ID 만들기의 지침에 따라 만듭니다.

  3. 다중 테넌트 애플리케이션에서 페더레이션 ID 자격 증명으로 사용자가 할당한 관리 ID를 구성합니다.

  4. 애플리케이션 이름 및 애플리케이션 ID를 기록합니다. Azure portal>Microsoft Entra ID>엔터프라이즈 애플리케이션에서 생성한 애플리케이션을 검색하여 찾을 수 있습니다.

두 번째 테넌트에 필요한 리소스

참고 항목

Azure AD와 MSOnline PowerShell 모듈은 2024년 3월 30일부터 더 이상 사용되지 않습니다. 자세히 알아보려면 사용 중단 업데이트를 참조하세요. 이 날짜 이후에는 이러한 모듈에 대한 지원이 Microsoft Graph PowerShell SDK 및 보안 수정 사항에 대한 마이그레이션 지원으로 제한됩니다. 사용되지 않는 모듈은 2025년 3월 30일까지 계속 작동합니다.

Microsoft Graph PowerShell로 마이그레이션하여 Microsoft Entra ID(이전의 Azure AD)와 상호 작용하는 것이 좋습니다. 일반적인 마이그레이션 관련 질문은 마이그레이션 FAQ를 참조하세요. 참고: MSOnline 버전 1.0.x는 2024년 6월 30일 이후 중단될 수 있습니다.

  1. Azure Key Vault가 있는 두 번째 테넌트에서 첫 번째 테넌트로부터 등록된 애플리케이션의 애플리케이션 ID를 사용하여 서비스 주체(애플리케이션)를 생성합니다. 다음은 다중 테넌트 애플리케이션을 등록하는 방법에 관한 몇 가지 예제입니다. 각각 <TenantID><ApplicationID>를 Microsoft Entra ID의 클라이언트 테넌트 ID 및 다중 테넌트 애플리케이션의 애플리케이션 ID로 바꿉니다.

    • PowerShell:

      Connect-AzureAD -TenantID <TenantID>
      New-AzADServicePrincipal  -ApplicationId <ApplicationID>
      
    • Azure CLI:

      az login --tenant <TenantID>
      az ad sp create --id <ApplicationID>
      
  2. Azure portal>Microsoft Entra ID>엔터프라이즈 애플리케이션으로 이동하고 생성한 애플리케이션을 검색합니다.

  3. 아직 없는 경우 Azure Key Vault를 생성하고 키 만들기를 선택합니다.

  4. 액세스 정책을 생성하거나 설정합니다.

    1. 액세스 정책을 생성할 때 키 권한 아래에서 키 가져오기, 키 래핑, 키 래핑 해제 권한을 선택합니다.
    2. 액세스 정책을 생성할 때 보안 주체 옵션에 첫 번째 단계에서 생성할 다중 테넌트 애플리케이션을 선택합니다.

    Azure Portal의 Key Vault 액세스 정책 메뉴 스크린샷

  5. 액세스 정책 및 키가 생성되면 Key Vault에서 키를 검색하고 키 식별자를 기록합니다.

데이터베이스 수준 고객 관리형 키를 사용하여 새 Azure SQL Database 만들기

다음은 사용자가 할당한 관리 ID를 사용하여 Azure SQL Database에서 데이터베이스를 생성하는 예제와 데이터베이스 수준에서 교차 테넌트 고객 관리형 키를 설정하는 방법입니다. 데이터베이스 생성 단계에서 투명한 데이터 암호화를 위해 고객 관리형 키를 설정하려면 사용자가 할당한 관리 ID가 필요합니다.

  1. Azure Portal에서 SQL 배포 선택 옵션 페이지로 이동합니다.

  2. Azure Portal에 아직 로그인하지 않은 경우 메시지가 표시되면 로그인합니다.

  3. SQL 데이터베이스에서 리소스 유형단일 데이터베이스로 설정한 상태로 두고 만들기를 선택합니다.

  4. SQL Database 만들기 양식의 기본 탭에서 프로젝트 세부 정보 아래에서 데이터베이스에 대해 원하는 Azure 구독, 리소스 그룹, 서버를 선택합니다. 그리고 데이터베이스 이름에 고유한 이름을 사용합니다. Azure SQL Database에 대한 논리 서버를 생성하지 않은 경우 교차 테넌트 CMK(고객 관리형 키) 기반 TDE로 구성된 서버 만들기를 참조하세요.

  5. 보안 탭에서 투명한 데이터 암호화 구성을 선택합니다.

    Azure SQL 데이터베이스를 만들 때 Azure Portal 및 보안 메뉴 스크린샷

  6. 투명한 데이터 암호화 메뉴에서 데이터베이스 수준 CMK(고객 관리형 키)를 선택합니다.

    Azure Portal 투명한 데이터 암호화 메뉴 스크린샷

  7. 사용자가 할당한 관리 ID의 경우 데이터베이스 ID를 사용하려면 구성을 선택하고, 원하는 ID가 ID 메뉴에 나열되지 않은 경우 리소스에 사용자가 할당한 관리 ID를 추가합니다. 그런 다음 적용을 선택합니다.

    Azure Portal ID 메뉴 스크린샷

    참고 항목

    TDE용 교차 테넌트 CMK를 구성하는 경우 여기에서 페더레이션된 클라이언트 ID를 구성할 수 있습니다.

  8. 투명한 데이터 암호화 메뉴에서 키 변경을 선택합니다. TDE에 사용할 고객 관리형 키에 대해 원하는 구독, 키 자격 증명 모음, 버전을 선택합니다. 선택 단추를 누릅니다. 키를 선택한 후 투명한 데이터 암호화 메뉴에서 Azure Key Vault URI(개체 식별자)를 사용하여 필요에 따라 데이터베이스 키를 더 추가할 수도 있습니다.

    자동 키 순환투명한 데이터 암호화 메뉴의 키 자동 순환 확인란을 선택하여 데이터베이스 수준에서 사용하도록 설정할 수도 있습니다.

    추가 키 추가를 참조하는 Azure Portal의 투명한 데이터 암호화 메뉴 스크린샷

  9. 적용을 선택하여 데이터베이스를 계속 생성합니다.

  10. 페이지 아래쪽에서 검토 + 만들기를 선택합니다.

  11. 검토 + 만들기 페이지에서 검토 후 만들기를 선택합니다.

참고 항목

사용자가 할당한 관리 ID가 키 자격 증명 모음에서 올바른 권한을 사용하도록 설정되지 않았으면 데이터베이스를 생성하지 못합니다. 사용자가 할당한 관리 ID에는 키 자격 증명 모음에 대한 Get, wrapKey 및 unwrapKey 권한이 필요합니다. 자세한 내용은 고객 관리형 키 기반 투명한 데이터 암호화를 위한 관리 ID를 참조하세요.

데이터베이스 수준 고객 관리형 키를 사용하여 기존 Azure SQL Database 업데이트

다음은 사용자가 할당한 관리 ID를 사용하여 Azure SQL Database에서 기존 데이터베이스를 업데이트하는 예제와 데이터베이스 수준에서 교차 테넌트 고객 관리형 키를 설정하는 방법입니다. 데이터베이스 생성 단계에서 투명한 데이터 암호화를 위해 고객 관리형 키를 설정하려면 사용자가 할당한 관리 ID가 필요합니다.

  1. Azure Portal에서 데이터베이스 수준 고객 관리형 키로 업데이트하려는 SQL Database 리소스로 이동합니다.

  2. 보안 아래에서 ID를 선택합니다. 이 데이터베이스에 대해 사용자가 할당한 관리 ID를 추가한 다음, 저장을 선택합니다 .

  3. 이제 데이터베이스에 대한 보안 아래의 데이터 암호화 메뉴로 이동합니다. 데이터베이스 수준 CMK(고객 관리형 키)를 선택합니다. 마지막 단계에서 ID를 구성했으므로 데이터베이스의 데이터베이스 ID를 이미 사용하도록 설정해야 합니다.

  4. 키 변경을 선택합니다. TDE에 사용할 고객 관리형 키에 대해 원하는 구독, 키 자격 증명 모음, 버전을 선택합니다. 선택 단추를 누릅니다. 키를 선택한 후 데이터 암호화 메뉴에서 Azure Key Vault URI(개체 식별자)를 사용하여 필요에 따라 데이터베이스 키를 더 추가할 수도 있습니다.

    데이터베이스 수준에서 자동 키 순환을 사용하도록 설정하려면 키 자동 순환 확인란을 선택합니다.

    기본 데이터베이스 업데이트 시 Azure Portal 투명한 데이터 암호화 메뉴 스크린샷

  5. 저장을 선택합니다.

Azure SQL Database에서 데이터베이스 수준 고객 관리형 키 설정 보기

다음은 데이터베이스에 대한 데이터베이스 수준 고객 관리형 키를 검색하는 예제입니다. ARM 리소스(Microsoft.Sql/servers/databases)는 기본값으로 데이터베이스에 구성된 TDE 보호기 및 관리 ID만 표시합니다. 키의 전체 목록을 확장하려면 -ExpandKeyList 매개 변수를 사용합니다. 또한 필터(예: -KeysFilter "current") 및 특정 시점 값(예: 2023-01-01)을 사용하여 사용된 현재 키와 과거 특정 시점에 사용된 키를 검색할 수 있습니다. 이 필터는 서버 수준 쿼리가 아닌, 개별 데이터베이스 쿼리에서만 지원됩니다.

Azure Portal에서 데이터베이스 수준 고객 관리형 키를 보려면 SQL Database 리소스의 데이터 암호화 메뉴로 이동합니다.

논리 서버의 모든 키 나열

서버 아래 각 데이터베이스에서 사용하는 모든 키(기본 보호기 포함)의 목록을 가져오려면 키 필터를 사용하여 개별적으로 쿼리해야 합니다. 다음은 논리 서버에서 각 키를 나열하는 PowerShell 쿼리의 예제입니다.

Get-AzSqlDatabase cmdlet을 사용합니다.

$dbs = Get-AzSqlDatabase -resourceGroupName <ResourceGroupName> -ServerName <ServerName>
foreach ($db in $dbs)
{
Get-AzSqlDatabase -DatabaseName $db.DatabaseName -ServerName $db.ServerName -ResourceGroupName $db.ResourceGroupName -ExpandKeyList
}

Azure SQL Database에서 데이터베이스 수준 고객 관리형 키 유효성 재검사

CMK 기반 TDE(투명한 데이터 암호화)에 설명된 대로 액세스할 수 없는 TDE 보호기의 경우 키 액세스가 수정되면 유효성을 다시 검사하는 키 작업을 사용하여 데이터베이스에 액세스할 수 있도록 할 수 있습니다. 예제는 다음 지침 또는 명령을 참조하세요.

Azure Portal에서 SQL Database 리소스를 찾습니다. SQL Database 리소스를 선택한 후 보안 설정에서 데이터 암호화 메뉴의 투명한 데이터 암호화 탭으로 이동합니다. 데이터베이스가 Azure Key Vault에 대한 액세스 권한을 유실한 경우 키 유효성 다시 검사 버튼이 나타나고, 기존 키 다시 시도를 선택하여 기존 키의 유효성을 다시 검사하거나 백업 키 선택을 선택하여 다른 키의 유효성을 다시 검사할 수 있습니다.

Azure SQL Database에서 데이터베이스 수준 고객 관리형 키 되돌리기

데이터베이스 수준 CMK로 구성된 데이터베이스는 다음 명령을 사용하여 서비스 관리형 키로 서버가 구성된 경우 서버 수준 암호화로 되돌릴 수 있습니다.

Azure Portal에서 데이터베이스 수준 고객 관리형 키 설정을 서버 수준 암호화 키로 되돌리려면 SQL Database 리소스의 데이터 암호화 메뉴의 투명한 데이터 암호화 탭으로 이동합니다. 서버 수준 암호화 키를 선택하고 저장을 선택하여 설정을 저장합니다.

참고 항목

개별 데이터베이스에 서버 수준 암호화 키 설정을 사용하려면 TDE에 대해 서비스 관리형 키를 사용하도록 Azure SQL Database의 논리 서버를 구성해야 합니다.

다음 단계

다양한 데이터베이스 수준 CMK 작업에 대한 다음 설명서를 확인하세요.