적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Always Encrypted 마법사는 선택한 데이터베이스 열에 대해 원하는 Always Encrypted 구성을 설정할 수 있는 강력한 도구입니다. 현재 구성 및 원하는 대상 구성에 따라 마법사는 열을 암호화하거나, 암호를 해독하거나(암호화 제거) 다시 암호화할 수 있습니다(예: 열에 대해 구성된 현재 형식과 다른 새 열 암호화 키 또는 암호화 형식 사용). 마법사를 한 번 실행할 때 여러 열을 구성할 수 있습니다.
마법사를 사용하면 기존 암호화 키를 사용하여 열을 암호화하거나, 새 열 암호화 키를 생성하거나, 새 열 암호화 키와 새 열 마스터 키를 모두 생성할 수 있습니다.
마법사의 평가를 통해 선택한 데이터베이스의 테이블을 평가하거나 분석할 특정 테이블을 선택할 수 있습니다. 암호화에 적합한 열을 식별하고 데이터 형식, 제약 조건 및 기타 요인으로 인해 Always Encrypted와 호환되지 않는 열을 강조 표시합니다. 마법사는 특정 열을 암호화할 수 없는 이유를 설명하는 각 필드에 대한 자세한 제한 목록을 제공합니다.
데이터베이스가 보안 Enclave로 구성된 경우 데이터베이스에서 데이터를 이동하지 않고 암호화 작업을 실행할 수 있습니다. 마법사는 암호화할 열의 스키마 변경을 차단하는 모든 종속성을 제거합니다. 데이터베이스 엔진 내에서 enclave를 사용하여 각 열에 대한 내부 암호화를 실행합니다. 암호화가 완료되면 마법사가 종속성을 다시 만듭니다. 보안 Enclave를 사용하는 Always Encrypted에 대한 자세한 내용은 Always Encrypted with secure enclaves를 참조하세요.
데이터베이스가 보안 Enclave로 구성되지 않은 경우 마법사를 사용하여 보안 Enclave를 사용하도록 설정할 수 있습니다. 보안 Enclave를 사용하도록 설정하지 않거나 enclave 사용 키를 사용하지 않는다고 가정합니다. 이 경우 마법사는 데이터를 데이터베이스 밖으로 이동하고 SSMS 프로세스 내에서 암호화 작업을 수행합니다. 마법사는 데이터베이스에서 원하는 암호화 구성을 사용하여 새 테이블(또는 테이블)을 만들고, 원래 테이블의 모든 데이터를 로드하고, 요청된 암호화 작업을 수행하고, 데이터를 새 테이블에 업로드한 다음, 하나 이상의 원래 테이블을 새 테이블로 교환합니다.
팁
사용자 환경에서 사용할 수 있는 경우 보안 Enclave와 함께 Always Encrypted를 사용하여 현재 위치 암호화를 사용하면 암호화 작업의 시간과 안정성이 크게 저하될 수 있습니다.
암호화 작업을 실행하는 데는 시간이 오래 걸릴 수 있습니다. 이 기간 동안 데이터베이스는 트랜잭션을 작성할 수 없습니다. PowerShell은 더 큰 테이블에서 암호화 작업에 권장되는 도구입니다. PowerShell에서 Always Encrypted를 사용하여 열 암호화 구성 또는 PowerShell을 사용하여 열 암호화 구성을 참조하세요.
마법사를 사용하여 Always Encrypted를 구성하고 클라이언트 애플리케이션에서 사용하는 방법을 보여 주는 엔드투엔드 연습은 다음 Azure SQL 데이터베이스 자습서를 참조하세요.
Always Encrypted 키에 대한 자세한 내용은 Always Encrypted의 키 관리 개요를 참조하세요.
Always Encrypted에서 지원되는 암호화 유형에 대한 자세한 내용은 결정적 또는 임의 암호화 선택을 참조하세요.
사용 권한
마법사를 사용하여 암호화 작업을 수행하려면 해당 권한과 VIEW ANY COLUMN MASTER KEY DEFINITION 권한이 있어야 합니다VIEW ANY COLUMN ENCRYPTION KEY DEFINITION. 열 마스터 키를 만들고, 액세스하고, 사용하려면 키 저장소 권한도 필요합니다. 키 저장소 권한에 대한 자세한 내용은 Always Encrypted에 대한 열 마스터 키 만들기 및 저장으로 이동하거나 키 저장소와 관련된 섹션을 찾습니다.
Always Encrypted 마법사 열기
다음 세 가지 수준에서 마법사를 시작할 수 있습니다.
- 데이터베이스 수준에서 서로 다른 테이블의 여러 열을 암호화하려는 경우
- 테이블 수준에서 동일한 테이블의 여러 열을 암호화하려는 경우
- 열 수준에서 특정 열을 암호화하려는 경우
SQL Server Management Studio에서 개체 탐색기 구성 요소를 통해 SQL Server에 연결합니다.
암호화하려면 다음을 수행합니다.
데이터베이스의 서로 다른 테이블에 위치한 여러 열을 처리하려면 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업을 가리킨 후, Always Encrypted 마법사를 선택합니다.
같은 테이블의 여러 열을 선택한 후, 테이블로 이동하여 마우스 오른쪽 버튼을 클릭한 다음 Always Encrypted 마법사를 선택합니다.
개별 열을 탐색하고 열을 마우스 오른쪽 단추로 클릭한 다음 Always Encrypted 마법사를 선택합니다.
열 선택 페이지
이 페이지에서 암호화, 다시 암호화 또는 암호 해독할 열을 선택하고 대상 암호화 구성을 정의합니다.
일반 텍스트 열(암호화되지 않은 열)을 암호화하려면 암호화 유형(결정적 또는 임의화됨)과 열에 대한 암호화 키를 선택합니다.
원하는 암호화 유형과 키를 선택하여 암호화 유형을 변경하거나 이미 암호화된 열에 대한 열 암호화 키를 회전(변경)합니다.
마법사에서 새 열 암호화 키를 사용하여 하나 이상의 열을 암호화하거나 다시 암호화하려면 이름에 포함된 키(새로 만들기) 를 선택합니다. 마법사에서 키를 생성합니다.
현재 암호화된 열의 암호를 해독하려면 암호화 유형에 대한 일반 텍스트를 선택합니다.
팁
현재 위치 암호화를 사용하고 기존 키를 활용하려는 경우, (enclave 사용 가능)이라는 태그가 붙은 키를 선택해야 합니다.
마법사는 임시 및 메모리 내 테이블에 대한 암호화 작업을 지원하지 않습니다. Transact-SQL을 사용하여 빈 임시 또는 인메모리 테이블을 만들고 애플리케이션을 사용하여 데이터를 삽입할 수 있습니다.
열 평가 페이지
선택한 테이블 및 열은 Always Encrypted 또는 보안 enclave를 사용한 Always Encrypted에 적합한지 평가됩니다. 평가는 상태 표시줄과 현재 평가되는 테이블 및 열 목록을 표시하여 자동으로 시작됩니다. 이 작업은 수행되며 수행할 작업입니다. 평가는 테이블 열이 제한 사항에 따라 보안 enclave를 사용하여 Always Encrypted 또는 Always Encrypted에 대한 요구 사항을 충족하는지 확인 합니다.
열이 요구 사항을 충족하지 않으면 평가에 해당 열의 "오류" 상태가 표시됩니다. 메시지 링크를 선택하면 특정 열을 암호화할 수 없는 이유에 대한 자세한 정보를 얻을 수 있습니다.
확인란을 선택하여 전달된 평가 열을 암호화할 수 있습니다. 마법사는 평가를 통과하지 않는 열을 자동으로 건너뜁니다. 또한 보고서 단추를 선택하여 결과를 CSV 또는 텍스트 파일로 내보낼 수 있습니다.
마스터 키 구성 페이지
이전 페이지의 열에 대해 자동 생성된 열 암호화 키를 선택한 경우 기존 열 마스터 키를 선택하거나 이 페이지에서 열 암호화 키를 암호화하는 새 열 마스터 키를 구성해야 합니다.
새 열 마스터 키를 구성할 때 Windows 인증서 저장소 또는 Azure Key Vault에서 기존 키를 선택하고 마법사에서 데이터베이스의 키에 대한 메타데이터 개체만 만들도록 하거나 데이터베이스의 키를 설명하는 키와 메타데이터 개체를 모두 생성하도록 선택할 수 있습니다.
무중단 위치 암호화를 사용하려면 새 열 마스터 키에 대해 인클레이브 계산 허용 옵션을 선택합니다. 데이터베이스가 보안 Enclave로 구성된 경우에만 이 확인란을 선택할 수 있습니다.
Windows 인증서 저장소, Azure Key Vault 또는 기타 키 저장소에 열 마스터 키를 만들고 저장하는 방법에 대한 자세한 내용은 Always Encrypted용 열 마스터 키 만들기 및 저장 또는 보안 enclave를 사용하여 Always Encrypted용 키 관리를 참조하세요.
팁
마법사를 사용하면 Windows 인증서 저장소 및 Azure Key Vault에서만 키를 찾아서 만들 수 있습니다. 또한 새 키의 이름과 이를 설명하는 데이터베이스 메타데이터 개체를 자동으로 생성합니다. 키를 프로비전하는 방법을 더 자세히 제어하고 열 마스터 키를 포함하는 키 저장소에 대한 선택 항목이 더 많이 필요하다고 가정합니다. 이 경우 새 열 마스터 키 및 새 열 암호화 키 대화 상자를 사용하여 키를 먼저 만든 다음 마법사를 실행하고 만든 키를 선택할 수 있습니다. 새 열 마스터 키 대화 상자를 사용하여 열 마스터 키 프로비전 또는 enclave 사용 키 프로비전 및 새 열 암호화 키 대화 상자를 사용하여 열 암호화 키 프로비전을 참조하세요.
현재 위치 암호화 설정 페이지
데이터베이스에서 보안 Enclave를 구성하고 enclave 사용 키를 사용하는 경우 이 페이지에서 현재 위치 암호화에 필요한 Enclave 증명 매개 변수를 지정할 수 있습니다. 현재 위치 암호화를 사용하지 않으려면 적격 열에 대한 현재 위치 암호화 사용을 선택 취소하여 클라이언트 쪽 암호화를 계속 진행합니다. 마법사에서 현재 위치 암호화를 사용할 수 있도록 이 확인란을 사용하도록 설정하는 것이 좋습니다.
Enclave 증명에 대한 자세한 내용은 Azure Attestation을 사용하여 Always Encrypted에 대한 증명 구성을 참조하세요.
실행 설정 페이지
마법사는 대상 암호화 구성을 설정하는 두 가지 방법인 온라인 및 오프라인을 지원합니다.
오프라인 방식을 사용하면 대상 테이블과 대상 테이블과 관련된 테이블(예: 대상 테이블에 외래 키 관계가 있는 테이블)은 작업 기간 동안 트랜잭션을 작성할 수 없습니다. 오프라인 접근 방식을 사용할 때 외래 키 제약 조건(CHECK 또는 NOCHECK)의 의미 체계는 항상 유지됩니다.
온라인 방식을 사용하면 데이터를 복사, 암호화, 암호 해독 또는 다시 암호화하는 작업이 증분 방식으로 수행됩니다. 애플리케이션은 최대 가동 중지 시간 매개 변수로 제한되는 마지막 반복을 제외하고 데이터 이동 작업 전체에서 대상 테이블에서 데이터를 읽고 쓸 수 있습니다. 데이터를 복사하는 동안 애플리케이션이 수행할 수 있는 변경 내용을 검색하고 처리하기 위해 마법사는 대상 데이터베이스에서 변경 내용 추적을 사용하도록 설정합니다. 따라서 온라인 접근 방식은 오프라인 방식보다 데이터베이스 쪽에서 더 많은 리소스를 사용할 가능성이 높습니다. 특히 데이터베이스에 대해 쓰기가 많은 워크로드가 실행되는 경우 온라인 접근 방식을 사용하는 데 더 많은 시간이 걸릴 수 있습니다. 온라인 접근 방식을 사용하여 한 번에 하나의 테이블에 Keep check foreign key constraints 옵션을 사용하도록 설정하여 외래 키 제약 조건의 의미 체계를 유지하도록 적용할 수 있습니다.
다음은 오프라인 및 온라인 접근 방식 중에서 선택하기 위한 지침입니다.
오프라인 방법을 사용합니다.
- 작업 기간을 최소화합니다.
- 여러 테이블의 열을 동시에 암호화/암호 해독/다시 암호화하려면
- 대상 테이블에 기본 키가 없는 경우
온라인 방법을 사용합니다.
- 애플리케이션에 대한 데이터베이스의 가동 중지 시간/사용 불가를 최소화합니다.
암호화 후
테이블에 액세스하는 모든 일괄 처리 및 저장 프로시저에 대한 계획 캐시를 지우고 매개 변수 암호화 정보를 새로 고칩니다.
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
비고
캐시에서 영향을 받는 쿼리에 대한 계획을 제거하지 않으면 암호화 후 첫 번째 쿼리 실행이 실패할 수 있습니다.
계획 캐시를 지우거나 ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 또는 DBCC FREEPROCCACHE를 사용할 때, 임시 쿼리 성능 저하가 발생할 수 있으므로 주의 깊게 하십시오. 캐시 지우기의 부정적인 영향을 최소화하기 위해 영향을 받는 쿼리에 대한 계획만 선택적으로 제거할 수 있습니다.
sp_refresh_parameter_encryption 호출하여 sys.parameters에 유지되고 열을 암호화하여 무효화되었을 수 있는 각 모듈(저장 프로시저, 함수, 뷰, 트리거)의 매개 변수에 대한 메타데이터를 업데이트합니다.