CloudTrail > API 가이드

CloudTrail에 RESTful API를 호출해, 사용자가 설정한 조건에 맞는 이벤트를 조회할 수 있습니다.

URL & Appkey

CloudTrail API를 사용하려면 Appkey가 필요합니다. Appkey는 API 호출 시 요청 URL에 포함하여 특정 리소스를 가리키고 식별하는 데 사용됩니다.

Appkey 확인 및 사용에 대한 자세한 내용은 Appkey를 참고하세요.

User Access Key ID & Secret Access Key

CloudTrail API(2.0 버전 이후)를 사용하려면 User Access Key가 필요합니다. User Access Key는 NHN Cloud 계정 또는 IAM 계정을 기반으로 발급되는 인증 키로, Secret Access Key와 함께 사용하여 API 요청에 대한 인증 수단으로 활용됩니다.

User Access Key와 Secret Access Key는 콘솔의 API 보안 설정에서 발급할 수 있습니다. User Access Key 발급 및 사용에 대한 자세한 내용은 User Access Key를 참고하세요.

RESTful API 가이드

Common Response Body

모든 API 요청에 대해 HTTP 응답 코드는 200입니다. 자세한 응답 결과는 Response Body의 header 항목을 참고합니다.

{
    "header" : {
        "isSuccessful" : true,
        "resultCode": 0,
        "resultMessage" : "Success."
    }
}
Key Type Description
header Object 응답 헤더
header.isSuccessful boolean 성공 여부
header.resultCode int 응답 코드. 성공 시 0, 실패 시 오류 코드 반환
header.resultMessage String 응답 메시지. 성공 시 "SUCCESS", 실패 시 오류 메시지 반환

1. Event 조회(1.0)

  • 발생한 이벤트를 조회합니다.
  • 이벤트 조회 시, 사용자가 설정한 검색 조건으로 조회됩니다.
  • Request Body에 이 검색 조건을 포함해야 합니다.

[Method, URL]

Method URI
POST /cloud-trail/v1.0/appkeys/{appKey}/events/search

[Path Variable]

Key Value
appKey 콘솔에서 발급 받은 AppKey

[Request Body]

{
    "idNo" : "string",
    "member" : {
      "memberType" : "string",    /* TOAST, IAM 중 선택 */
      "userCode" : "string",      /* IAM member type일 경우 작성 */
      "emailAddress" : "string",   /* TOAST member type일 경우 작성 */
      "idNo" : "string" 
    },
    "eventId" : "string",
    "startDate": "2019-09-01T02:00:00.000Z",
    "endDate": "2019-09-12T03:13:00.000Z",
    "page": {
       "sortBy": "string",
       "limit": 20,
       "page": 0
    }
} 
  • member에 값을 지정하지 않으면 전체 이벤트 목록을 조회할 수 있습니다.
  • NHN Cloud memberType일 경우, emailAddress의 값은 필수이고, userCode의 값은 존재하지 않아야 합니다.
  • 반대로 IAM memberType일 경우, userCode의 값은 필수이고, emailAddress의 값은 존재하지 않아야 합니다.
  • idNo 값이 있을 경우, memberType과 userCode, emailAddress 값과 관계없이 우선으로 적용됩니다.
  • 이벤트 ID에 대한 자세한 정보는 매뉴얼을 참고합니다 : 링크
Key Type Required Description
idNo String X 이벤트를 발생시킨 회원 아이디 번호(UUID)
member Object X 이벤트를 발생시킨 회원
member.memberType String X 이벤트를 발생시킨 회원의 타입(NHN Cloud, IAM)
member.userCode String X 이벤트를 발생시킨 회원의 userCode(IAM 멤버일 경우)
member.emailAddress String X 이벤트를 발생시킨 회원의 이메일 주소(NHN Cloud 회원일 경우)
member.idNo String X 이벤트를 발생시킨 회원 IdNo(UUID)
eventId String O 조회할 이벤트의 ID
startDate Date O 조회할 기간의 시작 날짜
endDate Date O 조회할 기간의 끝나는 날짜
page Object O 조회 결과의 페이지 조건
page.sortBy String X 조회 결과의 사이즈 정렬 조건(ex. eventTime:desc, idNo:asc)
page.limit Integer O 조회 결과의 사이즈 조건(기본: 20, 최대 1000)
page.page Integer O 조회 결과의 페이지 중 조회할 페이지 조건

[Response Body]

