Key Management
Key Management는 Column 암복호화 시 사용되는 양방향 Key를 관리할 수 있는 화면이다.
Key는 AES
와 KMS-AES
중 원하는 알고리즘으로 생성이 가능하다.
화면 구성
[그림1. 전체 화면]
Console 내 Key Management 메뉴의 화면을 크게 3가지 영역으로 구분하여 설명한다.
List: 생성된 Key를 목록 형태로 보여준다. 선택한 Key와 상호작용이 가능하다.
Attribute: 특정 Key에 대한 정보를 자세하게 보여주며 수정이 가능하다.
New Popup: 신규 Key를 생성하기 위한 화면이다.
List
[그림2. 키 목록]
전체 Key 목록을 보여주는 영역이다. 각 컬럼은 아래와 같은 정보를 나타낸다.
Column Name Comment Values Name 키 명 - Description 키 설명 - Type 키 종류 Two-Way
Algorithm 암호화 알고리즘 AES
,KMS-AES
Manage Type 키 관리 방법 System
,Application
,External
DataSource 외부 DB 정보 - Create By 생성자 명 ex. 홍길동 Create Date 생성 일시 ex. 2024-03-01 INFO
[그림2-1. System User]
프로비저닝으로 생성되는 Key는 생성자 명이System User
로 표시된다.TIP
우상단의
New
버튼을 클릭하여 Key 생성 팝업을 호출하거나,
특정 Key 선택 후Delete
버튼을 클릭하여 해당 Key를 삭제할 수 있다.Key 삭제 시 아래와 같은 경고가 보여지고,
Cancel
을 클릭하면 삭제되지 않는다.
[그림2-2. 키 삭제 경고]Context
[그림3. 컨텍스트 메뉴]특정 Key에 마우스를 올린 후, 우클릭을 통해 Context Menu를 호출할 수 있다.
각 항목은 아래와 같은 동작을 수행한다.- View Attribute : 선택된 Key의 Attribute를 호출한다. (ref. Attribute)
- New : 신규 Key를 생성하기 위한 Popup을 호출한다. (ref. New Popup)
- Delete : 선택된 Key를 삭제한다. (ref. List - Delete)
Attribute
[그림4. 키 상세]Key의 상세 정보를 수정할 수 있는 영역이다. 보안을 위해 Key 값은 공백으로 보여진다.
INFO
[그림4-1. 수정 불가 키]특정 Key는 수정을 위해 Attribute 화면 조회 시, 위와 같이 표시될 수 있다.
위와 같은 처리는 Studio의 Lock과는 별개의 처리로, 현재 환경에서 수정이 불가한 데이터임을 의미한다.수정 가능한 값
- Description
- Algorithm
WARNING
Algorithm 변경 시 Key Field의 값이 초기화되며, 저장을 위해 반드시 새로운 값의 입력이 필요해진다.
실수로 변경했다면,Save
를 클릭하지말고 Attribute 창을 닫는다. - Key
WARNING
[그림4-1. 키 변경 경고]
Key의 값을 변경하게 되면, 기존 Key로 암호화된 데이터들의 복호화가 불가능해진다.
변경 후Save
클릭 시 위 그림과 같이 이를 경고하는 팝업이 나타나게 된다.
New Popup
[그림5. 키 생성 팝업]신규 Key 생성을 위한 Popup이다.
Context - New를 클릭하여 호출하거나, List - New 버튼을 클릭하여 호출할 수 있다.INFO
[그림6. DataSource 필드]
[그림7. DataSource LookUp]
DataSource는 Manage Type이
External
인 경우에만 활성화되며 위와 같이 선택이 가능하다.
How To Create
Key를 생성하는 방법에 대해서 설명한다.
Key는 Manage Type
에 따라 관리 주체와 DB가 변경되니 유의하여 사용한다.
System Key
[그림8. System Key 생성]
- 필수 필드를 입력한 후 Save 버튼을 눌러 생성한다.
- System Key는 CALS에서 관리를 수행한다.
Application Key
[그림9. Application Key 생성]
- 필수 필드를 입력한 후 Save 버튼을 눌러 생성한다.
- Application Key는 Application DB로 관리 주체를 위임한다.
External Key
External Type은 생성 시 DataSource
가 필요하다.
이후 해당 Key를 관리할 DB를 뜻하므로 적절한 DataSource
를 매핑해야한다.
WARNING
만약, 매핑한 DataSource
와 연결중 장애가 발생할 경우 이후 Deploy가 실패하게된다.
- 권한
- 실제로 존재하지 않는 Host
- 잘못된 Id, Pw
- etc...
INFO
DataSource를 통해 연결하려는 DB 내부에는 규격화된 qt_key_master
테이블이 반드시 필요하다.
만약, 테이블이 없는 상태로 Key를 생성하게 되면 주의
- qt_key_master 테이블 생성 쿼리
CREATE TABLE `qt_key_master` (
`SYS_ID` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`SYS_CREATE_BY` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`SYS_MODIFY_BY` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`SYS_CREATE_DATE` datetime DEFAULT NULL,
`SYS_MODIFY_DATE` datetime DEFAULT NULL,
`SYS_TYPE` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`SYS_FLAG` char(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`TL_APL_ID` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`TL_ACC_ID` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`KEY_CODE` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`KEY_DESC` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ENC_TYPE` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ENC_ALGO` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ENC_KEY` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`ENC_DATA_KEY` varchar(4000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`KMS_ALIAS` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`EDIT_FLAG` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`EXT_ENV_CODE` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
PRIMARY KEY (`SYS_ID`,`TL_APL_ID`,`TL_ACC_ID`,`EXT_ENV_CODE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
[그림11. External Key 생성]
- 필수 필드를 입력한 후 Save 버튼을 눌러 생성한다.
- External Key는 Config 시 사용된
DataSource DB
에 관리 주체를 위임한다.
How To Use
Column 암호화 시 Key를 사용하는 방법을 설명한다.
Column Encryption
[그림12. Column Attribute]
암호화하길 원하는 Column의 Attribute를 조회한 후, Type을 Two-Way
로 설정한다.
[그림13. Key LookUp Field]
이후, Key Field를 클릭하여 암호화 시 사용할 Key를 선택한다.
[그림14. Key LookUp]
Key Field에 대한 입력까지 완료되었다면, Save를 클릭하여 변경사항을 저장한다.