6) SDF Container의 상태 점검
상태 점검 확인 가이드
- 업무시스템 POD(메인 컨테이너)에 사이트카 컨테이너로 Deploy가 완료된 후 메인 컨테이너에 접속하여 API 호출
- 메인 컨테이너에 접속하여 CURL 명령어로 SDF Container의 API 호출
- API 호출 시 SHIELDRM 관리자 페이지의 연동 앱 관리 메뉴에서 발급 받은 라이선스 필요
- API 사용 가능 이미지 정보 : security365acr.azurecr.io/shieldrm/cloud-containerlinker:20250213.1 이후 버전에서 동작
DS 관련 필수 데이터 확인 및 MIP SDK 동작 확인
메인 컨테이너에 접속하여 CURL 명령어 실행(라이선스 입력)
curl http://127.0.0.1:8181/api/healthCheck/{licenseKey}
실행 결과
Name | Type | Description |
---|---|---|
code | int | 최종 성공 여부 (0 : 성공) |
healthCheck | obj | SKMS 동작 여부 |
licenseCheck | obj/string | 라이선스 존재 여부 |
keyCheck | obj/string | 필수 키 존재 여부 |
azureInfoCheck | obj/string | SKMS 환경변수(AZURE_INFO) 및 OpenID 존재 여부 |
azureInfoValidCheck | obj/string | azureInfoCheck의 정보가 유효한지 체크 |
result | string | 각 체크별 성공/실패 여부 |
error | string | 실패 시 상세 에러 메시지 |
상 태 점검 항목 설명 및 실패 조치 방안
점검 항목 | 설명 | 실패 시 조치 방안 |
---|---|---|
healthCheck | SDF Container와 EnDec 서비스와의 통신 확인 | - SDF 컨피그맵의 SKMS_API_URL 정보 확인 - 클러스터 간 통신 네트워크 및 DNS 설정 점검 - 유효한 인증서인지 확인 |
licenseCheck | 발급된 라이선스가 유효한지 확인 | - 발급된 라이선스와 입력 값이 동일한지 확인 - 연동 앱 관리 메뉴에서 발급된 라이선스의 사용 여부 확인 |
keyCheck | SCI 서버와 연동된 필수 키 데이터 확인 | - 키볼트(KMS) 서비스가 정상 동작 하는지 확인 - SCI 서버에 DS_CUSTOM_HEADER_KEY, DS_KEY_ENCRYPTION_KEY 커스텀 정책 등록 및 최상위 부서에 적용 여부 확인 - 커스텀 정책 등록 후 키 연동 재실행 필요 |
azureInfoCheck | Azure 관련 필수 설정 값 존재 여부 확인 | - SDF 컨피그맵의 SHIELD ID 연결 정보 확인(네임스페이스 등) - SHIELD ID 서비스가 정상 동작 하는지 확인 - SHIELD ID에 등록된 회사의 Microsoft Azure Tenant Id 입력값 확인 - SKMS 컨피그맵의 AZURE_INFO 입력 여부 확인 |
azureInfoValidCheck | Azure 토큰 발급 가능 여부 확인 | - SKMS 컨피그맵의 AZURE_INFO 정보로 SHIELD ID에 등록된 회사의 Microsoft Azure Tenant Id에서 사용 가능한 토큰 발급 실패 - Azure 관련 필수 설정 값이 유효한 값인지 확인 필요 - Azure 통신 과정에서 SSL 인증서 관련 이슈 확인(루트 인증서로 검증) |
응답 Data(JSON 타입) 샘플
- 성공
{
"code": 0,
"healthCheck": {
"result": "success",
"SKMS_API_URL": "http://127.0.0.1:8080"
},
"licenseCheck": {
"result": "success",
"companyId": "3CJ55MSE-xLO7Sxt4-qUBKzbcs-XP2cgGEq",
"systemDomain": "test.com"
},
"keyCheck": {
"result": "success",
"customHeaderKey": "AVdos*******************",
"dsHeaderKey": "UngyY*******************",
"dsKeyEncryptionKey": "CwI3F*******************",
"masterKey": "UldoZ*******************"
},
"azureInfoCheck": {
"result": "success",
"appId": "7e82e*******************************",
"appSecret": "LBd8Q***********************************",
"azureTenantId": "4d615*******************************"
},
"azureInfoValidCheck": {
"result": "success"
}
}
- 실패
- healthCheck 실패
{
"code": -1,
"healthCheck": {
"result": "failed",
"error": "I/O error on GET request for \"http://127.0.0.1:8180/api/healthCheck.do\": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect"
},
"licenseCheck": "failed",
"keyCheck": "failed",
"azureInfoCheck": "failed",
"azureInfoValidCheck": "failed"
}
- licenseCheck 실패
{
"code": -1,
"healthCheck": {
"result": "success",
"SKMS_API_URL": "http://127.0.0.1:8080"
},
"licenseCheck": {
"result": "failed",
"error": "{\"code\":40108,\"message\":\"Unavailable License\",\"detail\":\"[ 246D-7AAF3-E2FA-DF7B8 ] is not available.\"}" // 미사용 라이선스
// "error": "{\"code\":40107,\"message\":\"No matching license found\",\"detail\":\"License skms_connector_info information is empty.\"}" // 존재하지 않는 라이선스
},
"keyCheck": "failed",
"azureInfoCheck": "failed",
"azureInfoValidCheck": "failed"
}
- keyCheck 실패
{
"code": -1,
"healthCheck": {
"result": "success",
"SKMS_API_URL": "http://127.0.0.1:8080"
},
"licenseCheck": {
"result": "success",
"companyId": "7FDKQsEK-QVGKyXA2-fx1LxIzy-SNIre0s9",
"systemDomain": "http://test.com"
},
"keyCheck": {
"result": "failed",
"error": "{\"code\":40110,\"message\":\"HeaderKey is Empty\",\"detail\":\"I/O error on GET request for \\\"https://devkms.softcamp.co.kr:444/drm/7FDKQsEK-QVGKyXA2-fx1LxIzy-SNIre0s9/key/DDTCODE_CHK\\\": Connect to devkms.softcamp.co.kr:444 [devkms.softcamp.co.kr/10.14.10.171] failed: Connection timed out: connect; nested exception is org.apache.http.conn.HttpHostConnectException: Connect to devkms.softcamp.co.kr:444 [devkms.softcamp.co.kr/10.14.10.171] failed: Connection timed out: connect\"}" // 키볼트 연결 실패
// "error": "{\"code\":40110,\"message\":\"HeaderKey is Empty\",\"detail\":\"HeaderKey is Empty\"}" // 헤더키 없음
// "error": "{\"code\":40111,\"message\":\"EncryptionKey is Empty\",\"detail\":\"DS_KEY_ENCRYPTION_KEY is Empty\"}" // dsKeyEncryptionKey 없음
// "error": "500 : \"{\"code\":50001,\"message\":\"An unexpected error has occurred in the internal system\",\"detail\":\"JSONArray[0] is not a JSONObject.\"}\"" // 마스터키 없음
},
"azureInfoCheck": "failed",
"azureInfoValidCheck": "failed"
}
- azureInfoCheck 실패
{
"code": -1,
"healthCheck": {
"result": "success",
"SKMS_API_URL": "http://127.0.0.1:8080"
},
"licenseCheck": {
"result": "success",
"companyId": "7FDKQsEK-QVGKyXA2-fx1LxIzy-SNIre0s9",
"systemDomain": "http://test.com"
},
"keyCheck": {
"result": "success",
"customHeaderKey": "AVdos*******************",
"dsHeaderKey": "UngyY*******************",
"dsKeyEncryptionKey": "CwI3F*******************",
"masterKey": "UldoZ*******************"
},
"azureInfoCheck": {
"result": "failed",
"error": "400 : \"{\"code\":40011,\"message\":\"Unable to AzureInfo\",\"detail\":\"AzureInfo is incorrect\"}\"" // AZURE_INFO 없음
// "error": "400 : \"{\"code\":40011,\"message\":\"Unable to AzureInfo\",\"detail\":\"OpenidTenant is Empty\"}\"" // OpenidTenant 없음
// "error": "500 : \"{\"code\":50001,\"message\":\"An unexpected error has occurred in the internal system\",\"detail\":\"I/O error on GET request for \\\"https://devlogin.softcamp.co.kr:444/SCCloudOAuthService/uFhoVIZI-wni6zwDS-E6xGXPqT-m2ms8GWh/company/getCompanyInfo\\\": Connect to devlogin.softcamp.co.kr:444 [devlogin.softcamp.co.kr/10.14.10.163] failed: Connection timed out: connect; nested exception is org.apache.http.conn.HttpHostConnectException: Connect to devlogin.softcamp.co.kr:444 [devlogin.softcamp.co.kr/10.14.10.163] failed: Connection timed out: connect\"}\"" // SHIELD ID 연결 실패
},
"azureInfoValidCheck": "failed"
}
- azureInfoValidCheck 실패
{
"code": -1,
"healthCheck": {
"result": "success",
"SKMS_API_URL": "http://127.0.0.1:8080"
},
"licenseCheck": {
"result": "success",
"companyId": "eM6JucXm-1MNaDnZr-d51UJULP-hL8ouPxo",
"systemDomain": "http://test.com"
},
"keyCheck": {
"result": "success",
"customHeaderKey": "AVdos*******************",
"dsHeaderKey": "AVdos*******************",
"dsKeyEncryptionKey": "CwI3F*******************",
"masterKey": "UldoZ*******************"
},
"azureInfoCheck": {
"result": "success",
"appId": "7e82e*******************************",
"appSecret": "LBd8Q***********************************",
"azureTenantId": "4d615*******************************"
},
"azureInfoValidCheck": {
"result": "failed",
"error": "com.microsoft.informationprotection.internal.gen.Error: NoAuthTokenError: Client application failed to provide authentication token for HTTP request., CorrelationId=200476a9-aba3-4bb6-a174-5389a1a24aca, CorrelationId.Description=PolicyProfile"
}
}
등록된 키 데이터 및 라이선스를 사용한 암복호화 테스트
EnDec(SKMS) 암복호화 테스트 페이지 접속
- licenseKey : 발급 받은 라이선스 입력
- encType : 암호화 방식 입력 (M / D / G)
- docList : 키 아이디 및 권한 입력
- M : 0000001
- D : SECURITYDOMAIN^111001100
- G : 0000001|SECURITYDOMAIN^111001100