Azure SQL Database를 사용한 투명한 데이터 암호화Transparent Data Encryption with Azure SQL Database

이 항목은 다음에 적용됩니다.아니요SQL Server 예Azure SQL Database예Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: noSQL Server yesAzure SQL DatabaseyesAzure SQL Data Warehouse noParallel Data Warehouse

Azure SQL 데이터베이스Azure SQL Database 투명한 데이터 암호화를 사용하면 응용 프로그램을 변경할 필요 없이 사용하지 않는 데이터베이스, 연결된 백업 및 트랜잭션 로그 파일에 대한 실시간 암호화 및 암호 해독을 수행하여 악의적인 활동의 위협을 방지할 수 있습니다. transparent data encryption helps protect against the threat of malicious activity by performing real-time encryption and decryption of the database, associated backups, and transaction log files at rest without requiring changes to the application.

TDE는 데이터베이스 암호화 키라는 대칭 키를 사용하여 전체 데이터베이스의 저장소를 암호화합니다.TDE encrypts the storage of an entire database by using a symmetric key called the database encryption key. SQL 데이터베이스SQL Database 에서 데이터베이스 암호화 키는 기본 제공 서버 인증서로 보호됩니다.In SQL 데이터베이스SQL Database the database encryption key is protected by a built-in server certificate. 기본 제공 서버 인증서는 각 SQL 데이터베이스SQL Database 서버에 대해 고유합니다.The built-in server certificate is unique for each SQL 데이터베이스SQL Database server. GeoDR 관계에 있는 데이터베이스는 각 서버에서 다른 키로 보호됩니다.If a database is in a GeoDR relationship, it is protected by a different key on each server. 두 개의 데이터베이스가 동일한 서버에 연결된 경우에는 동일한 기본 제공 인증서를 공유합니다.If 2 databases are connected to the same server, they share the same built-in certificate. MicrosoftMicrosoft 는 적어도 90일마다 이러한 인증서를 자동으로 회전시킵니다. automatically rotates these certificates at least every 90 days. TDE에 대한 일반적인 설명은 투명한 데이터 암호화(TDE)를 참조하세요.For a general description of TDE, see Transparent Data Encryption (TDE).

Azure SQL 데이터베이스Azure SQL Database 는 TDE와의 Azure 주요 자격 증명 모음 통합을 지원하지 않습니다. does not support Azure Key Vault integration with TDE. SQL ServerSQL Server 에서는 주요 자격 증명 모음의 비대칭 키를 사용할 수 있습니다. running on an Azure virtual machine can use an asymmetric key from the Key Vault. 자세한 내용은 Azure 주요 자격 증명 모음을 사용한 확장 가능 키 관리(SQL Server)에서 암호화 키 계층 및 키 백업을 포함한 키 관리를 처리할 수 있습니다.For more information, see Extensible Key Management Using Azure Key Vault (SQL Server).

사용 권한 Permissions

REST API나 PowerShell을 사용하여 Azure 포털을 통해 TDE를 구성하려면 Azure 소유자, 참가자 또는 SQL 보안 관리자로 연결되어 있어야 합니다.To configure TDE through the Azure portal, by using the REST API, or by using PowerShell, you must be connected as the Azure Owner, Contributor, or SQL Security Manager.

Transact-SQLTransact-SQL 을 사용하여 TDE를 구성하려면 다음 요구 사항이 충족되어야 합니다.To configure TDE by using Transact-SQLTransact-SQL requires the following:

  • SET 옵션을 사용하여 ALTER DATABASE 문을 실행하려면 dbmanager 역할에서 구성원 자격이 있어야 합니다.To execute the ALTER DATABASE statement with the SET option requires membership in the dbmanager role.