{
    "header": {
        "resultCode": 0,
        "resultMessage": "SUCCESS",
        "isSuccessful": true
    },
    "page": {
        "content": [
            {
                "eventTime": "2019-11-01T10:31:49.348+0000",
                "userIdNo": "String",
                "userIp":"10.00.00.000",
                "userAgent":"ReactorNetty/0.8.4.RELEASE",
                "userName": "홍길동",
                "userId": "test_email@nhn.com",
                "eventSourceType": "API",
                "productId": "M0XnzOFE",
                "region": "String",
                "orgId": "String",
                "projectId": "String",
                "projectName": "String",
                "appKey": "String",
                "tenantId": "String",
                "eventId": "event_id.iam.member.role.update",
                "eventLogUuid": "17278c08-8338-4fd9-9693-931290adb9ec",
                "request": "{\n\t\"id\" : \"2\",\n\t\"productId\" : \"M0XnzOFE\",\n\t\"uuid\" : \"String\"\n\t\n}",
                "response": "{\"header\":{\"resultCode\":0,\"resultMessage\":\"SUCCESS\",\"isSuccessful\":true}}",
                "eventTarget": {
                    "targetMembers": [
                        {
                            "idNo": "String",
                            "name": "임꺽정",
                            "userCode": "test_user",
                            "emailAddress": "test_email2@nhn.com"
                        }
                    ]
                }
            }
        ]
    }
}
Key Type Description
eventTime Date 이벤트 발생 시간
userIdNo Object 이벤트를 발생시킨 회원의 UUID
userName String 이벤트를 발생시킨 회원의 이름
UserId String 이벤트를 발생시킨 회원의 ID(NHN Cloud 회원 계정일 경우 이메일 형식)
userIp String 이벤트를 발생시킨 회원의 IP
userAgent String 이벤트를 발생시킨 회원의 에이전트
eventSourceType String 이벤트를 발생시킨 주체의 타입
productId String 이벤트가 발생한 상품 ID
region String 이벤트가 발생한 리전
orgId String 이벤트가 발생한 조직 ID
projectId String 이벤트가 발생한 프로젝트 ID
projectName String 이벤트가 발생한 프로젝트 이름
appKey String 이벤트가 발생한 앱키
tenantId String 이벤트가 발생한 테넌트 ID
eventId String 이벤트 ID
eventLogUuid String 이벤트 로그 일련 번호(식별 키)
request String 발생한 이벤트의 요청 내용
response String 발생한 이벤트의 응답 내용
eventTarget Object 발생한 이벤트의 대상
eventTarget.targetMembers Object 발생한 이벤트의 대상 회원
targetMembers.idNo String 발생한 이벤트의 대상 회원의 UUID
targetMembers.name String 발생한 이벤트의 대상 회원의 이름
targetMembers.userCode Integer 발생한 이벤트의 대상 회원의 ID(IAM 멤버일 경우)
targetMembers.emailAddress String 발생한 이벤트의 대상 회원의 이메일 주소(NHN Cloud 회원일 경우)

2. Event 조회(2.0)

  • 발생한 이벤트를 조회합니다.
  • 이벤트 조회 시, 사용자가 설정한 검색 조건으로 조회됩니다.
  • Request Body에 이 검색 조건을 포함해야 합니다.

[필요한 권한] * CloudTrail:EventLog.List

[Method, URL]

Method URI
POST /cloud-trail/v2.0/appkeys/{appKey}/events/search

[HEADER]

Key Value
X-TC-AUTHENTICATION-ID 콘솔에서 발급 받은 User Access Key ID
X-TC-AUTHENTICATION-SECRET 콘솔에서 발급 받은 Secret Access Key

[Path Variable]

Key Value
appKey 콘솔에서 발급 받은 AppKey

[Request Body]

{
    "idNo" : "string",
    "member" : {
      "memberType" : "string",    /* TOAST, IAM 중 선택 */
      "userCode" : "string",      /* IAM member type일 경우 작성 */
      "emailAddress" : "string",   /* TOAST member type일 경우 작성 */
      "idNo" : "string" 
    },
    "eventId" : "string",
    "startDate": "2019-09-01T02:00:00.000Z",
    "endDate": "2019-09-12T03:13:00.000Z",
    "page": {
       "sortBy": "string",
       "limit": 20,
       "page": 0
    }
} 
  • member에 값을 지정하지 않으면 전체 이벤트 목록을 조회할 수 있습니다.
  • NHN Cloud memberType일 경우, emailAddress의 값은 필수이고, userCode의 값은 존재하지 않아야 합니다.
  • 반대로 IAM memberType일 경우, userCode의 값은 필수이고, emailAddress의 값은 존재하지 않아야 합니다.
  • idNo 값이 있을 경우, memberType과 userCode, emailAddress 값과 관계없이 우선으로 적용됩니다.
  • 이벤트 ID에 대한 자세한 정보는 매뉴얼을 참고합니다 : 링크
