Important
Microsoft SQL Server 2019 빅 데이터 클러스터는 사용 중지되었습니다. SQL Server 2019 빅 데이터 클러스터에 대한 지원은 2025년 2월 28일부터 종료되었습니다. 자세한 내용은 Microsoft SQL Server 플랫폼의 공지 블로그 게시물 및 빅 데이터 옵션을 참조하세요.
이 문서에서는 키 관리를 위해 SQL Server 빅 데이터 클러스터에서 외부 키 공급자를 구성하는 방법에 대한 세부 정보를 제공합니다.
SQL Server 빅 데이터 클러스터에서 키 버전을 사용하는 방법에 대한 자세한 내용은 SQL Server 빅 데이터 클러스터의 키 버전을 참조하세요.
미사용 상태의 데이터 암호화를 구성하고 사용하는 방법에 대한 자세한 내용은 다음 안내서를 참조하세요.
- 정지 상태에서의 암호화 개념 및 구성 가이드
- SQL Server 빅 데이터 클러스터 HDFS 암호화 영역 사용 가이드
- SQL Server 빅 데이터 클러스터 TDE(투명한 데이터 암호화) 미사용 사용 가이드
Prerequisites
- SQL Server 2019 빅 데이터 클러스터 릴리스 정보입니다. CU11+ required.
- azdata 20.3.5+를 포함한 빅 데이터 도구
- SQL Server 빅 데이터 클러스터 사용자로서 Kubernetes 관리 권한이 있으며, clusterAdmins 역할의 멤버입니다. 자세한 내용은 Active Directory 모드에서 빅 데이터 클러스터 액세스 관리를 참조하세요.
- 외부 공급자 템플릿 애플리케이션. 비활성화된 상태에서 SQL Server BDC 암호화를 참조하세요.
외부 공급자를 사용한 루트 키 암호화
SQL Server 빅 데이터 클러스터에서 외부 키를 가져오는 기능을 사용하여 기본 암호화 키는 고객이 배포하는 애플리케이션을 사용하여 공개 키를 가져옵니다. HDFS 키를 회전하고 사용하면 HDFS 키의 암호를 해독하기 위한 호출이 컨트롤 플레인으로 전송된 다음 고객이 제공한 키 식별자를 사용하여 애플리케이션으로 리디렉션됩니다. SQL Server의 경우 암호화 요청은 공개 키가 있으므로 컨트롤 플레인에 의해 전송되고 처리됩니다. SQL Server에서 DEK(데이터 암호화 키)의 암호를 해독하는 요청도 제어 평면으로 전송된 다음, HSM(하드웨어 보안 모듈)과 같은 외부 공급자와 인터페이스하는 애플리케이션으로 리디렉션됩니다.
다음 다이어그램에서는 컨트롤 플레인에서 외부 키를 구성하는 동안의 상호 작용에 대해 설명합니다.
키가 설치되면 다른 페이로드의 암호화 및 암호 해독이 기본 암호화 키로 보호됩니다. 이 보호는 제어 평면으로 라우팅된 암호 해독 호출이 KMS(키 관리 서비스) 플러그 인 앱으로 라우팅된다는 점을 제외하고 시스템 관리 키와 유사합니다. KMS 플러그 인 앱은 HSM, Hashicorp Vault 또는 다른 제품과 같은 적절한 위치로 요청을 라우팅합니다.
Configuration
제공된 템플릿 애플리케이션은 외부 키 공급자와 인터페이스하는 데 사용되는 플러그 인입니다. 선택한 외부 키 공급자와의 통합 지점 역할을 하려면 빅 데이터 클러스터에 이 애플리케이션을 사용자 지정하고 배포해야 합니다.
템플릿 애플리케이션에는 SoftHSM을 사용하여 표준 PKCS11 프로토콜을 사용하여 외부 공급자 구현과 통합하는 방법에 대한 예제가 있습니다. Azure Key Vault 및 Hashicorp Vault를 사용하는 예제도 있습니다. 템플릿 애플리케이션은 as-is 참조 구현으로 제공됩니다.
다음 섹션에서는 SQL Server 데이터베이스 및 HDFS 암호화 영역에 대한 암호화의 루트 키 역할을 하도록 외부 키 공급자를 구성하는 데 필요한 단계를 제공합니다.
외부 키 공급자에서 RSA 2048 키 만들기
2048비트 RSA 키를 사용하여 PEM 파일을 만들고 외부 키 공급자의 키 값 저장소에 업로드합니다.
예를 들어 키 파일은 bdc-encryption-secret 경로의 Hashicorp Vault의 KV 저장소에 추가될 수 있으며 비밀의 이름은 rsa2048일 수 있습니다.
빅 데이터 클러스터에서 통합 애플리케이션 사용자 지정 및 배포
로컬 컴퓨터에서 kms_plugin_app 포함된 폴더, 빅 데이터 클러스터 AppDeploy 템플릿 애플리케이션으로 이동합니다.
템플릿 중 하나를 선택하고 시나리오에 맞게 조정하여 애플리케이션을 사용자 지정합니다.
- 파일 custom_softhsm.py SoftHSM을 사용하는 참조 구현이 포함되어 있습니다.
- 파일 custom_akv.py Azure Key Vault 예제를 포함합니다.
- 파일 custom_hcv.py HashiCorp Vault 예제를 포함합니다.
Caution
통합 지점인 함수 계약 또는 서명을 변경하지 마세요. 필요한 경우 함수 구현만 변경합니다.
이에 따라 위의 템플릿에서 만드는 파일의 이름을 지정합니다. 예를 들어, custom_softhsm.py을 my_custom_integration_v1.py로 저장한 다음 사용자 지정을 수행합니다. 이 방법은 다음 단계에서 중요합니다.
app.py 애플리케이션을 로드하는 진입점입니다. 이 파일에서는 이전 단계의 .py 확장명 없이 사용자 지정 파일 이름을 가리키도록 줄 11을 변경해야 합니다. 위의 예제에 따라 다음을 변경합니다.
... import utils from json_objects import EncryptDecryptRequest import custom_softhsm as custom def handler(operation, payload, pin, key_attributes, version): ...을 다음 값으로 지정합니다.
... import utils from json_objects import EncryptDecryptRequest import my_custom_integration_v1 as custom def handler(operation, payload, pin, key_attributes, version): ...spec.yaml이 있는 폴더에서 다음 명령을 사용하여 빅 데이터 클러스터에 애플리케이션을 배포합니다.
azdata app create -s애플리케이션 배포가 완료될 때까지 기다렸다가 다음 명령을 사용하여 준비 상태를 확인할 수 있습니다.
azdata app list
외부 키 공급자를 사용하도록 빅 데이터 클러스터 구성
외부 키 공급자에
AZDATA_EXTERNAL_KEY_PIN대한 액세스를 허용하는 토큰을 제공하도록 환경 변수를 설정합니다.export AZDATA_EXTERNAL_KEY_PIN=<your PIN/token here>Note
통합 애플리케이션 배포 프로세스는 토큰을 사용하여 외부 키 공급자에 액세스합니다. 그러나
AZDATA_EXTERNAL_KEY_PIN변수는 빅 데이터 클러스터 컨트롤 플레인에 암호화되어 저장되므로 애플리케이션에서 해석할 수 있습니다. 다른 인증 메커니즘도 사용할 수 있지만 애플리케이션을 변경해야 합니다. 사용 중인 전체 통합 논리는 custom*.py Python 애플리케이션을 확인하십시오.다음
azdata명령 구조를 사용하여 빅 데이터 클러스터에서 키를 구성합니다. 필요한 매개 변수를 특정 구현으로 변경합니다. 다음 예제에서는 custom2.py 제공된 HashiCorp Vault 구조를 사용합니다.azdata bdc kms update --app-name <YOUR-APP-NAME> --app-version <YOUR-APP-VERSION> \ --key-attributes keypath=<YOUR-KEY-PATH>,vaulturl=http://<YOUR-IP>:<YOUR-PORT>,keyname=<YOUR-KEY-NAME> \ --provider External매개 변수 값은
--provider External통합 애플리케이션을 키 작업의 엔드포인트로 사용하도록 빅 데이터 클러스터 KMS를 구성합니다.다음 명령을 사용하여 루트 암호화 키를 외부에서 관리되는 키로 확인합니다.
azdata bdc kms show
새 키를 사용하여 데이터베이스 및 암호화 영역 암호화
구성 후 SQL Server 데이터베이스 및 HDFS 암호화 영역은 여전히 이전 키 계층 구조에 의해 암호화됩니다. 외부 관리형 키를 사용하여 명시적으로 암호화해야 합니다.
SQL Server에서 외부 관리형 키를 기반으로 하는 새로운 비대칭 키가 설치됩니다. 데이터베이스를 암호화하는 데 사용합니다.
비대칭 키는 시스템 카탈로그 뷰와 함께 다음 T-SQL 쿼리를 sys.asymmetric_keys 사용하여 볼 수 있습니다.
USE master;
select * from sys.asymmetric_keys;
비대칭 키는 명명 규칙 tde_asymmetric_key_<version>과 함께 나타납니다. 그런 다음 SQL Server 관리자는 ALTER DATABASE ENCRYPTION KEY를 사용하여 DEK의 보호기를 비대칭 키로 변경할 수 있습니다. 예를 들어 다음 T-SQL 명령을 사용합니다.
USE db1;
ALTER DATABASE ENCRYPTION KEY ENCRYPTION BY SERVER ASYMMETRIC KEY tde_asymmetric_key_0;
다음 명령을 실행하여 현재 암호화 키를 확인합니다.
azdata bdc hdfs key describe암호화 영역 키를 보호하는 키 버전에 대한 정보를 가져옵니다.
azdata bdc hdfs key describe --name <key name>키를 새 외부 관리형 키로 롤업합니다.
azdata bdc hdfs key roll --name <new key name>다음 명령을 사용하여 암호화를 시작합니다.
azdata bdc hdfs encryption-zone reencrypt –-path <your EZ path> --action start다음 명령을 사용하여 키 계층 구조를 확인합니다.
azdata bdc kms show azdata bdc hdfs key describe