DBSAFER 클라우드 관리 API

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

Table 1. /dbsafer/api/v1/cloud/{cloudServiceProvider}/regions
Parameter Description

cloudServiceProvider

클라우드 서비스 공급자

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

results.[]

Array

리전 명

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

Table 1. /dbsafer/api/v1/cloud/{cloudServiceProvider}/credential-verification
Parameter Description

cloudServiceProvider

클라우드 서비스 공급자

1.2.3. Request fields

Name Type Description Required

region.[]

Array

클라우드 리전

type

String

클라우드 크리덴셜 유형

info1

String

클라우드 크리덴셜 정보1

info2

String

클라우드 크리덴셜 정보2

info3

String

클라우드 크리덴셜 정보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

index

Number

고유 식별값

result

Boolean

결과 성공여부

resultMessage

String

결과 메시지

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&region=%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

name

(검색조건) 프로필 명

cloudType

(검색조건) 클라우드 유형

region

(검색조건) 클라우드 리전

credentialType

(검색조건) 클라우드 크리덴셜 유형

managerId

(검색조건) 관리자 계정 ID

enabled

(검색조건) 프로필 사용 여부

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

results.[].index

Number

프로필 Index

results.[].cloudType.key

String

클라우드 유형 (요청 데이터)

results.[].cloudType.value

String

클라우드 유형 (출력 데이터)

results.[].name

String

프로필 명

results.[].cloudCredential.region.[]

Array

클라우드 리전

results.[].cloudCredential.type.key

String

클라우드 크리덴셜 유형 (요청 데이터)

results.[].cloudCredential.type.value

String

클라우드 크리덴셜 유형 (출력 데이터)

results.[].cloudCredential.info1

String

클라우드 크리덴셜 정보1

results.[].cloudCredential.info2

String

클라우드 크리덴셜 정보2

results.[].cloudCredential.info3

String

클라우드 크리덴셜 정보3

results.[].managerId

String

관리자 계정 ID

results.[].mode.key

String

프로필 동작 유형 (요청 데이터)

results.[].mode.value

String

프로필 동작 유형 (출력 데이터)

results.[].enabled

Boolean

프로필 사용 여부

results.[].updateTime

String

프로필 갱신 시간

2.1.5. Curl request

$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/profiles?name=profile_name&cloudType=AWS&region=%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

Table 1. /dbsafer/api/v1/cloud/profiles/{index}
Parameter Description

index

프로필 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

Number

프로필 Index

cloudType.key

String

클라우드 유형 (요청 데이터)

cloudType.value

String

클라우드 유형 (출력 데이터)

name

String

프로필 명

cloudCredential.region.[]

Array

클라우드 리전

cloudCredential.type.key

String

클라우드 크리덴셜 유형 (요청 데이터)

cloudCredential.type.value

String

클라우드 크리덴셜 유형 (출력 데이터)

cloudCredential.info1

String

클라우드 크리덴셜 정보1

cloudCredential.info2

String

클라우드 크리덴셜 정보2

cloudCredential.info3

String

클라우드 크리덴셜 정보3

managerId

String

관리자 계정 ID

mode.key

String

프로필 동작 유형 (요청 데이터)

mode.value

String

프로필 동작 유형 (출력 데이터)

enabled

Boolean

프로필 사용 여부

updateTime

String

프로필 갱신 시간

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

cloudType

String

클라우드 유형

name

String

프로필 명

cloudCredential.region.[]

Array

클라우드 리전

cloudCredential.type

String

클라우드 크리덴셜 유형

cloudCredential.info1

String

클라우드 크리덴셜 정보1

cloudCredential.info2

String

클라우드 크리덴셜 정보2 (암호 키로 암호화)

cloudCredential.info3

String

클라우드 크리덴셜 정보3 (암호 키로 암호화)

managerId

String

관리자 계정 ID

mode

String

프로필 동작 유형

enabled

Boolean

프로필 사용 여부

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

Number

프로필 Index

cloudType.key

String

클라우드 유형 (요청 데이터)

cloudType.value

String

클라우드 유형 (출력 데이터)

name

String

프로필 명

cloudCredential.region.[]

Array

클라우드 리전

cloudCredential.type.key

String

클라우드 크리덴셜 유형 (요청 데이터)

cloudCredential.type.value

String

클라우드 크리덴셜 유형 (출력 데이터)

cloudCredential.info1

String

클라우드 크리덴셜 정보1

cloudCredential.info2

String

클라우드 크리덴셜 정보2

cloudCredential.info3

String

클라우드 크리덴셜 정보3

managerId

String

관리자 계정 ID

mode.key

String

프로필 동작 유형 (요청 데이터)

mode.value

String

프로필 동작 유형 (출력 데이터)

enabled

Boolean

프로필 사용 여부

updateTime

String

프로필 갱신 시간

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

Table 1. /dbsafer/api/v1/cloud/profiles/{index}
Parameter Description

index

프로필 Index

2.4.3. Request fields

Name Type Description Required

cloudType

String

