본문으로 건너뛰기

4. 사용자 그룹 권한관리

이 장에서 하는 일

사용자 그룹과 권한을 API 로 관리합니다. 조회뿐 아니라 등록·변경·삭제까지 할 수 있습니다.

언제 쓰나 — 사내 인사 시스템이나 계정 관리 도구와 연동해 입·퇴사나 부서 이동을 APM 계정에 자동으로 반영할 때 씁니다. 사용자가 몇 명뿐이라면 콘솔 화면에서 직접 관리하는 편이 간단합니다.

변경 API 는 되돌리기 어렵습니다

등록·변경·삭제는 즉시 반영되며 이력이 남지 않습니다. 연동 프로그램을 만들 때는 시험 환경에서 먼저 확인하십시오.

사용자 그룹 관리

조회

등록된 사용자 그룹 목록을 받아 옵니다. 그룹 이름은 뒤의 권한 관리 API 에서 대상을 가리키는 데 씁니다.

항목설명
URL/monitoring/api/userGroups
URL 요청 예시/monitoring/api/userGroups
HTTP METHODGET
Content-Typeapplication/json; charset=UTF-8
Body
Response응답내용은 아래에
* type
· APP - Built-in Group Name
· APP_USER - User Defined Group Name
· WEB – Web Server Ip Address
· SYS – System IP Address
· SVC_CHK - Service Health Check

응답내용

{
"status": 200,
"result": [
{
"groupId": "admin",
"description": "관리자 그룹",
"delete": false,
"registered": 1502182126875,
"updated": 1534510452364,
"metricPatterns": null,
"metricPatternsList": []
},
{
"groupId": "users",
"description": "사용자 그룹",
"delete": false,
"registered": 1502182126871,
"updated": 1534510452375,
"metricPatterns": [ <-- 권한 정보
{
"uuid": "26A1578B-F5EE-4475-8946-03994D37BB46",
"type": "APP", <-- Build-in Group Name
"name": "All Group",
"pattern": ".*"
},
{
"uuid": "A967B8D9-AD1D-4E49-91E9-BF3AAD49EA31",
"type": "WEB", <-- Web Server IP Address
"name": "WebServer All",
"pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
},
{
"uuid": "CEC2FC94-FBE8-4A84-8920-972D4E3B693C",
"type": "SYS", <-- System IP Address
"name": "System All",
"pattern": "^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
}
],
}
]
}

등록

새 사용자 그룹을 만듭니다. 그룹만 만들면 권한이 없으므로, 이어서 그룹 권한 관리로 볼 수 있는 대상을 지정합니다.

항목설명
URL/monitoring/api/userGroup
URL 요청 예시/monitoring/api/userGroup
HTTP METHODPOST
Content-Typeapplication/json; charset=UTF-8
Body[{"groupId": "testGroups", "description": "테스트 그룹"}]
Response{ "status": 200 }

수정

그룹 이름과 설명을 바꿉니다. 소속 사용자와 권한은 그대로 남습니다.

항목설명
URL/monitoring/api/userGroup
URL 요청 예시/monitoring/api/userGroup
HTTP METHODPUT
Content-Typeapplication/json; charset=UTF-8
Body{"groupId": "testGroups", "description": " 테스트 그룹 33"}
Response{ "status": 200 }

삭제

그룹을 지웁니다. 그 그룹에만 속한 사용자는 아무것도 볼 수 없게 됩니다 — 지우기 전에 사용자를 다른 그룹으로 옮기십시오.

항목설명
URL/monitoring/api/userGroup/{그룹 아이디}
URL 요청 예시/monitoring/api/userGroup/testGroups
HTTP METHODDELETE
Content-Typeapplication/json; charset=UTF-8
Body
Response{ "status": 200 }

그룹 권한 관리

등록

그룹이 볼 수 있는 대상을 더합니다. 애플리케이션 그룹·웹 서버·시스템을 종류(type)로 구분해 지정합니다.

항목설명
URL/monitoring/api/userGroup/metricPattern/{그룹 아이디}
URL 요청 예시/monitoring/api/userGroup/metricPattern/testGroups
HTTP METHODPOST
Content-Typeapplication/json; charset=UTF-8
Body{type: "APP", name: "eap64 app", pattern: "^eap64.*"}
* type
· APP - Built-in Group Name
· APP_USER - User Defined Group Name
· WEB – Web Server Ip Address
· SYS – System IP Address
· SVC_CHK - Service Health Check
Response{ "status": 200 }

수정

이미 준 권한의 대상 목록을 통째로 바꿉니다. 더하는 것이 아니라 덮어쓰기라, 남길 대상도 함께 보내야 합니다.

항목설명
URL/monitoring/api/userGroup/metricPattern/{그룹 아이디}
URL 요청 예시/monitoring/api/userGroup/metricPattern/testGroups
HTTP METHODPUT
Content-Typeapplication/json; charset=UTF-8
Body{type: "APP", name: "eap64 app 11", pattern: "^eap64-11.*"}
* type
· APP - Built-in Group Name
· APP_USER - User Defined Group Name
· WEB – Web Server Ip Address
· SYS – System IP Address
· SVC_CHK - Service Health Check
Response{ "status": 200 }

삭제

권한을 거둡니다. 그룹 자체는 남습니다.

항목설명
URL/monitoring/api/userGroup/metricPattern/{그룹 아이디}
URL 요청 예시/monitoring/api/userGroup/metricPattern/testGroups
HTTP METHODDELETE
Content-Typeapplication/json; charset=UTF-8
Body["6EFA1F39-6675-4F24-9C22-D19CDEC055AD"]
Response{ "status": 200 }