Key Type Required Description
idNo String X 이벤트를 발생시킨 회원 아이디 번호(UUID)
member Object X 이벤트를 발생시킨 회원
member.memberType String X 이벤트를 발생시킨 회원의 타입(NHN Cloud, IAM)
member.userCode String X 이벤트를 발생시킨 회원의 userCode(IAM 멤버일 경우)
member.emailAddress String X 이벤트를 발생시킨 회원의 이메일 주소(NHN Cloud 회원일 경우)
member.idNo String X 이벤트를 발생시킨 회원 IdNo(UUID)
eventId String O 조회할 이벤트의 ID
startDate Date O 조회할 기간의 시작 날짜
endDate Date O 조회할 기간의 끝나는 날짜
page Object O 조회 결과의 페이지 조건
page.sortBy String X 조회 결과의 사이즈 정렬 조건(ex. eventTime:desc, idNo:asc)
page.limit Integer O 조회 결과의 사이즈 조건(기본: 20, 최대 1000)
page.page Integer O 조회 결과의 페이지 중 조회할 페이지 조건

[Response Body]

{
    "header": {
        "resultCode": 0,
        "resultMessage": "SUCCESS",
        "isSuccessful": true
    },
    "page": {
        "content": [
            {
                "eventTime": "2019-11-01T10:31:49.348+0000",
                "userIdNo": "String",
                "userIp":"10.00.00.000",
                "userAgent":"ReactorNetty/0.8.4.RELEASE",
                "userName": "홍길동",
                "userId": "test_email@nhn.com",
                "eventSourceType": "API",
                "productId": "M0XnzOFE",
                "region": "String",
                "orgId": "String",
                "projectId": "String",
                "projectName": "String",
                "appKey": "String",
                "tenantId": "String",
                "eventId": "event_id.iam.member.role.update",
                "eventLogUuid": "17278c08-8338-4fd9-9693-931290adb9ec",
                "request": "{\n\t\"id\" : \"2\",\n\t\"productId\" : \"M0XnzOFE\",\n\t\"uuid\" : \"String\"\n\t\n}",
                "response": "{\"header\":{\"resultCode\":0,\"resultMessage\":\"SUCCESS\",\"isSuccessful\":true}}",
                "eventTarget": {
                    "targetMembers": [
                        {
                            "idNo": "String",
                            "name": "임꺽정",
                            "userCode": "test_user",
                            "emailAddress": "test_email2@nhn.com"
                        }
                    ]
                }
            }
        ]
    }
}
Key Type Description
eventTime Date 이벤트 발생 시간
userIdNo Object 이벤트를 발생시킨 회원의 UUID
userName String 이벤트를 발생시킨 회원의 이름
UserId String 이벤트를 발생시킨 회원의 ID(NHN Cloud 회원 계정일 경우 이메일 형식)
userIp String 이벤트를 발생시킨 회원의 IP
userAgent String 이벤트를 발생시킨 회원의 에이전트
eventSourceType String 이벤트를 발생시킨 주체의 타입
productId String 이벤트가 발생한 상품 ID
region String 이벤트가 발생한 리전
orgId String 이벤트가 발생한 조직 ID
projectId String 이벤트가 발생한 프로젝트 ID
projectName String 이벤트가 발생한 프로젝트 이름
appKey String 이벤트가 발생한 앱키
tenantId String 이벤트가 발생한 테넌트 ID
eventId String 이벤트 ID
eventLogUuid String 이벤트 로그 일련 번호(식별 키)
request String 발생한 이벤트의 요청 내용
response String 발생한 이벤트의 응답 내용
eventTarget Object 발생한 이벤트의 대상
eventTarget.targetMembers Object 발생한 이벤트의 대상 회원
targetMembers.idNo String 발생한 이벤트의 대상 회원의 UUID
targetMembers.name String 발생한 이벤트의 대상 회원의 이름
targetMembers.userCode Integer 발생한 이벤트의 대상 회원의 ID(IAM 멤버일 경우)
targetMembers.emailAddress String 발생한 이벤트의 대상 회원의 이메일 주소(NHN Cloud 회원일 경우)
TOP