클라우드 유형

name

String

프로필 명

cloudCredential.region.[]

Array

클라우드 리전

cloudCredential.type

String

클라우드 크리덴셜 유형

cloudCredential.info1

String

클라우드 크리덴셜 정보1

cloudCredential.info2

String

클라우드 크리덴셜 정보2 (암호 키로 암호화)

cloudCredential.info3

String

클라우드 크리덴셜 정보3 (암호 키로 암호화)

managerId

String

관리자 계정 ID

mode

String

프로필 동작 유형

enabled

Boolean

프로필 사용 여부

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

Number

프로필 Index

cloudType.key

String

클라우드 유형 (요청 데이터)

cloudType.value

String

클라우드 유형 (출력 데이터)

name

String

프로필 명

cloudCredential.region.[]

Array

클라우드 리전

cloudCredential.type.key

String

클라우드 크리덴셜 유형 (요청 데이터)

cloudCredential.type.value

String

클라우드 크리덴셜 유형 (출력 데이터)

cloudCredential.info1

String

클라우드 크리덴셜 정보1

cloudCredential.info2

String

클라우드 크리덴셜 정보2

cloudCredential.info3

String

클라우드 크리덴셜 정보3

managerId

String

관리자 계정 ID

mode.key

String

프로필 동작 유형 (요청 데이터)

mode.value

String

프로필 동작 유형 (출력 데이터)

enabled

Boolean

프로필 사용 여부

updateTime

String

프로필 갱신 시간

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

Table 1. /dbsafer/api/v1/cloud/profiles/{index}
Parameter Description

index

프로필 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

cloudProfileIndex

(검색조건) 클라우드 프로필 Index

name

(검색조건) 클라우드 서비스명

uuid

(검색조건) 클라우드 서비스 고유식별값

mainType

(검색조건) 클라우드 서비스 메인 유형

subType

(검색조건) 클라우드 서비스 서브 유형

domain

(검색조건) 클라우드 서비스 도메인

status

(검색조건) 클라우드 서비스 상태

enabled

(검색조건) 리소스 보안 대상 여부

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

results.[].index

Number

리소스 Index

results.[].cloudService.index

Number

클라우드 서비스 Index

results.[].cloudService.name

String

클라우드 서비스명

results.[].cloudService.uuid

String

클라우드 서비스 고유식별값

results.[].cloudService.mainType.key

String

클라우드 서비스 메인 유형 (요청 데이터)

results.[].cloudService.mainType.value

String

클라우드 서비스 메인 유형 (출력 데이터)

results.[].cloudService.subType.key

String

클라우드 서비스 서브 유형 (요청 데이터)

results.[].cloudService.subType.value

String

클라우드 서비스 서브 유형 (출력 데이터)

results.[].cloudService.domain

String

클라우드 서비스 도메인

results.[].cloudService.publicIp

String

클라우드 서비스 공인 IP

results.[].cloudService.privateIp

String

클라우드 서비스 사설 IP

results.[].cloudService.spec

String

클라우드 서비스 스펙

results.[].cloudService.status.key

String

클라우드 서비스 상태 (요청 데이터)

results.[].cloudService.status.value

String

클라우드 서비스 상태 (출력 데이터)

results.[].enabled

Boolean

리소스 보안 대상 여부

results.[].updateTime

String

리소스 갱신 시간

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

Table 1. /dbsafer/api/v1/cloud/resources/{index}
Parameter Description

index

리소스 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

Number

리소스 Index

cloudService.index

Number

클라우드 서비스 Index

cloudService.name

String

클라우드 서비스명

cloudService.uuid

String

클라우드 서비스 고유식별값

cloudService.mainType.key

String

클라우드 서비스 메인 유형 (요청 데이터)

cloudService.mainType.value

String

클라우드 서비스 메인 유형 (출력 데이터)

cloudService.subType.key

String

클라우드 서비스 서브 유형 (요청 데이터)

cloudService.subType.value

String

클라우드 서비스 서브 유형 (출력 데이터)

cloudService.domain

String

클라우드 서비스 도메인

cloudService.publicIp

String

클라우드 서비스 공인 IP

cloudService.privateIp

String

클라우드 서비스 사설 IP

cloudService.spec

String

클라우드 서비스 스펙

cloudService.status.key

String

클라우드 서비스 상태 (요청 데이터)

cloudService.status.value

String

클라우드 서비스 상태 (출력 데이터)

enabled

Boolean

리소스 보안 대상 여부

updateTime

String

리소스 갱신 시간

3.2.5. Curl request

$ curl 'https://localhost:3182/dbsafer/api/v1/cloud/resources/1' -i -X GET \
    -H 'Accept: application/json'

(주)피앤피시큐어

대표이사   박천오

대표번호   1670-9295          영업문의   sales@pnpsecure.com

사업자등록번호   107-86-44093

서울특별시 강서구 마곡서로 182(마곡동, 피앤피스테이션)


Copyright ⓒ 2023 pnpsecure All rights reserved. |개인정보 처리방침