DBSAFER 클라우드(프로필/리소스/DBSAFER 서비스) 관리 API를 소개합니다.
1. 사전 정보 관리
1.1. 리전 목록 조회
클라우드 서비스 공급자별 리전 목록을 조회하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
1.1.1. HTTP request
GET /dbsafer/api/v1/cloud/AWS/regions HTTP/1.1
Accept: application/json
Host: localhost:3182
1.1.2. Path parameters
Parameter | Description |
---|---|
|
클라우드 서비스 공급자 |
1.1.3. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 56
{
"results" : [ "ap-northeast-1", "ap-northeast-2" ]
}
1.1.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
리전 명 |
○ |
1.1.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/AWS/regions' -i -X GET \
-H 'Accept: application/json'
1.2. 크리덴셜 정보 검증
클라우드 서비스 공급자별 크리덴셜 정보를 검증하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
1.2.1. HTTP request
POST /dbsafer/api/v1/cloud/AWS/credential-verification HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 150
Host: localhost:3182
{
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
}
1.2.2. Path parameters
Parameter | Description |
---|---|
|
클라우드 서비스 공급자 |
1.2.3. Request fields
Name | Type | Description | Required |
---|---|---|---|
|
|
클라우드 리전 |
|
|
|
클라우드 크리덴셜 유형 |
○ |
|
|
클라우드 크리덴셜 정보1 |
○ |
|
|
클라우드 크리덴셜 정보2 |
|
|
|
클라우드 크리덴셜 정보3 |
1.2.4. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 77
{
"result" : true,
"resultMessage" : "Credential validation succeeded."
}
1.2.5. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
고유 식별값 |
|
|
|
결과 성공여부 |
○ |
|
|
결과 메시지 |
1.2.6. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/AWS/credential-verification' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
}'
2. 프로필 관리
2.1. 프로필 목록 조회
등록된 프로필 목록을 조회하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
2.1.1. HTTP request
GET /dbsafer/api/v1/cloud/profiles?name=profile_name&cloudType=AWS®ion=%5Bap-northeast-1,%20ap-northeast-2%5D&credentialType=AWS_IAM&managerId=admin&enabled=true HTTP/1.1
Accept: application/json
Host: localhost:3182
2.1.2. Request parameters
Parameter | Description |
---|---|
|
(검색조건) 프로필 명 |
|
(검색조건) 클라우드 유형 |
|
(검색조건) 클라우드 리전 |
|
(검색조건) 클라우드 크리덴셜 유형 |
|
(검색조건) 관리자 계정 ID |
|
(검색조건) 프로필 사용 여부 |
2.1.3. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 551
{
"results" : [ {
"index" : 1,
"cloudType" : {
"key" : "AWS",
"value" : "AWS"
},
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : {
"key" : "AWS_IAM",
"value" : "IAM"
},
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : {
"key" : "AUTO",
"value" : "Auto"
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:02"
} ]
}
2.1.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
프로필 Index |
○ |
|
|
클라우드 유형 (요청 데이터) |
○ |
|
|
클라우드 유형 (출력 데이터) |
○ |
|
|
프로필 명 |
○ |
|
|
클라우드 리전 |
○ |
|
|
클라우드 크리덴셜 유형 (요청 데이터) |
○ |
|
|
클라우드 크리덴셜 유형 (출력 데이터) |
○ |
|
|
클라우드 크리덴셜 정보1 |
○ |
|
|
클라우드 크리덴셜 정보2 |
○ |
|
|
클라우드 크리덴셜 정보3 |
○ |
|
|
관리자 계정 ID |
○ |
|
|
프로필 동작 유형 (요청 데이터) |
○ |
|
|
프로필 동작 유형 (출력 데이터) |
○ |
|
|
프로필 사용 여부 |
○ |
|
|
프로필 갱신 시간 |
○ |
2.1.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles?name=profile_name&cloudType=AWS®ion=%5Bap-northeast-1,%20ap-northeast-2%5D&credentialType=AWS_IAM&managerId=admin&enabled=true' -i -X GET \
-H 'Accept: application/json'
2.2. 프로필 조회
등록된 프로필 조회하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
2.2.1. HTTP request
GET /dbsafer/api/v1/cloud/profiles/1 HTTP/1.1
Accept: application/json
Host: localhost:3182
2.2.2. Path parameters
Parameter | Description |
---|---|
|
프로필 Index |
2.2.3. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 481
{
"index" : 1,
"cloudType" : {
"key" : "AWS",
"value" : "AWS"
},
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : {
"key" : "AWS_IAM",
"value" : "IAM"
},
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : {
"key" : "AUTO",
"value" : "Auto"
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:02"
}
2.2.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
프로필 Index |
○ |
|
|
클라우드 유형 (요청 데이터) |
○ |
|
|
클라우드 유형 (출력 데이터) |
○ |
|
|
프로필 명 |
○ |
|
|
클라우드 리전 |
○ |
|
|
클라우드 크리덴셜 유형 (요청 데이터) |
○ |
|
|
클라우드 크리덴셜 유형 (출력 데이터) |
○ |
|
|
클라우드 크리덴셜 정보1 |
○ |
|
|
클라우드 크리덴셜 정보2 |
○ |
|
|
클라우드 크리덴셜 정보3 |
○ |
|
|
관리자 계정 ID |
○ |
|
|
프로필 동작 유형 (요청 데이터) |
○ |
|
|
프로필 동작 유형 (출력 데이터) |
○ |
|
|
프로필 사용 여부 |
○ |
|
|
프로필 갱신 시간 |
○ |
2.2.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles/1' -i -X GET \
-H 'Accept: application/json'
2.3. 프로필 추가
신규 프로필을 추가하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
2.3.1. HTTP request
POST /dbsafer/api/v1/cloud/profiles HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 302
Host: localhost:3182
{
"cloudType" : "AWS",
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : "AUTO",
"enabled" : true
}
2.3.2. Request fields
Name | Type | Description | Required |
---|---|---|---|
|
|
클라우드 유형 |
○ |
|
|
프로필 명 |
○ |
|
|
클라우드 리전 |
|
|
|
클라우드 크리덴셜 유형 |
○ |
|
|
클라우드 크리덴셜 정보1 |
|
|
|
클라우드 크리덴셜 정보2 (암호 키로 암호화) |
|
|
|
클라우드 크리덴셜 정보3 (암호 키로 암호화) |
|
|
|
관리자 계정 ID |
|
|
|
프로필 동작 유형 |
○ |
|
|
프로필 사용 여부 |
○ |
2.3.3. HTTP response
HTTP/1.1 201 Created
Location: http://localhost:8080/dbsafer/api/v1/cloud/profiles/1
Content-Type: application/json
Content-Length: 481
{
"index" : 1,
"cloudType" : {
"key" : "AWS",
"value" : "AWS"
},
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : {
"key" : "AWS_IAM",
"value" : "IAM"
},
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : {
"key" : "AUTO",
"value" : "Auto"
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:02"
}
2.3.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
프로필 Index |
○ |
|
|
클라우드 유형 (요청 데이터) |
○ |
|
|
클라우드 유형 (출력 데이터) |
○ |
|
|
프로필 명 |
○ |
|
|
클라우드 리전 |
○ |
|
|
클라우드 크리덴셜 유형 (요청 데이터) |
○ |
|
|
클라우드 크리덴셜 유형 (출력 데이터) |
○ |
|
|
클라우드 크리덴셜 정보1 |
○ |
|
|
클라우드 크리덴셜 정보2 |
○ |
|
|
클라우드 크리덴셜 정보3 |
○ |
|
|
관리자 계정 ID |
○ |
|
|
프로필 동작 유형 (요청 데이터) |
○ |
|
|
프로필 동작 유형 (출력 데이터) |
○ |
|
|
프로필 사용 여부 |
○ |
|
|
프로필 갱신 시간 |
○ |
2.3.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"cloudType" : "AWS",
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : "AUTO",
"enabled" : true
}'
2.4. 프로필 수정
등록된 프로필을 수정하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
2.4.1. HTTP request
PUT /dbsafer/api/v1/cloud/profiles/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 302
Host: localhost:3182
{
"cloudType" : "AWS",
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : "AUTO",
"enabled" : true
}
2.4.2. Path parameters
Parameter | Description |
---|---|
|
프로필 Index |
2.4.3. Request fields
Name | Type | Description | Required |
---|---|---|---|
|
|
클라우드 유형 |
|
|
|
프로필 명 |
|
|
|
클라우드 리전 |
|
|
|
클라우드 크리덴셜 유형 |
|
|
|
클라우드 크리덴셜 정보1 |
|
|
|
클라우드 크리덴셜 정보2 (암호 키로 암호화) |
|
|
|
클라우드 크리덴셜 정보3 (암호 키로 암호화) |
|
|
|
관리자 계정 ID |
|
|
|
프로필 동작 유형 |
|
|
|
프로필 사용 여부 |
2.4.4. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 481
{
"index" : 1,
"cloudType" : {
"key" : "AWS",
"value" : "AWS"
},
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : {
"key" : "AWS_IAM",
"value" : "IAM"
},
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : {
"key" : "AUTO",
"value" : "Auto"
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:02"
}
2.4.5. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
프로필 Index |
○ |
|
|
클라우드 유형 (요청 데이터) |
○ |
|
|
클라우드 유형 (출력 데이터) |
○ |
|
|
프로필 명 |
○ |
|
|
클라우드 리전 |
○ |
|
|
클라우드 크리덴셜 유형 (요청 데이터) |
○ |
|
|
클라우드 크리덴셜 유형 (출력 데이터) |
○ |
|
|
클라우드 크리덴셜 정보1 |
○ |
|
|
클라우드 크리덴셜 정보2 |
○ |
|
|
클라우드 크리덴셜 정보3 |
○ |
|
|
관리자 계정 ID |
○ |
|
|
프로필 동작 유형 (요청 데이터) |
○ |
|
|
프로필 동작 유형 (출력 데이터) |
○ |
|
|
프로필 사용 여부 |
○ |
|
|
프로필 갱신 시간 |
○ |
2.4.6. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles/1' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"cloudType" : "AWS",
"name" : "profile_name",
"cloudCredential" : {
"region" : [ "ap-northeast-1", "ap-northeast-2" ],
"type" : "AWS_IAM",
"info1" : "access_key",
"info2" : "secret_key",
"info3" : "token"
},
"managerId" : "admin",
"mode" : "AUTO",
"enabled" : true
}'
2.5. 프로필 삭제
등록된 프로필을 삭제하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
2.5.1. HTTP request
DELETE /dbsafer/api/v1/cloud/profiles/1 HTTP/1.1
Host: localhost:3182
2.5.2. Path parameters
Parameter | Description |
---|---|
|
프로필 Index |
2.5.3. HTTP response
HTTP/1.1 204 No Content
2.5.4. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles/1' -i -X DELETE
3. 리소스 관리
3.1. 리소스 목록 조회
등록된 리소스 목록을 조회하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
3.1.1. HTTP request
GET /dbsafer/api/v1/cloud/resources?cloudProfileIndex=1&name=resource-name-1&uuid=resource-uuid-1&mainType=RDS_INSTANCE&subType=MYSQL&domain=db1.ap-northeast-2.rds.amazon.com&status=START&enabled=true HTTP/1.1
Accept: application/json
Host: localhost:3182
3.1.2. Request parameters
Parameter | Description |
---|---|
|
(검색조건) 클라우드 프로필 Index |
|
(검색조건) 클라우드 서비스명 |
|
(검색조건) 클라우드 서비스 고유식별값 |
|
(검색조건) 클라우드 서비스 메인 유형 |
|
(검색조건) 클라우드 서비스 서브 유형 |
|
(검색조건) 클라우드 서비스 도메인 |
|
(검색조건) 클라우드 서비스 상태 |
|
(검색조건) 리소스 보안 대상 여부 |
3.1.3. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 622
{
"results" : [ {
"index" : 1,
"cloudService" : {
"index" : 1,
"name" : "resource-name-1",
"uuid" : "resource-uuid-1",
"mainType" : {
"key" : "RDS_INSTANCE",
"value" : "RDS Instance"
},
"subType" : {
"key" : "MYSQL",
"value" : "MySQL"
},
"domain" : "db1.ap-northeast-2.rds.amazon.com",
"publicIp" : "1.1.1.1",
"privateIp" : "2.2.2.2",
"spec" : "db.t2.micro",
"status" : {
"key" : "START",
"value" : "Start"
}
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:03"
} ]
}
3.1.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
리소스 Index |
○ |
|
|
클라우드 서비스 Index |
○ |
|
|
클라우드 서비스명 |
○ |
|
|
클라우드 서비스 고유식별값 |
○ |
|
|
클라우드 서비스 메인 유형 (요청 데이터) |
○ |
|
|
클라우드 서비스 메인 유형 (출력 데이터) |
○ |
|
|
클라우드 서비스 서브 유형 (요청 데이터) |
○ |
|
|
클라우드 서비스 서브 유형 (출력 데이터) |
○ |
|
|
클라우드 서비스 도메인 |
○ |
|
|
클라우드 서비스 공인 IP |
○ |
|
|
클라우드 서비스 사설 IP |
○ |
|
|
클라우드 서비스 스펙 |
○ |
|
|
클라우드 서비스 상태 (요청 데이터) |
○ |
|
|
클라우드 서비스 상태 (출력 데이터) |
○ |
|
|
리소스 보안 대상 여부 |
○ |
|
|
리소스 갱신 시간 |
○ |
3.1.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/resources?cloudProfileIndex=1&name=resource-name-1&uuid=resource-uuid-1&mainType=RDS_INSTANCE&subType=MYSQL&domain=db1.ap-northeast-2.rds.amazon.com&status=START&enabled=true' -i -X GET \
-H 'Accept: application/json'
3.2. 리소스 조회
등록된 리소스 조회하는 API를 소개합니다. 상세 내용은 아래를 참고합니다.
3.2.1. HTTP request
GET /dbsafer/api/v1/cloud/resources/1 HTTP/1.1
Accept: application/json
Host: localhost:3182
3.2.2. Path parameters
Parameter | Description |
---|---|
|
리소스 Index |
3.2.3. HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 550
{
"index" : 1,
"cloudService" : {
"index" : 1,
"name" : "resource-name-1",
"uuid" : "resource-uuid-1",
"mainType" : {
"key" : "RDS_INSTANCE",
"value" : "RDS Instance"
},
"subType" : {
"key" : "MYSQL",
"value" : "MySQL"
},
"domain" : "db1.ap-northeast-2.rds.amazon.com",
"publicIp" : "1.1.1.1",
"privateIp" : "2.2.2.2",
"spec" : "db.t2.micro",
"status" : {
"key" : "START",
"value" : "Start"
}
},
"enabled" : true,
"updateTime" : "2024-05-10 13:53:03"
}
3.2.4. Response fields
Name | Type | Description | Required |
---|---|---|---|
|
|
리소스 Index |
○ |
|
|
클라우드 서비스 Index |
○ |
|
|
클라우드 서비스명 |
○ |
|
|
클라우드 서비스 고유식별값 |
○ |
|
|
클라우드 서비스 메인 유형 (요청 데이터) |
○ |
|
|
클라우드 서비스 메인 유형 (출력 데이터) |
○ |
|
|
클라우드 서비스 서브 유형 (요청 데이터) |
○ |
|
|
클라우드 서비스 서브 유형 (출력 데이터) |
○ |
|
|
클라우드 서비스 도메인 |
○ |
|
|
클라우드 서비스 공인 IP |
○ |
|
|
클라우드 서비스 사설 IP |
○ |
|
|
클라우드 서비스 스펙 |
○ |
|
|
클라우드 서비스 상태 (요청 데이터) |
○ |
|
|
클라우드 서비스 상태 (출력 데이터) |
○ |
|
|
리소스 보안 대상 여부 |
○ |
|
|
리소스 갱신 시간 |
○ |
3.2.5. Curl request
$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/resources/1' -i -X GET \
-H 'Accept: application/json'