Skip to content

Key Management

Key Management는 Column 암복호화 시 사용되는 양방향 Key를 관리할 수 있는 화면이다.
Key는 AESKMS-AES 중 원하는 알고리즘으로 생성이 가능하다.

화면 구성

Full Screen
[그림1. 전체 화면]

Console 내 Key Management 메뉴의 화면을 크게 3가지 영역으로 구분하여 설명한다.

  1. List: 생성된 Key를 목록 형태로 보여준다. 선택한 Key와 상호작용이 가능하다.

  2. Attribute: 특정 Key에 대한 정보를 자세하게 보여주며 수정이 가능하다.

  3. New Popup: 신규 Key를 생성하기 위한 화면이다.

    List


    Key List [그림2. 키 목록]

    전체 Key 목록을 보여주는 영역이다. 각 컬럼은 아래와 같은 정보를 나타낸다.

    Column NameCommentValues
    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 Context
    프로비저닝으로 생성되는 Key는 생성자 명이 System User로 표시된다.

    TIP

    우상단의 New 버튼을 클릭하여 Key 생성 팝업을 호출하거나,
    특정 Key 선택 후 Delete 버튼을 클릭하여 해당 Key를 삭제할 수 있다.

    Key 삭제 시 아래와 같은 경고가 보여지고, Cancel을 클릭하면 삭제되지 않는다.

    Key Context
    [그림2-2. 키 삭제 경고]

    Context


    Key Context
    [그림3. 컨텍스트 메뉴]

    특정 Key에 마우스를 올린 후, 우클릭을 통해 Context Menu를 호출할 수 있다.
    각 항목은 아래와 같은 동작을 수행한다.

    • View Attribute : 선택된 Key의 Attribute를 호출한다. (ref. Attribute)
    • New : 신규 Key를 생성하기 위한 Popup을 호출한다. (ref. New Popup)
    • Delete : 선택된 Key를 삭제한다. (ref. List - Delete)

    Attribute


    Key List
    [그림4. 키 상세]

    Key의 상세 정보를 수정할 수 있는 영역이다. 보안을 위해 Key 값은 공백으로 보여진다.

    INFO

    ReadOnly Key
    [그림4-1. 수정 불가 키]

    특정 Key는 수정을 위해 Attribute 화면 조회 시, 위와 같이 표시될 수 있다.
    위와 같은 처리는 Studio의 Lock과는 별개의 처리로, 현재 환경에서 수정이 불가한 데이터임을 의미한다.

    수정 가능한 값

    • Description
    • Algorithm

      WARNING

      Algorithm 변경 시 Key Field의 값이 초기화되며, 저장을 위해 반드시 새로운 값의 입력이 필요해진다.
      실수로 변경했다면, Save를 클릭하지말고 Attribute 창을 닫는다.

    • Key

      WARNING

      Key Change Alert [그림4-1. 키 변경 경고]

      Key의 값을 변경하게 되면, 기존 Key로 암호화된 데이터들의 복호화가 불가능해진다.
      변경 후 Save 클릭 시 위 그림과 같이 이를 경고하는 팝업이 나타나게 된다.

    New Popup


    New Key Popup1
    [그림5. 키 생성 팝업]

    신규 Key 생성을 위한 Popup이다.
    Context - New를 클릭하여 호출하거나, List - New 버튼을 클릭하여 호출할 수 있다.

    INFO

    New Key Popup2 [그림6. DataSource 필드]

    DataSource LookUp [그림7. DataSource LookUp]

    DataSource는 Manage Type이 External인 경우에만 활성화되며 위와 같이 선택이 가능하다.

How To Create

Key를 생성하는 방법에 대해서 설명한다.
Key는 Manage Type에 따라 관리 주체와 DB가 변경되니 유의하여 사용한다.

System Key


Create System Key
[그림8. System Key 생성]

  • 필수 필드를 입력한 후 Save 버튼을 눌러 생성한다.
  • System Key는 CALS에서 관리를 수행한다.

Application Key


Create 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 테이블 생성 쿼리
sql
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;

Create External Key
[그림11. External Key 생성]

  • 필수 필드를 입력한 후 Save 버튼을 눌러 생성한다.
  • External Key는 Config 시 사용된 DataSource DB에 관리 주체를 위임한다.

How To Use

Column 암호화 시 Key를 사용하는 방법을 설명한다.

Column Encryption


Column Attribute
[그림12. Column Attribute]

암호화하길 원하는 Column의 Attribute를 조회한 후, Type을 Two-Way로 설정한다.

Column Attribute
[그림13. Key LookUp Field]

이후, Key Field를 클릭하여 암호화 시 사용할 Key를 선택한다.

Column Attribute
[그림14. Key LookUp]

Key Field에 대한 입력까지 완료되었다면, Save를 클릭하여 변경사항을 저장한다.