Skip to content

Key Management ​

Key Management는 Column 암복호화 시 사용되는 양방향 Key를 관리할 수 있는 화면이다.
Key는 AES와 KMS-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를 클릭하여 변경사항을 저장한다.