다음을 통해 공유


Azure SQL Database를 사용한 투명한 데이터 암호화

Azure SQL Database 투명한 데이터 암호화(미리 보기)는 애플리케이션을 변경하지 않고도 데이터베이스, 연결된 백업 및 미사용 트랜잭션 로그 파일의 실시간 암호화 및 암호 해독을 수행하여 악의적인 활동의 위협으로부터 보호할 수 있습니다.

TDE는 데이터베이스 암호화 키라는 대칭 키를 사용하여 전체 데이터베이스의 스토리지를 암호화합니다. SQL Database에서 데이터베이스 암호화 키는 기본 제공 서버 인증서로 보호됩니다. 기본 제공 서버 인증서는 각 SQL Database 서버에 대해 고유합니다. 데이터베이스가 GeoDR 관계에 있는 경우 각 서버의 다른 키로 보호됩니다. 2개의 데이터베이스가 동일한 서버에 연결된 경우 동일한 기본 제공 인증서를 공유합니다. Microsoft는 적어도 90일마다 이러한 인증서를 자동으로 회전합니다. TDE에 대한 일반적인 설명은 TDE(투명한 데이터 암호화)를 참조하세요.

Azure SQL Database는 TDE와 Azure Key Vault 통합을 지원하지 않습니다. Azure 가상 머신에서 실행되는 SQL Server는 Key Vault의 비대칭 키를 사용할 수 있습니다. 자세한 내용은 예제 A: Key Vault에서 비대칭 키를 사용하여 투명한 데이터 암호화를 참조하세요.

적용 대상: SQL Database V12(일부 지역의 미리 보기).

중요합니다

현재 미리 보기 기능입니다. 내 데이터베이스에서 SQL Database 투명한 데이터 암호화를 구현하는 것은 내 사용권 계약(예: 기업계약, Microsoft Azure 계약 또는 Microsoft 온라인 구독 계약)의 미리 보기 조건과 Microsoft Azure Preview에 적용되는 추가 사용 약관의 적용을 받는다는 것을 인정하고 동의합니다.

TDE 상태 미리 보기는 SQL Database의 버전 제품군 V12가 현재 일반 공급 상태로 발표되는 지리적 지역의 하위 집합에도 적용됩니다. Microsoft가 TDE를 미리 보기에서 GA로 승격한다고 발표하기 전까지는 SQL Database용 TDE를 프로덕션 데이터베이스에서 사용할 수 없습니다. SQL Database V12에 대한 자세한 내용은 Azure SQL Database의 새로운 기능입니다.

권한

미리 보기에 등록하고 Azure Portal을 통해, REST API를 사용하거나 PowerShell을 사용하여 TDE를 구성하려면 Azure 소유자, 기여자 또는 SQL Security Manager로 연결해야 합니다.

Transact-SQL 사용하여 TDE를 구성하려면 다음이 필요합니다.

  • TDE 미리 보기에 이미 등록되어 있어야 합니다.

  • 데이터베이스 암호화 키를 만들려면 SQL Database 관리자이거나 master 데이터베이스에서 dbmanager 역할의 멤버여야 하며 데이터베이스에 대한 CONTROL 권한이 있어야 합니다.

  • SET 옵션을 사용하여 ALTER DATABASE 문을 실행하려면 dbmanager 역할의 멤버 자격만 필요합니다.

TDE 미리 보기 등록 및 데이터베이스에서 TDE 사용

  1. Azure Portal을 https://portal.azure.com 방문하여 Azure 관리자 또는 기여자 계정으로 로그인합니다.

  2. 왼쪽 배너에서 찾아보기를 클릭한 다음 SQL 데이터베이스를 클릭합니다.

  3. 왼쪽 창에서 SQL 데이터베이스 를 선택한 상태에서 사용자 데이터베이스를 클릭합니다.

  4. 데이터베이스 블레이드에서 모든 설정을 클릭합니다.

  5. 설정 블레이드에서 투명한 데이터 암호화(미리 보기) 부분을 클릭하여 투명한 데이터 암호화 미리 보기 블레이드를 엽니다. TDE 미리 보기에 아직 등록하지 않은 경우 등록을 완료할 때까지 데이터 암호화 설정이 비활성화됩니다.

  6. 용어 미리보기를 클릭하세요.

  7. 미리 보기 약관을 읽고 약관에 동의하는 경우 투명한 데이터 암호화Preview 용어 확인란을 선택한 다음 페이지 아래쪽에서 확인을 클릭합니다. 이제 데이터 암호화 단추가 사용 가능해진 Data encryptionPREVIEW 블레이드로 돌아갑니다.

  8. 데이터 암호화 미리 보기 블레이드에서 데이터 암호화 단추를 기로 이동한 다음 페이지 맨 위에 있는 저장을 클릭하여 설정을 적용합니다. 암호화 상태는 투명한 데이터 암호화의 진행률을 근사화합니다.

    SQLDB_TDE_TermsNewUI

    또한 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자로 SQL Server Management Studio와 같은 쿼리 도구를 사용하여 SQL Database에 연결하여 암호화 진행률을 모니터링할 수도 있습니다. encryption_state 열을 sys.dm_database_encryption_keys 뷰에서 쿼리합니다.

Transact-SQL 사용하여 SQL Database에서 TDE 사용

