적용 대상:SQL Server
SQL Server에서는 암호화 및 키 생성용 MSCAPI(Microsoft Cryptographic API) 공급자를 사용하여 EKM(Extensible Key Management)과 함께 데이터 암호화 기능을 제공합니다. 데이터와 키 암호화용 암호화 키는 일시적 키 컨테이너에서 생성되며, 데이터베이스에 저장하기 전에 제공자로부터 내보내야 합니다. 이 방식은 SQL Server가 암호화 키 계층 구조와 키 백업을 포함한 키 관리를 처리할 수 있게 합니다.
규제 준수에 대한 수요가 증가하고 데이터 프라이버시에 대한 우려가 커지면서, 조직들은 암호화를 심층 방어 솔루션을 제공하는 수단으로 활용하고 있습니다. 이 방법은 데이터베이스 암호화 관리 도구만 사용하면 실용적이지 않은 경우가 많습니다. 하드웨어 공급업체는 하드웨어 보안 모듈 (HSM)을 사용하여 기업 키 관리를 다루는 제품을 제공합니다. HSM 디바이스는 하드웨어 또는 소프트웨어 모듈에 암호화 키를 저장합니다. 이 방법은 암호화 키가 암호화된 데이터와 함께 저장되지 않기 때문에 더 안전합니다.
여러 공급업체가 키 관리와 암호화 가속을 위한 HSM을 제공합니다. HSM 디바이스는 서버 프로세스와 함께 하드웨어 인터페이스를 애플리케이션과 HSM 간의 중개자로 사용합니다. 또한 공급업체는 자사 모듈을 통해 MSCAPI 공급자를 구현하며 모듈은 하드웨어 또는 소프트웨어일 수 있습니다. MSCAPI는 종종 HSM이 제공하는 기능의 일부만 제공합니다. 공급업체는 HSM들, 키 구성 및 키 접근에 대한 관리 소프트웨어도 제공할 수 있습니다.
HSM 구현은 벤더마다 다르며, SQL Server와 함께 사용하려면 공통 인터페이스가 필요합니다. MSCAPI는 이 인터페이스를 제공하지만, HSM 기능의 일부만 지원합니다. 또한 이는 대칭 키를 네이티브하게 영구 저장할 수 없고 세션 지향 지원이 부족하다는 점 등 다른 제한 사항도 있습니다.
SQL Server 확장 키 관리는 서드파티 EKM 및 HSM 벤더가 SQL Server에 모듈을 등록할 수 있게 합니다. 모듈이 등록된 후, SQL Server 사용자는 모듈에 저장된 암호화 키를 사용할 수 있습니다. SQL Server는 그러면 이 모듈들이 지원하는 고급 암호화 기능, 예를 들어 대량 암호화 및 복호화, 키 에이징 및 키 회전과 같은 키 관리 기능에 접근할 수 있습니다.
Azure VM에서 SQL Server를 실행할 때, SQL Server는 Azure Key Vault에 저장된 키를 사용할 수 있습니다. 자세한 내용은 Azure Key Vault (SQL Server)를 이용한 확장 키 관리 항목을 참조하세요.
EKM 구성
확장 키 관리가 모든 SQL Server 에디션에 제공되는 것은 아닙니다. SQL Server 에디션에서 지원하는 기능 목록은 SQL Server 2025의 에디션 및 지원 기능을 참조하세요.
기본적으로, 확장 가능한 키 관리는 꺼져 있습니다. 이 기능을 활성화하려면 sp_configure (Transact-SQL) 저장 프로시저를 다음 옵션과 값으로 사용하세요:
sp_configure 'show advanced', 1;
GO
RECONFIGURE;
GO
sp_configure 'EKM provider enabled', 1;
GO
RECONFIGURE;
GO
참고
EKM을 지원하지 않는 SQL Server 에디션에서 이 옵션에 sp_configure를 사용하면 오류가 발생합니다.
기능을 비활성화하려면 값을 0로 설정하세요. 서버 옵션 설정 방법에 대한 자세한 내용은 sp_configure(Transact-SQL)를 참조하세요.
EKM 사용 방법
SQL Server 확장 키 관리는 데이터베이스 파일을 보호하는 암호화 키를 스마트 카드, USB 장치, EKM/HSM 모듈과 같은 외부 장치에 저장할 수 있게 해줍니다. 또한 sysadmin 고정 서버 역할의 멤버를 제외한 데이터베이스 관리자로부터 데이터를 보호합니다. 외부 EKM/HSM 모듈에서 데이터베이스 사용자만 접근할 수 있는 암호화 키를 사용하여 데이터를 암호화할 수 있습니다.
확장 가능한 키 관리는 다음과 같은 이점도 제공합니다.
- 업무 분리를 가능하게 하는 추가 권한 확인.
- 하드웨어 기반 암호화 및 복호화에 더 높은 성능을 제공합니다.
- 외부 암호화 키 생성.
- 데이터와 키를 물리적으로 분리하는 외부 암호화 키 저장소.
- 암호화 키 검색.
- 외부 암호화 키 보존은 암호화 키 회전을 가능하게 합니다.
- 보다 쉬운 암호화 키 복원.
- 관리 가능한 암호화 키 배포.
- 암호화 키의 안전한 폐기.
EKM 드라이버에서 정의한 사용자 이름 및 비밀번호 조합 또는 기타 메서드에 확장 가능 키 관리를 사용할 수 있습니다.
주의
문제 해결을 위해 Microsoft 기술 지원 시 EKM 공급자의 암호화 키가 필요할 수 있습니다. 문제를 해결하기 위해 공급업체 도구 또는 프로세스에 액세스해야 할 수도 있습니다.
EKM 장치를 사용한 인증
EKM 모듈은 둘 이상의 인증 유형을 지원할 수 있습니다. 각 제공자는 SQL Server에 단 하나의 인증 유형만 제공합니다. 즉, 모듈이 기본 인증 유형과 다른 인증 유형을 모두 지원한다면, 둘 중 하나만 노출되지만 둘 다 노출하지는 않습니다.
사용자 이름과 비밀번호를 사용하는 EKM 기기별 기본 인증
사용자 이름과 비밀번호 쌍을 이용해 기본 인증을 지원하는 EKM 모듈의 경우, SQL Server는 자격 증명을 사용하여 투명한 인증을 제공합니다. 자격 증명에 대한 자세한 내용은 자격 증명(데이터베이스 엔진)을 참조하세요.
EKM 제공자에 대한 자격 증명을 생성하고 Windows 계정 또는 SQL Server 계정인 로그인에 매핑하여 로그인 단위로 EKM 모듈에 접근할 수 있습니다. 자격 증명의 아이덴티티 필드에는 사용자 이름이 있고, 시크릿 필드에는 EKM 모듈에 연결하는 비밀번호가 포함되어 있습니다.
EKM 제공자에 대한 로그인 매핑 자격 증명이 없으면, SQL Server는 서비스 계정에 매핑된 자격 증명을 사용합니다.
로그인에는 여러 자격 증명이 매핑될 수 있지만, 각각이 별도의 EKM 제공자에 사용되어야 합니다. 로그인별로 각 EKM 공급자에 하나의 매핑된 자격 증명만 있어야 합니다. 같은 자격 증명을 다른 로그인 계정에 매핑할 수 있습니다.
기타 EKM 기기별 인증 유형
Windows 인증 또는 사용자 이름과 비밀번호 조합 이외의 인증을 사용하는 EKM 모듈의 경우, SQL Server와 독립적으로 인증을 수행해야 합니다.
EKM 장치에 의한 암호화 및 복호화
대칭 키와 비대칭 키를 사용하여 데이터를 암호화하고 복호화하기 위해 다음 기능과 기능을 사용하세요:
| 기능 또는 특징 | 참조 |
|---|---|
| 대칭 키 암호화 | CREATE SYMMETRIC KEY (Transact-SQL) |
| 비대칭 키 암호화 | CREATE ASYMMETRIC KEY (Transact-SQL) |
EncryptByKey(key_guid, 'cleartext', ...) |
ENCRYPTBYKEY(Transact-SQL) |
DecryptByKey(ciphertext, ...) |
DECRYPTBYKEY(Transact-SQL) |
EncryptByAsmKey(key_guid, 'cleartext') |
ENCRYPTBYASYMKEY(Transact-SQL) |
DecryptByAsmKey(ciphertext) |
DECRYPTBYASYMKEY(Transact-SQL) |
EKM 키에 의한 데이터베이스 키 암호화
SQL Server는 EKM 키를 사용하여 데이터베이스의 다른 키를 암호화할 수 있습니다. EKM 디바이스에서 대칭 키와 비대칭 키를 모두 만들고 사용할 수 있습니다. EKM 비대칭 키를 사용하여 네이티브(비 EKM) 대칭 키를 암호화할 수 있습니다.
다음 예시는 데이터베이스 대칭 키를 생성하고 EKM 모듈의 키를 사용하여 암호화합니다.
CREATE SYMMETRIC KEY Key1
WITH ALGORITHM = AES_256
ENCRYPTION BY EKM_AKey1;
GO
-- Open the database key.
OPEN SYMMETRIC KEY Key1
DECRYPTION BY EKM_AKey1;
SQL Server의 데이터베이스 및 서버 키에 대한 자세한 내용은 SQL Server 및 서버와 데이터베이스 암호화 키(데이터베이스 엔진)를 참조하세요.
참고
한 EKM 키를 다른 EKM 키로 암호화할 수는 없습니다.
SQL Server는 EKM 제공자에서 생성된 비대칭 키로 모듈에 서명하는 기능을 지원하지 않습니다.
관련 콘텐츠
- EKM 제공자를 활성화하는 서버 구성 옵션
- EKM을 사용하여 SQL Server에서 TDE 활성화
- Azure Key Vault (SQL Server)를 이용한 Extensible Key Management
- SQL Server 및 데이터베이스 암호화 키 (데이터베이스 엔진)
- CREATE CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- DROP CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- ALTER CRYPTOGRAPHIC PROVIDER (Transact-SQL)
- sys.cryptographic_providers(Transact-SQL)
- sys.dm_cryptographic_provider_sessions(Transact-SQL)
- sys.dm_cryptographic_provider_properties(Transact-SQL)
- sys.dm_cryptographic_provider_algorithms(Transact-SQL)
- sys.dm_cryptographic_provider_keys(Transact-SQL)
- sys.credentials(Transact-SQL)
- CREATE CREDENTIAL (Transact-SQL)
- ALTER LOGIN (Transact-SQL)
- CREATE ASYMMETRIC KEY (Transact-SQL)
- ALTER ASYMMETRIC KEY (Transact-SQL)
- DROP ASYMMETRIC KEY (Transact-SQL)
- CREATE SYMMETRIC KEY (Transact-SQL)
- ALTER SYMMETRIC KEY (Transact-SQL)
- DROP SYMMETRIC KEY (Transact-SQL)
- OPEN SYMMETRIC KEY (Transact-SQL)
- SSRS(SQL Server Reporting Services) 암호화 키 백업 및 복원
- 암호화 키를 삭제하고 다시 생성하기 (구성 관리자)
- 확장 배포의 암호화 키 추가 및 제거
- 서비스 마스터 키를 백업하기
- 서비스 마스터 키 복원하기
- 데이터베이스 마스터키 생성
- 데이터베이스 마스터키를 백업하세요
- 데이터베이스 마스터키 복원
- 두 서버에서 동일한 대칭 키를 생성합니다