SQL Server 및 데이터베이스 암호화 키(데이터베이스 엔진)SQL Server and Database Encryption Keys (Database Engine)

SQL ServerSQL Server 에서는 암호화 키를 사용하여 데이터, 자격 증명 및 서버 데이터베이스에 저장된 연결 정보의 보안을 유지할 수 있습니다. uses encryption keys to help secure data, credentials, and connection information that is stored in a server database. SQL ServerSQL Server 에는 대칭비대칭등, 두 종류의 키가 있습니다. has two kinds of keys: symmetric and asymmetric. 대칭 키는 동일한 암호를 사용하여 데이터를 암호화하고 해독합니다.Symmetric keys use the same password to encrypt and decrypt data. 비대칭 키는 한 암호를 사용하여 데이터를 암호화하고( 공개 키라고 함) 다른 암호를 사용하여 데이터를 해독합니다( 개인 키라고 함).Asymmetric keys use one password to encrypt data (called the public key) and another to decrypt data (called the private key).

SQL ServerSQL Server의 암호화 키에는 중요한 데이터를 보호하는 데 사용되는 공개 키, 개인 키 및 대칭 키의 조합이 포함됩니다.In SQL ServerSQL Server, encryption keys include a combination of public, private, and symmetric keys that are used to protect sensitive data. SQL ServerSQL Server 인스턴스를 처음 시작할 때 SQL ServerSQL Server 를 초기화하는 동안 대칭 키가 생성됩니다.The symmetric key is created during SQL ServerSQL Server initialization when you first start the SQL ServerSQL Server instance. SQL ServerSQL Server 에서는 이 키를 사용하여 SQL ServerSQL Server에 저장된 중요한 데이터를 암호화합니다.The key is used by SQL ServerSQL Server to encrypt sensitive data that is stored in SQL ServerSQL Server. 공개 키 및 개인 키는 운영 체제에서 생성되며 대칭 키를 보호하는 데 사용됩니다.Public and private keys are created by the operating system and they are used to protect the symmetric key. 데이터베이스의 중요한 데이터를 저장하는 각 SQL ServerSQL Server 인스턴스당 하나의 공개 키 및 개인 키 쌍이 생성됩니다.A public and private key pair is created for each SQL ServerSQL Server instance that stores sensitive data in a database.

SQL Server 응용 프로그램 및 데이터베이스 키Applications for SQL Server and Database Keys

SQL ServerSQL Server 에서는 두 가지 주요한 용도로 키를 사용합니다. 이러한 키에는 인스턴스에서 해당 인스턴스를 위해 생성되는 SMK( 서비스 마스터 키 SQL ServerSQL Server )와 데이터베이스에 사용되는 DMK( 데이터베이스 마스터 키 )가 있습니다. instance, and a database master key (DMK) used for a database.

SMK는 SQL ServerSQL Server 인스턴스가 시작되고 연결된 서버 암호, 자격 증명 및 데이터베이스 마스터 키를 암호화하는 데 사용될 때 처음으로 자동 생성됩니다.The SMK is automatically generated the first time the SQL ServerSQL Server instance is started and is used to encrypt a linked server password, credentials, and the database master key. SMK는 Windows DPAPI(데이터 보호 API)를 사용하는 로컬 컴퓨터 키로 암호화됩니다.The SMK is encrypted by using the local computer key using the Windows Data Protection API (DPAPI). DPAPI는 SQL ServerSQL Server 서비스 계정의 Windows 자격 증명 및 컴퓨터의 자격 증명에서 파생된 키를 사용합니다.The DPAPI uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account and the computer's credentials. 서비스 마스터 키의 암호는 해당 키가 만들어진 서비스 계정이나 해당 컴퓨터의 자격 증명에 대한 액세스 권한이 있는 보안 주체에 의해서만 해독될 수 있습니다.The service master key can only be decrypted by the service account under which it was created or by a principal that has access to the machine's credentials.

