티스토리 뷰
2023.12.22 - [Entity Framework Core] - Sql Always Encrypted 사용하기 Part4
2023.12.20 - [Entity Framework Core] - Sql Always Encrypted 사용하기 Part3
2023.11.22 - [Entity Framework Core] - Sql Always Encrypted 사용하기 Part2
2023.11.20 - [Entity Framework Core] - Sql Always Encrypted 사용하기 Part1
Azure Key Vault 설정을 합니다.
1. Azure Key Vault 생성
아래 내용 중 Key Vault를 선택합니다.
아래 정보로 입력합니다.
리소스 그룹 선택하고, Region선택하고 Pricing tier선택 등 일반적인 내용을 선택하시면 됩니다.
Next버튼을 눌러서 다음 항목을 설정합니다.(
***** 암호화 키를 SSM를 통해서 생성해야 하기 때문에 Vault access policy를 선택해서, 관리자를 연결시켜 줍니다.
Review + create 버튼을 클릭해서 내용확인 하고 Create 버튼을 눌러서 서비스를 생성합니다.
생성 버튼을 누른 후 잠시 대기하시고, 완료되면 Go to resource 버튼을 눌러서 이동하시면 됩니다.
2. SSMS에서 Azure Key Vault와 연결
Database 폴더 중 Security -> Always Encrypted Keys -> 마우스 오른쪽 컨텍스트 메뉴 -> New Column Master Key... 선택
Key store 콤보박스 선택해서 Azure Key Vault 선택, Allow enclave computations는 선택 미선택
Sign In... 버튼 클릭 후 Azure 로그인
로그인 하면 잠시 후에 아래와 같은 내용이 출력됩니다.
- Name에 KakiAKV 입력
- Select a key vault에서 방금 생성한 리소스 선택
- Generate Key 클릭
- Ok
최종 이미지
3. 컬럼 암호화
테이블에서 마우스 오른쪽 -> Encrypt Columns 선택
2개의 컬럼을 선택하고 아래와 같이 암호화 방식 선택 후 Next
Select the key store provider -> Azure Key Vault 선택 후 Next\
Allow enclave computations는 미체크
암호화 중에 오류 발생
대충 내용은 아래와 같습니다.
Content:
{"error":{"code":"Forbidden","message":"The user, group or application 'appid=04b07795-8ddb-461a-bbee-02f9e1bf7b46;oid=82860dec-bf36-42ad-b8e9-794622f11dfd;numgroups=1;iss=https://sts.windows.net/b1ad2c09-785a-4dcd-896c-75de6388ffcd/' does not have keys sign permission on key vault 'kakisamplekey;location=eastus'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287","innererror":{"code":"ForbiddenByPolicy"}}}
다시 Azure로 돌아와서
Access policies -> 사용자 선택하고 상단에 Edit 클릭
사용자의 상세 권한 목록을 볼 수 있습니다. 아마 Cryptographic Operations들에 대해 체크가 필요할 것 같습니다.
그 아래 Privileged Key Operations 들도 필요할 것 같아서 모두 체크 합니다.
Next 버튼 누르고 저장하기 눌러서 반영
다시 위의 과정을 반복하다가 여기서 Auto generate column master key를 눌러서 KakiAKV를 선택했습니다. 좀전에 마스터 키를 등록했으니 그 녀석을 사용해야 겠죠?
바로 성공이 뜨네요
데이터베이스 연결할 때 암호화 옵션을 선택하지 않았기 때문에 쿼리를 실행하면 아래와 같이 나옵니다.
연결을 끊고 이번에는 암호화 상태로 접속하겠습니다.
연결할 때 Option -> Always Encrypted 탭에서 Enable Always Encrypted를 선택하고 Connect를 누릅니다.
로그인 할 때 Azure 로그인을 물어보지는 않았는데, Azure에 로그인이 않되어 있으면 물어보는 창이 뜹니다.
테이블을 다시 조회하면 아래와 같은 결과가 나옵니다.
'Entity Framework Core' 카테고리의 다른 글
Sql Always Encrypted 사용하기 Part4 (2) | 2023.12.22 |
---|---|
Sql Always Encrypted 사용하기 Part3 (0) | 2023.12.20 |
Sql Always Encrypted 사용하기 Part1 (0) | 2023.11.20 |
SQL Style Guide (ko-KR) (0) | 2021.04.27 |
EF Core 동적 검색 조건 사용하기 (0) | 2021.02.01 |
- Total
- Today
- Yesterday
- Behavior
- IOT
- uno platform
- Windows 10
- UWP
- Cross-platform
- #Windows Template Studio
- visual studio 2019
- Always Encrypted
- ef core
- #uwp
- MVVM
- kiosk
- ComboBox
- dotNETconf
- Microsoft
- Visual Studio 2022
- C#
- XAML
- .net
- Build 2016
- PRISM
- LINQ
- uno-platform
- #MVVM
- windows 11
- .net 5.0
- #prism
- Bot Framework
- WPF
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |