メインコンテンツまでスキップ

3) SKMS 앱 등록

MASTER-TENANT 앱 등록

설명
  • SKMS는 클라이언트에게 서비스를 제공하기 위해 Security365 인증/인가 서비스와 유기적으로 동작한다.
  • 이를 위해 앱에 대한 기본적인 정보를 Security365 앱 서비스에 등록 해야 한다. (수동 작업)

master-tenant에 앱(서비스) 등록

  • SKMS가 인증/인가 서비스 API를 사용하기 위한 앱 등록
  • SKMS는 멀티 테넌트(회사)를 지원할 예정이므로 master-tenant에 등록한다. (최초 1번)
skms_master_appRegi
  • 앱 서비스 이름 : SKMS
  • 인증 타입 : client_credentials
  • 인증/인가 API를 사용하기 위해 접근 범위(scope) 필수 설정
    ClientAppInfo.ReadWrite, PolicyInfo.ReadWrite, UserInfo.ReadWrite, CompanyInfo.Read
  • Notify 설정 : 전체 회사 리스트의 공개키 캐싱 및 master-tenant에 등록한 앱서비스의 built-in 프로파일 업데이트를 위해 사용
  • Notify URL : http://cloud-skms-service.dev.svc.cluster.local/api
  • Notify target : company, profile

등록 완료 후 표시되는 앱 서비스 ID 및 Secret key는 SKMS Deploy 시 ConfigMap의 해당하는 키의 값으로 입력

  • 앱 서비스 Secret key는 최초에만 확인이 가능하므로 별도 저장 필요(중요)
skms_master_idSecret

[ConfigMap 입력 항목]

  • CUSTOM_AUTH_SERVICE_EXTRA : mater-tenant 의 회사ID (tenant ID)
  • CUSTOM_APP_TENANT_ID : master-tenant에 등록된 앱 서비스 ID(client id) 값 입력
  • CUSTOM_APP_TENANT_SECRET : master-tenant에 등록된 앱 서비스 Secret key 값 입력
  • AZURE_INFO : AZURE 공통 앱 ID|SECRET(파이프 구분자)
    예) 7e82e70d-4386-419d-9dfd-6c8d6e6068fc|LBd8Q~.aDAmOjOhZSbcgu.sakTgSPrb_zNPxrbuM

master-tenant의 정책 프로파일 설정

  • master-tenant에 등록된 속성은 모든 회사에 자동으로 생성 된다.
  • BUILT-IN-PROFILE 메뉴에서 master-tenant 선택 후 프로파일 속성 값의 Key만 입력한다. (대문자 입력)
  • TENANT_APP_ID : 회사별 APP_ID
  • TENANT_APP_SECRET : 회사별 APP_SECRET
  • DS_KEY_ENCRYPTION_KEY : 보안 취약점 대응으로 암복호화용 키 생성 시 사용됨
    • 해당 정책은 Value 입력 필요(고정값) : CwI3FmhjG01Qd28JV3IreA==
    • SKMS 서비스 실행 시 자동으로 추가됨

회사 별 앱 등록

신규 추가된 회사에 앱(서비스) 등록

  • 추가된 회사가 SKMS 서비스를 사용하기 위한 앱 등록
  • SKMS를 사용하려는 회사별로 앱 등록이 필요
skms_company_appRegi
  • 앱 서비스 이름 : SKMS
  • 인증 타입 : authorization_code, client_credentials
  • Redirect URL : https://{서버ip:port}/api/oauth/loginCallback/{회사 company_id(테넌트ID)}
  • 인증/인가 API를 사용하기 위해 접근 범위(scope) 필수 설정
    PolicyInfo.ReadWrite
  • Notify 설정 : 등록한 앱서비스의 built-in 프로파일 업데이트를 위해 사용
  • Notify URL : http://cloud-skms-service.dev.svc.cluster.local/api
  • Notify target : profile

등록 완료 후 표시되는 앱 서비스 ID 및 Secret key는 각 회사별 정책 프로파일 관리 > BUILT-IN-PROFILE 탭 메뉴에서 사용

  • 등록 후 생성된 App Secret은 최초에만 확인이 가능하므로 별도 저장 필요(중요)
skms_company_idSecret
  • 앱 사용을 위해 앱 서비스 관리 > 회사 선택 > SKMS 앱 서비스 사용 활성화 필수
skms_company_appUse

신규 추가된 회사의 정책 프로파일 설정

  • BUILT-IN-PROFILE 메뉴에서 신규 회사 선택 후 프로파일 속성 값의 Value를 입력한다.