데이터베이스 마스터 키는 데이터베이스에 있는 비대칭 키와 인증서의 개인 키를 보호하는 데 사용되는 대칭 키입니다.The database master key is a symmetric key that is used to protect the private keys of certificates and asymmetric keys that are present in the database. 이 키는 데이터를 암호화하는 데에도 사용되지만 길이에 제한이 있기 때문에 대칭 키를 사용하는 것보다 유용하지 않습니다.It can also be used to encrypt data, but it has length limitations that make it less practical for data than using a symmetric key.

마스터 키는 생성 시에 Triple DES 알고리즘 및 사용자 제공 암호를 사용하여 암호화됩니다.When it is created, the master key is encrypted by using the Triple DES algorithm and a user-supplied password. 마스터 키의 자동 암호 해독을 설정하려면 SMK를 사용하여 이 키의 복사본을 암호화합니다.To enable the automatic decryption of the master key, a copy of the key is encrypted by using the SMK. 이 복사본이 사용되는 데이터베이스와 master 시스템 데이터베이스 모두에 암호화된 복사본이 저장됩니다.It is stored in both the database where it is used and in the master system database.

master 시스템 데이터베이스에 저장된 DMK 복사본은 DMK가 변경될 때마다 자동으로 업데이트됩니다.The copy of the DMK stored in the master system database is silently updated whenever the DMK is changed. 그러나 DROP ENCRYPTION BY SERVICE MASTER KEY 문의 ALTER MASTER KEY 옵션을 사용하여 이 기본값을 변경할 수 있습니다.However, this default can be changed by using the DROP ENCRYPTION BY SERVICE MASTER KEY option of the ALTER MASTER KEY statement. 서비스 마스터 키로 암호화되지 않은 DMK는 OPEN MASTER KEY 문과 암호를 사용하여 열어야 합니다.A DMK that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

SQL Server 및 데이터베이스 키 관리Managing SQL Server and Database Keys

암호화 키 관리에는 새 데이터베이스 키 생성과 서버와 데이터베이스 키의 백업 생성뿐만 아니라 키 복원, 삭제 또는 변경 시기와 방법에 대한 이해가 포함됩니다.Managing encryption keys consists of creating new database keys, creating a backup of the server and database keys, and knowing when and how to restore, delete, or change the keys.

대칭 키를 관리하려면 SQL ServerSQL Server 에 포함된 도구를 사용하여 다음을 수행할 수 있습니다.To manage symmetric keys, you can use the tools included in SQL ServerSQL Server to do the following:

  • 서버 및 데이터베이스 키의 복사본을 백업하여 서버 설치를 복구하거나 계획된 마이그레이션의 일부로 사용합니다.Back up a copy of the server and database keys so that you can use them to recover a server installation, or as part of a planned migration.

  • 이전에 저장한 키를 데이터베이스에 복원합니다.Restore a previously saved key to a database. 이렇게 하면 새 서버 인스턴스를 사용하여 원래 암호화하지 않았던 기존 데이터에 액세스할 수 있습니다.This enables a new server instance to access existing data that it did not originally encrypt.

  • 암호화된 데이터에 더 이상 액세스할 수 없는 경우 데이터베이스에서 암호화된 데이터를 삭제합니다.Delete the encrypted data in a database in the unlikely event that you can no longer access encrypted data.

  • 키가 노출되는 경우 키를 다시 만들고 데이터를 다시 암호화합니다.Re-create keys and re-encrypt data in the unlikely event that the key is compromised. 최상의 보안을 위해 키를 주기적으로(예: 몇 달에 한 번씩) 다시 만들어 키 해독을 시도하는 공격으로부터 서버를 보호해야 합니다.As a security best practice, you should re-create the keys periodically (for example, every few months) to protect the server from attacks that try to decipher the keys.

  • 여러 서버가 단일 데이터베이스와 해당 데이터베이스에 해독 가능한 암호화를 제공하는 키를 모두 공유하는 서버 확장 배포에서 서버 인스턴스를 추가하거나 제거합니다.Add or remove a server instance from a server scale-out deployment where multiple servers share both a single database and the key that provides reversible encryption for that database.

중요한 보안 정보Important Security Information