다음 단계에서는 미리 보기에 이미 등록한 것으로 가정합니다.

  1. master 데이터베이스에서 관리자 또는 dbmanager 역할의 멤버인 로그인을 사용하여 데이터베이스에 연결합니다.

  2. 다음 문을 실행하여 데이터베이스 암호화 키를 만들고 데이터베이스를 암호화합니다.

    -- Create the database encryption key that will be used for TDE.
    CREATE DATABASE ENCRYPTION KEY 
    WITH ALGORITHM = AES_256 
    ENCRYPTION BY SERVER CERTIFICATE ##MS_TdeCertificate##;
    
    -- Enable encryption
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION ON;
    GO
    
  3. SQL Database에서 암호화 진행률을 모니터링하기 위해 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자는 sys.dm_database_encryption_keys 보기의 열을 쿼리 encryption_state 할 수 있습니다.

PowerShell을 사용하여 SQL Database에서 TDE 사용

Azure PowerShell을 사용하여 다음 명령을 실행하여 TDE를 켜거나 끌 수 있습니다. 명령을 실행하기 전에 계정을 PS 창에 연결해야 합니다. 다음 단계에서는 미리 보기에 이미 등록한 것으로 가정합니다. PowerShell에 대한 자세한 내용은 Azure PowerShell을 설치하고 구성하는 방법을 참조하세요.

  1. TDE를 사용하도록 설정하려면 TDE 상태를 반환하고 암호화 작업을 확인합니다.

    Switch-AzureMode -Name AzureResourceManager
    Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Enabled"
    
    Get-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"
    Get-AzureSqlDatabaseTransparentDataEncryptionActivity -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"
    
  2. TDE를 사용하지 않도록 설정하려면 다음을 수행합니다.

    Set-AzureSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Disabled"
    Switch-AzureMode -Name AzureServiceManagement
    

SQL Database에서 TDE로 보호된 데이터베이스 암호 해독

Azure Portal을 사용하여 TDE를 사용하지 않도록 설정하려면

  1. Azure Portal을 https://portal.azure.com 방문하여 Azure 관리자 또는 기여자 계정으로 로그인합니다.

  2. 왼쪽 배너에서 찾아보기를 클릭한 다음 SQL 데이터베이스를 클릭합니다.

  3. 왼쪽 창에서 SQL 데이터베이스 를 선택한 상태에서 사용자 데이터베이스를 클릭합니다.

  4. 데이터베이스 블레이드에서 모든 설정을 클릭합니다.

  5. 설정 블레이드에서 투명한 데이터 암호화(미리 보기) 부분을 클릭하여 투명한 데이터 암호화 미리 보기 블레이드를 엽니다.

  6. 투명한 데이터 암호화 미리 보기 블레이드에서 데이터 암호화 단추를 기로 이동한 다음 페이지 맨 위에 있는 저장을 클릭하여 설정을 적용합니다. 암호화 상태는 투명한 데이터 암호 해독의 진행률을 근사값으로 표시합니다.

    또한 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자로 Management Studio와 같은 쿼리 도구를 사용하여 SQL Database에 연결하여 암호 해독 진행률을 모니터링할 수도 있습니다. sys.dm_database_encryption_keys 보기의 encryption_state 열을 쿼리합니다.

Transact-SQL 사용하여 TDE를 사용하지 않도록 설정하려면

  1. master 데이터베이스에서 관리자 또는 dbmanager 역할의 멤버인 로그인을 사용하여 데이터베이스에 연결합니다.

  2. 다음 문을 실행하여 데이터베이스의 암호를 해독합니다.

    -- Enable encryption
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION OFF;
    GO
    
  3. SQL Database에서 암호화 진행률을 모니터링하기 위해 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자는 sys.dm_database_encryption_keys 보기의 열을 쿼리 encryption_state 할 수 있습니다.

SQL Database에서 TDE 보호 데이터베이스 작업

Azure 내에서 작업을 위해 데이터베이스의 암호를 해독할 필요가 없습니다. 원본 데이터베이스 또는 주 데이터베이스의 TDE 설정은 대상에서 투명하게 상속됩니다. 여기에는 다음과 관련된 작업이 포함됩니다.

  • 지리적 복원

  • Self-Service 지정 시간 복원

  • 삭제된 데이터베이스 복원

  • 활성 지리 복제

  • 데이터베이스 복사본 만들기

.Bacpac 파일을 사용할 때 TDE로 보호된 데이터베이스 이동

Azure SQL Database 포털 또는 SQL Server 가져오기 및 내보내기 마법사에서 데이터베이스 내보내기 함수를 사용하여 TDE로 보호된 데이터베이스를 내보낼 때 데이터베이스의 콘텐츠는 암호화되지 않습니다. 콘텐츠는 암호화되지 않은 .bacpac 파일에 저장됩니다. 새 데이터베이스 가져오기가 완료되면 .bacpac 파일을 적절하게 보호하고 TDE를 사용하도록 설정해야 합니다.

EKM을 사용하여 TDE 사용

또한 참조하십시오

TDE(투명한 데이터 암호화)CREATE CREDENTIAL (Transact-SQL)CREATE ASYMMETRIC KEY (Transact-SQL)CREATE DATABASE ENCRYPTION KEY (Transact-SQL)ALTER DATABASE (Transact-SQL)ALTER DATABASE SET Options (Transact-SQL)