skms_company_builtIn
  • TENANT_APP_ID : 회사 앱 등록 시 발급받은 APP_ID
  • TENANT_APP_SECRET : 회사 앱 등록 시 발급받은 APP_SECRET
  • EDGE_KMS_URL : EDGE 서버 사용 시 키볼트 URL 정보 입력(https://devkms.softcamp.co.kr)
  • EDGE_EKMS_URL : EDGE 서버 사용 시 EKMS URL 정보 입력(https://devekms.softcamp.co.kr)

등록된 회사의 빌트인 프로파일 정책 설명

  • Key : TENANT_APP_ID
  • Information
회사 별 App Id
  • Value
70ce0461-264c-4506-809c-2f2088b5730e
  • Key : TENANT_APP_SECRET
  • Information
회사 별 App Secret
  • Value
JicqKismISYkIi0mKiQtKCosJiolKSQjJyomJi0jJCs
  • Key : KEY_MANAGER_INFO
  • Information
암호 키 관리 페이지 설정 정보
sci_server_id : SCI 서버 아이디
sci_server_name : SCI 서버명
- SKMS 서버 시작 시 키파일 업로드 또는 SCI 서버 연동으로 KMS 에 저장된 SCI 서버 아이디 및 서버명을 조회하여 자동으로 추가함
(없는 경우 NoRegisteredId, NoRegisteredName)
key_type : 키매니저 키타입 (사용안함)
execute_time : 스케줄러 실행 시간(24시간 단위)
sl_uid : 키매니저 SL_UID
service_id : SCI 서비스 아이디
renewal_cycle : 스케줄러 실행 주기 (현재 24만 수행)
server_ip : SCI 서버 아이피
regist_ip : 등록된 서버 IP
key_count : 키볼트 데이터 저장 후 처리된 키 카운트 (총 16자리로 "|" 로 구분)
총합계|성공합계|실패합계|중복합계|
MAC합계|MAC성공|MAC실패|MAC중복|
DAC합계|DAC성공|DAC실패|DAC중복|
GRADE합계|GRADE성공|GRADE실패|GRADE중복
server_port : SCI 서버 포트
  • Value
{
"sci_server_id": "TEST-SERVER",
"sci_server_name": "테스트 서버",
"key_type": "0",
"execute_time": "5",
"sl_uid": "SL2307120000000",
"renewal_cycle": "24",
"service_id": "03",
"server_ip": "10.50.10.201",
"regist_ip": "10.20.10.91",
"key_count": "117|0|0|117|9|0|0|9|105|0|0|105|3|0|0|3",
"server_port": "62000"
}
  • Key : KEY_UPDATE_TIME
  • Information
단일 서버 정보 (멀티 서버 정보는 KEY_UPDATE_TIME_MULTI 에 저장됨)
첫번째 자리 : 키볼트에 키 정보 업데이트 시간 millisecond (UTC 기준)
두번째 자리 : 키볼트에 키 정보 저장 시 소요 시간 millisecond
  • Value
1663574932538|11705
  • Key : KEY_VAULT_OPTION
  • Information
단일 서버 정보 (멀티 서버 정보는 KEY_UPDATE_TIME_MULTI 에 저장됨)
키파일/키볼트 사용 여부
E : RSA키파일, M : 키볼트
  • Value
M
  • Key : CONNECTOR_INFO
  • Information
각 회사 별 연동 서비스 정보 - 마스터 테넌트의 빌트인프로파일에 저장됨
  • Value
[
"{\"ecLicense\":\"1CF4-70CE6-9D5D-72C5C\",\"systemDomain\":\"TEST\",
\"systemNameEn\":\"TEST\",\"systemDetail\":\"\",\"connectorUseAvailable\":true,
\"updateDate\":\"2022-11-17 07:31:05\",
\"companyId\":\"ks69wQjL-emPAibk0-bOZxzcnw-pUXBi5iK\"}"
,.............
]
  • Key : DS_KEY_ENCRYPTION_KEY
  • Information
보안 취약점 대응으로 고객사 별 암복호화용 키 생성 시 사용됨
SCI 서버 커스텀 정책에 등록된 값과 동일하게 입력
  • Value
CwI3FmhjG01Qd28JV3IreA==
  • Key : EDGE_KMS_URL
  • Information
EDGE 서버의 키볼트 URL 정보
  • Value
https://devkms.softcamp.co.kr
  • Key : EDGE_EKMS_URL
  • Information
EDGE 서버의 EKMS URL 정보
  • Value
https://devekms.softcamp.co.kr
  • Key : KEY_MANAGER_INFO_MULTI
  • Information
SCI 멀티 서버 사용 시 서버 정보
  • Value
[
{
"sci_server_id": "TEST-SERVER",
"sci_server_name": "테스트 서버",
"key_type": "0",
"execute_time": "5",
"sl_uid": "SL2307120000000",
"renewal_cycle": "24",
"service_id": "03",
"server_ip": "10.50.10.201",
"regist_ip": "10.20.10.91",
"key_count": "117|0|0|117|9|0|0|9|105|0|0|105|3|0|0|3",
"server_port": "62000",
"key_update_time": "1730174855050|35",
"key_vault_option": "M"
}
]

  • Key : POLICY_MANAGER_INFO_MULTI
  • Information
권한 정책 연동 시 서버 정보
sci_server_id : SCI 서버 아이디
execute_time : 스케줄러 실행 시간(24시간 단위)
renewal_cycle : 스케줄러 실행 주기 (현재 24만 수행)
server_ip : SCI 서버 아이피
server_port : SCI 서버 포트
policy_count : 키볼트 데이터 저장 후 처리된 정책 연동 카운트 (총 4자리로 "|" 로 구분)
총합계|성공합계|실패합계|중복합계|
policy_update_time : 키볼트 업데이트 완료 시간(타임스탬프)|업데이트 소요 시간(밀리세컨드)
key_vault_option : SCI 연동 스케줄러 사용 여부
  • Value
[
{
"sci_server_id": "SKMS-TEST",
"execute_time": "18",
"renewal_cycle": "24",
"server_ip": "10.10.13.122",
"server_port": "62004",
"policy_count": "31|31|0|0",
"policy_update_time": "1733126944465|1626",
"key_vault_option": "M"
}
]
  • Key : MULTI_SERVER_OPTION
  • Information
SCI 멀티 서버 사용 여부 (기본값 : N)
- N : SCI 서버 아이디와 관계 없이 항상 단일 서버 사용
- Y : SCI 서버 아이디에 따라 멀티 서버로 동작
  • Value
N