서비스 마스터 키로 보안이 설정된 개체에 액세스하려면 이 키를 생성하는 데 사용된 SQL ServerSQL Server 서비스 계정이나 컴퓨터 계정이 필요합니다.Accessing objects secured by the service master key requires either the SQL ServerSQL Server Service account that was used to create the key or the computer (machine) account. 즉, 컴퓨터는 키가 생성된 시스템에 연결되어 있습니다.That is, the computer is tied to the system where the key was created. 키에 대한 액세스 권한의 상실 없이 SQL ServerSQL Server 서비스 계정 또는 컴퓨터 계정을 변경할 수 있습니다.You can change the SQL ServerSQL Server Service account or the computer account without losing access to the key. 그러나 이 두 계정을 모두 변경하면 서비스 마스터 키에 대한 액세스 권한이 상실됩니다.However, if you change both, you will lose access to the service master key. 이러한 두 요소 중 하나가 없어서 서비스 마스터 키에 대한 액세스 권한을 상실한 경우 원래 키를 사용하여 암호화된 개체와 데이터의 암호를 해독할 수 없습니다.If you lose access to the service master key without one of these two elements, you be unable to decrypt data and objects encrypted by using the original key.

서비스 마스터 키로 보안이 설정된 연결은 서비스 마스터 키가 없으면 복원할 수 없습니다.Connections secured with the service master key cannot be restored without the service master key.

데이터베이스 마스터 키로 보안이 설정된 개체와 데이터에 대해 액세스하려면 해당 키를 보호하기 위해 사용된 암호만 있으면 됩니다.Access to objects and data secured with the database master key require only the password that is used to help secure the key.

주의

앞에서 설명한 키에 대한 액세스 권한을 모두 상실한 경우 해당 키로 보안이 설정된 개체, 연결 및 데이터에 대한 액세스 권한을 잃게 됩니다.If you lose all access to the keys described earlier, you will lose access to the objects, connections, and data secured by those keys. 여기에 표시된 링크에 설명된 대로 서비스 마스터 키를 복원할 수 있고 원래 암호화한 시스템으로 이동하여 액세스 권한을 복구할 수 있습니다.You can restore the service master key, as described in the links that are shown here, or you can go back to the original encrypting system to recover the access. 액세스 권한을 복구할 수 있는 다른 방법은 없습니다.There is no "back-door" to recover the access.

섹션 내용In This Section

Service Master KeyService Master Key
서비스 마스터 키 및 이 키를 사용하는 최상의 방법에 대해 간략하게 설명합니다.Provides a brief explanation for the service master key and its best practices.

확장 가능 키 관리 (EKM)Extensible Key Management (EKM)
타사 키 관리 시스템을 SQL ServerSQL Server와 함께 사용하는 방법에 대해 설명합니다.Explains how to use third-party key management systems with SQL ServerSQL Server.

서비스 마스터 키 백업Back Up the Service Master Key

서비스 마스터 키 복원Restore the Service Master Key

데이터베이스 마스터 키 만들기Create a Database Master Key

데이터베이스 마스터 키 백업Back Up a Database Master Key

데이터베이스 마스터 키 복원Restore a Database Master Key

두 서버에서 동일한 대칭 키 만들기Create Identical Symmetric Keys on Two Servers

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

Azure 주요 자격 증명 모음을 사용한 확장 가능 키 관리(SQL Server)Extensible Key Management Using Azure Key Vault (SQL Server)

데이터 열 암호화Encrypt a Column of Data

CREATE MASTER KEY(Transact-SQL)CREATE MASTER KEY (Transact-SQL)

ALTER SERVICE MASTER KEY(Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

데이터베이스 마스터 키 복원Restore a Database Master Key

참고 항목See Also

Reporting Services 암호화 키 백업 및 복원 Back Up and Restore Reporting Services Encryption Keys
암호화 키 삭제 및 다시 만들기(SSRS 구성 관리자) Delete and Re-create Encryption Keys (SSRS Configuration Manager)
확장 배포의 암호화 키 추가 및 제거(SSRS 구성 관리자) Add and Remove Encryption Keys for Scale-Out Deployment (SSRS Configuration Manager)
투명한 데이터 암호화(TDE) Transparent Data Encryption (TDE)