포털을 사용하여 데이터베이스에 대해 TDE를 사용하도록 설정 Enable TDE on a Database Using the Portal

  1. Azure 포털( https://portal.azure.com )에 방문하고 Azure 관리자 또는 참가자 계정으로 로그인합니다.Visit the Azure Portal at https://portal.azure.com and sign-in with your Azure Administrator or Contributor account.

  2. 왼쪽 배너에서 찾아보기를 클릭한 다음 SQL 데이터베이스를 클릭합니다.On the left banner, click to BROWSE, and then click SQL databases.

  3. 왼쪽 창에서 SQL 데이터베이스 를 선택한 상태로 사용자 데이터베이스를 클릭합니다.With SQL databases selected in the left pane, click your user database.

  4. 데이터베이스 블레이드에서 모든 설정을 클릭합니다.In the database blade, click All settings.

  5. 설정 블레이드에서 투명한 데이터 암호화 부분을 클릭하여 투명한 데이터 암호화 블레이드를 엽니다.In the Settings blade, click Transparent data encryption part to open the Transparent data encryption blade.

  6. 데이터 암호화 블레이드에서 데이터 암호화 단추를 켜기로 이동한 다음 페이지 맨 위의 저장 을 클릭하여 설정을 적용합니다.In the Data encryption blade, move the Data encryption button to On, and then click Save (at the top of the page) to apply the setting. 암호화 상태 는 투명한 데이터 암호화의 진행률과 비슷합니다.The Encryption status will approximate the progress of the transparent data encryption.

    SQL Database TDE 시작 암호화SQL Database TDE Start Encryption

    SQL 데이터베이스SQL Database VIEW DATABASE STATE SQL Server Management StudioSQL Server Management Studio 권한이 있는 데이터베이스 사용자로 와 같은 쿼리 도구를 사용하여 에 연결하는 방법으로도 암호화 진행률을 모니터링할 수 있습니다.You can also monitor the progress of encryption by connecting to SQL 데이터베이스SQL Database using a query tool such as SQL Server Management StudioSQL Server Management Studio as a database user with the VIEW DATABASE STATE permission. sys.dm_database_encryption_keys 뷰의 encryption_state 열을 쿼리합니다.Query the encryption_state column of the sys.dm_database_encryption_keys view.

Transact-SQL을 사용하여 SQL 데이터베이스SQL Database 에서 TDE 사용 설정 Enabling TDE on SQL 데이터베이스SQL Database by Using Transact-SQL

다음 단계를 수행하면 TDE가 사용하도록 설정됩니다.The following steps enable TDE.

  1. 관리자 또는 master 데이터베이스의 dbmanager 역할 구성원인 로그인을 사용하여 데이터베이스에 연결합니다.Connect to the database using a login that is an administrator or a member of the dbmanager role in the master database.

  2. 다음 문을 실행하여 데이터베이스를 암호화합니다.Execute the following statements to encrypt the database.

    -- Enable encryption  
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION ON;  
    GO  
    
  3. SQL 데이터베이스SQL Database에서 암호화 진행률을 모니터링하기 위해 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자가 sys.dm_database_encryption_keys 뷰의 [encryption_state](../../../relational-databases/system-dynamic-management-views/sys-dm-database-encryption-keys-transact-sql.md) 열을 쿼리할 수 있습니다.To monitor the progress of encryption on SQL 데이터베이스SQL Database, database users with the VIEW DATABASE STATE permission can query the encryption_state column of the sys.dm_database_encryption_keys view.

PowerShell을 사용하여 SQL 데이터베이스SQL Database 에 대해 TDE를 사용하거나 사용하지 않도록 설정 Enabling and Disabling TDE on SQL 데이터베이스SQL Database by Using PowerShell

Azure PowerShell을 사용하면 다음 명령을 실행하여 TDE를 설정하거나 해제할 수 있습니다.Using the Azure PowerShell you can run the following command to turn TDE on/off. 명령을 실행하기 전에 계정을 PS 창에 연결해야 합니다.You must connect your account to the PS window before running the command. ServerName, ResourceGroupNameDatabaseName 매개 변수에 실제 값을 사용하도록 예제를 사용자 지정하세요.Customize the example to use your values for the ServerName, ResourceGroupName, and DatabaseName parameters. PowerShell에 대한 자세한 내용은 Azure PowerShell을 설치 및 구성하는 방법을 참조하세요.For additional information about PowerShell, see How to install and configure Azure PowerShell.

참고

계속 진행하려면 Auzre PowerShell 버전 1.0을 설치하고 구성해야 합니다.To continue, you should install and configure version 1.0 of Azure PowerShell. 버전 0.9.8을 사용할 수도 있지만 이 버전은 더 이상 사용되지 않으며, 이 버전을 사용하려면 PS C:\> Switch-AzureMode -Name AzureResourceManager 명령을 통해 AzureResourceManager cmdlet으로 전환해야 합니다.Version 0.9.8 can be used but it is deprecated and it requires switching to the AzureResourceManager cmdlets by using the PS C:\> Switch-AzureMode -Name AzureResourceManager command.

  1. TDE를 사용하도록 설정하려면 TDE 상태를 반환하고 암호화 작업을 확인합니다.To enable TDE, return the TDE status, and view the encryption activity:

    PS C:\> Set-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Enabled"  
    
    PS C:\> Get-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"  
    
    PS C:\> Get-AzureRMSqlDatabaseTransparentDataEncryptionActivity -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1"  
    

    버전 0.9.8을 사용하는 경우에는 Set-AzureSqlDatabaseTransparentDataEncryption, Get-AzureSqlDatabaseTransparentDataEncryption 및 Get-AzureSqlDatabaseTransparentDataEncryptionActivity 명령을 사용합니다.If using version 0.9.8 use the Set-AzureSqlDatabaseTransparentDataEncryption, Get-AzureSqlDatabaseTransparentDataEncryption, and Get-AzureSqlDatabaseTransparentDataEncryptionActivity commands.

  2. TDE를 사용하지 않도록 설정하려면 다음을 수행합니다.To disable TDE:

    PS C:\> Set-AzureRMSqlDatabaseTransparentDataEncryption -ServerName "myserver" -ResourceGroupName "Default-SQL-WestUS" -DatabaseName "database1" -State "Disabled"  
    

    버전 0.9.8을 사용하는 경우에는 Set-AzureSqlDatabaseTransparentDataEncryption 명령을 사용합니다.If using version 0.9.8 use the Set-AzureSqlDatabaseTransparentDataEncryption command.

다음에서 TDE로 보호되는 데이터베이스 암호 해독: SQL 데이터베이스SQL Database Decrypting a TDE Protected Database on SQL 데이터베이스SQL Database

Azure 포털을 사용하여 TDE를 사용하지 않도록 설정하려면To Disable TDE by Using the Azure Portal

  1. Azure 포털( https://portal.azure.com )에 방문하고 Azure 관리자 또는 참가자 계정으로 로그인합니다.Visit the Azure Portal at https://portal.azure.com and sign-in with your Azure Administrator or Contributor account.

  2. 왼쪽 배너에서 찾아보기를 클릭한 다음 SQL 데이터베이스를 클릭합니다.On the left banner, click to BROWSE, and then click SQL databases.

  3. 왼쪽 창에서 SQL 데이터베이스 를 선택한 상태로 사용자 데이터베이스를 클릭합니다.With SQL databases selected in the left pane, click your user database.

  4. 데이터베이스 블레이드에서 모든 설정을 클릭합니다.In the database blade, click All settings.

  5. 설정 블레이드에서 투명한 데이터 암호화 부분을 클릭하여 투명한 데이터 암호화 블레이드를 엽니다.In the Settings blade, click Transparent Data encryption part to open the Transparent data encryption blade.

  6. 투명한 데이터 암호화 블레이드에서 데이터 암호화 단추를 끄기로 이동한 다음 페이지 맨 위의 저장 을 클릭하여 설정을 적용합니다.In the Transparent data encryption blade, move the Data encryption button to Off, and then click Save (at the top of the page) to apply the setting. 암호화 상태 는 투명한 데이터 암호 해독의 진행률과 비슷합니다.The Encryption status will approximate the progress of the transparent data decryption.

    SQL 데이터베이스SQL Database VIEW DATABASE STATE Management StudioManagement Studio 권한이 있는 데이터베이스 사용자로 와 같은 쿼리 도구를 사용하여 에 연결하는 방법으로도 암호 해독의 진행률을 모니터링할 수 있습니다.You can also monitor the progress of decryption by connecting to SQL 데이터베이스SQL Database using a query tool such as Management StudioManagement Studio as a database user with the VIEW DATABASE STATE permission. sys.dm_database_encryption_keys 뷰의 encryption_state 열을 쿼리합니다.Query the encryption_state column of the sys.dm_database_encryption_keys view.

Transact-SQL을 사용하여 TDE를 사용하지 않도록 설정하려면To Disable TDE by Using Transact-SQL

  1. 관리자 또는 master 데이터베이스의 dbmanager 역할 구성원인 로그인을 사용하여 데이터베이스에 연결합니다.Connect to the database using a login that is an administrator or a member of the dbmanager role in the master database.

  2. 다음 문을 실행하여 데이터베이스의 암호를 해독합니다.Execute the following statements to decrypt the database.

    -- Enable encryption  
    ALTER DATABASE [AdventureWorks] SET ENCRYPTION OFF;  
    GO  
    
  3. SQL 데이터베이스SQL Database에서 암호화 진행률을 모니터링하기 위해 VIEW DATABASE STATE 권한이 있는 데이터베이스 사용자가 sys.dm_database_encryption_keys 뷰의 [encryption_state](../../../relational-databases/system-dynamic-management-views/sys-dm-database-encryption-keys-transact-sql.md) 열을 쿼리할 수 있습니다.To monitor the progress of encryption on SQL 데이터베이스SQL Database, database users with the VIEW DATABASE STATE permission can query the encryption_state column of the sys.dm_database_encryption_keys view.

다음에서 TDE로 보호되는 데이터베이스 이동: SQL 데이터베이스SQL Database Moving a TDE Protected Database on SQL 데이터베이스SQL Database

Azure 내에서의 작업을 위해 데이터베이스 암호를 해독할 필요는 없습니다.You do not need to decrypt databases for operations within Azure. 원본 데이터베이스 또는 주 데이터베이스의 TDE 설정은 대상에서 투명하게 상속됩니다.The TDE settings on the source database or primary database are transparently inherited on the target. 여기에는 다음과 관련된 작업이 포함됩니다.This includes operations involving:

  • 지리적 복원Geo-Restore

  • 셀프 서비스 특정 시점 복원Self-Service Point in Time Restore

  • 삭제된 데이터베이스 복원Restore a Deleted Database

  • 활성 지역 복제Active Geo_Replication

  • 데이터베이스 복사본 만들기Creating a Database Copy

    Azure SQL 데이터베이스Azure SQL Database 포털 또는 SQL ServerSQL Server 가져오기 및 내보내기 마법사에서 데이터베이스 내보내기 함수를 사용하여 TDE로 보호되는 데이터베이스를 내보내는 경우 데이터베이스에서 내보낸 내용이 암호화되지 않습니다.When exporting a TDE protected database using the Export Database function in the Azure SQL 데이터베이스Azure SQL Database Portal or the SQL ServerSQL Server Import and Export Wizard, the exported content of the database is not encrypted. 내보낸 이 콘텐츠는 암호화되지 않은.bacpac 파일에 저장됩니다.This exported content is stored in unencrypted .bacpac files. 새 데이터베이스 가져오기가 완료되면 .bacpac 파일을 적절하게 보호하고 TDE를 사용하도록 설정해야 합니다.Be sure to protect the .bacpac files appropriately and enable TDE once import of the new database is completed.

    예를 들어 .bacpac 파일을 온-프레미스 SQL ServerSQL Server에서 내보낼 경우 새 데이터베이스의 가져온 콘텐츠는 자동으로 암호화되지 않습니다.For example, if the .bacpac file is exported from an on-premises SQL ServerSQL Server, then the imported content of the new database will not be automatically encrypted. 마찬가지로 Azure SQL 데이터베이스Azure SQL Database 에서 온-프레미스 SQL ServerSQL Server로 .bacpac 파일을 내보낸 경우 새 데이터베이스도 자동으로 암호화되지 않습니다.Likewise, if the .bacpac file is exported from an Azure SQL 데이터베이스Azure SQL Database to an on-premises SQL ServerSQL Server, the new database is also not automatically encrypted.

    Azure SQL 데이터베이스Azure SQL Database 에서 내보내거나 대상으로 내보내는 경우 한 가지 예외 사항으로 TDE가 새 데이터베이스에서 사용하도록 설정되지만 .bacpac 파일 자체는 여전히 암호화되지 않습니다.The one exception is when exporting to and from Azure SQL 데이터베이스Azure SQL Database – TDE will be enabled in the new database, but the .bacpac file itself is still not encrypted.

EKM을 사용하여 SQL Server에서 TDE를 사용하도록 설정Enable TDE on SQL Server Using EKM

참고 항목See Also

투명한 데이터 암호화(TDE) Transparent Data Encryption (TDE)
CREATE CREDENTIAL (Transact-SQL) CREATE CREDENTIAL (Transact-SQL)
CREATE ASYMMETRIC KEY (Transact-SQL) CREATE ASYMMETRIC KEY (Transact-SQL)
ALTER DATABASE(Transact-SQL) ALTER DATABASE (Transact-SQL)