티스토리 뷰
Azure SQL Database Always Encryption
Always Encryption 은 항상 암호화로 번역되어 나오는데 클라이언트부터 암호화되어 추가되며 복호화되어 클라이언트에 나타나는 SQL Server 2016의 기능인데 Azure SQL Database까지 지원하고 있습니다. 클라이언트로부터 암호화된다는 것이 글로 설명하기는 제한적이며 아래 링크를 참고할 수 있습니다. 아래 링크에서 그림을 보면 쉽게 이해가 가능합니다.
https://msdn.microsoft.com/en-us/library/mt163865(v=sql.130).aspx
Azure SQL Database 에 항상 암호화를 적용해보도록 하겠습니다. 아래 주소 내용과 유사하게 진행해보겠습니다.
데이터베이스를 Azure SQL Database 에 생성하고 테이블을 아래와 같이 생성합니다. 이 중에서 SSN, Birthdate 는 민감정보로 암호화를 해야 할 경우 여러 방법이 있겠지만 항상 암호화 기능을 사용할 수 있습니다.
SQL Server 2016의 SSMS에서 Azure SQL Database를 연결하고 데이터베이스를 오른쪽 클릭하거나 해당 암호화할 테이블을 오른쪽 클릭하여 열 암호화를 선택합니다. 테스트를 위해서는 미리 데이터를 삽입해 두는 것이 편합니다.
암호화 마법사 그림을 보면 좀 더 쉽게 이해가 가능합니다.
테이블에서 해당 암호화 열을 선택할 수 있습니다.
열을 선택하면 암호화 유형을 선택해야 하는데 결정적, 임의 암호화 유형이 있으며 장단점이 있으므로 적절한 유형을 선택할 수 있습니다.
아래 그림에서 암호화 유형에 대한 내용을 정리하고 있습니다. 위 테이블의 SSN 같은 경우 필터링, 조인 등을 사용하므로 결정적 암호화로 항상 같은 암호화 값을 제공하여 인덱싱도 가능합니다. 하지만 데이터를 유추할 가능성이 높습니다.
암호화에 사용되는 마스터 키를 구성할 수 있습니다. 인증서 저장소와 Azure Key Vault 에 저장 가능합니다.
PowerShell 스크립트를 통해 암호화를 다른 서버에도 적용할 있습니다.
최종적으로 확인하고 다음을 클릭하면 암호화를 진행하면서 암호화 열 스키마를 변경하게 됩니다.
작업이 다 완료되었습니다.
테이블을 스크립팅해보면 아래와 같은 암호화 열 스키마를 확인할 수 있습니다. AES256, CBC 모드인 것을 확인 할 수 있습니다.
새 쿼리 창을 통해 Azure SQL Database를 연결하여 테이블을 쿼리하면 암호화 된 내용을 바로 확인할 수 있습니다.
클라이언트에서 복호화되게 하려면 마스터 키 연결에 따라 달라지지만 연결 문자열 매개변수를 추가하여 연결하면 됩니다.
column encryption setting=enabled
테이블을 쿼리하면 복호화 된 내용을 바로 확인할 수 있습니다.
응용프로그램 코드를 통해서 확인해보겠습니다. 마찬가지로 연결 문자열에 열 암호화 설정이 추가되어 있습니다. 직접 INSERT 구문을 적용할 경우 제한적이며 @매개변수 또는 저장 프로시저의 매개변수를 통해 진행해야 합니다.
응용프로그램을 실행하면 아래와 같은 구문이 클라이언트(ADO.NET)로부터 생성되어 서버로 전달됩니다. 반대로 클라이언트(ADO.NET)에서 복호화되게 됩니다.
클라이언트 코드에 대한 내용은 아래 링크를 참고할 수 있습니다.
https://msdn.microsoft.com/en-us/library/mt147923.aspx
이상으로 항상 암호화를 살펴보았습니다. 항상 암호화는 열 암호화 대상에 제한이 있으며 SQL Server 2016 SSMS와 ADO.NET-.NET Framework 4.6 이상을 통해서 가능한 측면이 있으며 마스터 키 위치에 따라 달라지므로 키 저장소도 사전에 고려해야 합니다.
항상 암호화를 통해 중요한 정보를 암호화 할 수 있는데 클라이언트는 항상 암호화를 통해서 응용 프로그램 내부에서 데이터를 암호화 할 수 있으며 SQL Server에는 암호화 키가 노출되지 않고 Azure SQL Database까지 지원하여 장점을 제공하고 있습니다.
'Microsft Azure > SQL Databases' 카테고리의 다른 글
Azure SQL 데이터 웨어하우스 (0) | 2016.02.19 |
---|---|
Azure SQL Database – 감사(Audit)와 위협 검색(Threat Detection) (0) | 2016.02.12 |
Azure Active Directory (Azure AD) 인증 (0) | 2015.10.23 |
Azure SQL Database Security (0) | 2015.10.23 |
SQL Database V12 – 투명한 데이터 암호화(Transparent Data Encryption) (0) | 2015.07.10 |
- Total
- Today
- Yesterday
- Windows Azure Mobile Services
- Visual Studio 2010
- Power BI Desktop 업데이트
- SharePoint Object Model
- Power BI
- Microsoft Fabric
- Power BI Update
- Power BI Desktop Update
- hongju
- Power BI Copilot
- Windows Azure 업데이트
- copilot
- Windows Azure
- Power BI 업데이트
- SharePoint 2010
- Cloud
- SharePoint 2013
- Windows Phone 7
- SQL Azure
- 페이지를 매긴 보고서
- 목표
- Power BI Desktop
- SharePoint Online
- redJu
- sharepoint
- Paginated Report
- 클라우드
- 업데이트
- 정홍주
- sql server 2012
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |