--- title: "Key Management Service 개요" slug: "security-kms" tags: ["API Gateway", "Key Management Service", "KMS", "Sub Account"] updated: 2026-09-17T09:16:56Z published: 2026-09-17T09:16:56Z canonical: "api.ncloud-docs.com/security-kms" --- > ## Documentation Index > Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Key Management Service 개요 Classic/VPC 환경에서 이용 가능합니다. Key Management Service는 암호화 운영 및 구현에 필수적인 암호 키 관리 기능을 제공하는 네이버 클라우드 플랫폼의 서비스입니다. Key Management Service에서는 암호화와 복호화를 비롯한 여러 키 관리 기능에 대한 API를 RESTful 형태로 제공합니다. 참고 2025년 6월 19일 리전 격리 키 기능이 API 2.0에 추가됩니다. 자세한 내용은 [**Key Management Service 개념 > 키 격리**](https://guide.ncloud-docs.com/docs/kms-info#%ED%82%A4%EA%B2%A9%EB%A6%AC)를 참조해 주십시오. - 기능 추가 시점 이전에 생성되어 운영중인 모든 키는 자동으로 전역(Global) 키로 전환되며, 이용 중인 API에 변경 사항은 없습니다. | | API v1 | API v2 | | --- | --- | --- | | Base URL(도메인) | https://kms.apigw.ntruss.com | - 전역(GLOBAL): https://ocapi.ncloud.com - 격리: 한국(KR): https://ocapi-kr.ncloud.com - 격리: 일본(JP): https://ocapi-jp.ncloud.com | | API 종류 | 암호화, 복호화 API 6종만 제공 - Encrypt, Decrypt, Create Custom Key, Re-encrypt, Sign, Verify | - 암호화, 복호화 API 6종 제공 - Encrypt, Decrypt, Create Custom Key, Re-encrypt, Sign, Verify - 콘솔로 제공되는 키 관리 기능 모두 제공 | | 인증 방식 | 네이버 클라우드 플랫폼 계정 정보를 이용한 사용자 인증 | - 계정 인증 API: 네이버 클라우드 플랫폼 계정 정보를 이용한 사용자 인증 - 토큰 인증 API: 키 인증 토큰 | | 요청 처리 성능 | Encrypt API (AES) 기준 시스템 최대 200 TPS - 모든 키가 200 TPS 처리 성능을 공유 | Encrypt API (AES) 기준 키별 최대 300 TPS - 모든 키에 대해 각각 최대 300 TPS의 처리 성능을 개별적으로 보장 | | 가용성 보장 | 리전 한정 고가용성(HA) - 네이버 클라우드 플랫폼 리전 장애 시 암호화, 복호화, 서명, 검증 등의 API에 영향이 있음 | 리전 한정 또는 크로스 리전 고가용성(HA) - 전역 키: 크로스 리전 다중 동기화를 통해 네이버 클라우드 플랫폼 리전 장애에 영향 없이 암호화, 복호화, 서명, 검증 등의 API에 대해 무중단 동작 보장 - 리전 격리 키: 지역외 반출 제한을 위해 리전 내 이중화 지원 | | 요청 접근 제어 | Sub Account 서비스에서 제공하는 부계정 단위의 IP ACL 기능을 이용 | - Sub Account 서비스에서 제공하는 부계정 단위의 IP ACL 기능 - 토큰 단위로 설정 가능한 IP ACL | ## Key Management Service API 1.0 공통 설정 Key Management Service API 1.0에서 공통으로 사용하는 요청 형식과 응답 형식을 설명합니다. ### 요청 공통 요청 형식을 설명합니다. #### API URL 요청 API URL은 다음과 같습니다. ``` https://kms.apigw.ntruss.com ``` #### 요청 헤더 요청 헤더에 대한 설명은 다음과 같습니다. - API Gateway request signature v1 방식 요청 | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `x-ncp-apigw-timestamp` | Required | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간(밀리초) - API Gateway 서버와 5분 이상 시간차 발생 시 유효하지 않은 요청으로 간주 - Unix Timestamp 형식 | | `x-ncp-apigw-api-key` | Required | 네이버 클라우드 플랫폼의 API Gateway 서비스에서 발급받은 키 | | `x-ncp-iam-access-key` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key - Access Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서브 계정의 Access Key 발급 및 확인: [서브 계정 생성](https://guide.ncloud-docs.com/docs/subaccount-use#%EC%84%9C%EB%B8%8C-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1) 참조 | | `x-ncp-apigw-signature-v1` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key에 맵핑되는 Secret Key 및 HMAC 암호화 알고리즘(HmacSHA256)으로 요청 정보를 암호화한 후 Base64로 인코딩한 서명 - Secret Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서명 생성: [시그니처 생성](/docs/common-ncpapi#%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98%EC%83%9D%EC%84%B1) 참조 | - API Gateway request signature v2 방식 요청 | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `x-ncp-apigw-timestamp` | Required | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간(밀리초) - API Gateway 서버와 5분 이상 시간차 발생 시 유효하지 않은 요청으로 간주 - Unix Timestamp 형식 | | `x-ncp-iam-access-key` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key - Access Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서브 계정의 Access Key 발급 및 확인: [서브 계정 생성](https://guide.ncloud-docs.com/docs/subaccount-use#%EC%84%9C%EB%B8%8C-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1) 참조 | | `x-ncp-apigw-signature-v2` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key에 맵핑되는 Secret Key 및 HMAC 암호화 알고리즘(HmacSHA256)으로 요청 정보를 암호화한 후 Base64로 인코딩한 서명 - Secret Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서명 생성: [시그니처 생성](/docs/common-ncpapi#%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98%EC%83%9D%EC%84%B1) 참조 | ### 응답 공통 응답 형식을 설명합니다. #### 응답 상태 코드 응답 상태 코드에 대한 설명은 다음과 같습니다. | HTTP 상태 코드 | 코드 | 메시지 | 설명 | | --- | --- | --- | --- | | 200 | - | `success` | 성공 | 참고 네이버 클라우드 플랫폼에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [Ncloud API 응답 상태 코드](/docs/common-ncpapi#3%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오. #### 오류 구문 요청 처리 결과 오류 구문에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `error` | Object | - | 오류 정보 | | `error.errorCode` | String | - | 오류 코드 | | `error.message` | String | - | 오류 메시지 | | `error.details` | String | - | 오류에 대한 상세 정보 | ``` { "error": { "errorCode": "300", "message": "Not Found Exception", "details": "URL not found." } } ``` 상태 코드가 `200 OK`이더라도 결과적으로 실패한 오류 구문에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `code` | String | - | 오류 코드 | | `msg` | String | - | 오류 메시지 | | `data` | Object | - | 응답 결과 - `null` 값으로 표시 | - <예시> 유효하지 않은 요청 데이터 입력 ``` { "code": "NOT_VALID_INPUT", "msg": "Fail: not valid input", "data": null } ``` ## Key Management Service API 2.0 공통 설정 Key Management Service API 2.0에서 공통으로 사용하는 요청 형식과 응답 형식을 설명합니다. ### 요청 공통 요청 형식을 설명합니다. #### API URL 요청 API URL은 다음과 같습니다. ``` https://ocapi.ncloud.com ``` #### 요청 헤더 요청 헤더에 대한 설명은 다음과 같습니다. - 계정 인증(Account Auth) 방식 요청 | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `x-ncp-apigw-timestamp` | Required | 1970년 1월 1일 00:00:00 협정 세계시(UTC)부터의 경과 시간(밀리초) - API Gateway 서버와 5분 이상 시간차 발생 시 유효하지 않은 요청으로 간주 - Unix Timestamp 형식 | | `x-ncp-iam-access-key` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key - Access Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서브 계정의 Access Key 발급 및 확인: [서브 계정 생성](https://guide.ncloud-docs.com/docs/subaccount-use#%EC%84%9C%EB%B8%8C-%EA%B3%84%EC%A0%95-%EC%83%9D%EC%84%B1) 참조 | | `x-ncp-apigw-signature-v2` | Required | 네이버 클라우드 플랫폼에서 발급받은 Access Key에 맵핑되는 Secret Key 및 HMAC 암호화 알고리즘(HmacSHA256)으로 요청 정보를 암호화한 후 Base64로 인코딩한 서명 - Secret Key 발급 및 확인: [인증키 생성](/docs/common-ncpapi#1%EC%9D%B8%EC%A6%9D%ED%82%A4%EC%83%9D%EC%84%B1) 참조 - 서명 생성: [시그니처 생성](/docs/common-ncpapi#%EC%8B%9C%EA%B7%B8%EB%8B%88%EC%B2%98%EC%83%9D%EC%84%B1) 참조 | - 토큰 인증(Token Auth) 방식 요청 | 필드 | 필수 여부 | 설명 | | --- | --- | --- | | `x-ncp-ocapi-token` | Required | Key Management Service에서 생성한 키의 액세스 토큰(Access Token) 또는 리프레시 토큰(Refresh Token) - JWT(JSON Web Token) 타입 토큰 - 토큰 생성: [Create Token Set](/docs/security-kms2-token-set) 참조 - 사용 API - 액세스 토큰: [Encrypt](/docs/security-kms2-token-encrypt), [Decrypt](/docs/security-kms2-token-decrypt), [Create Custom Key](/docs/security-kms2-token-custom-key), [Re-encrypt](/docs/security-kms2-token-reencrypt), [Sign](/docs/security-kms2-token-sign), [Verify](/docs/security-kms2-token-verify), [Get Public Key](/docs/security-kms2-token-public-key) - 리프레시 토큰: [Create Access Token](/docs/security-kms2-token-access-token), [Renew Token Set](/docs/security-kms2-token-renew) | ### 응답 공통 응답 형식을 설명합니다. #### 응답 상태 코드 응답 상태 코드에 대한 설명은 다음과 같습니다. | HTTP 상태 코드 | 코드 | 메시지 | 설명 | | --- | --- | --- | --- | | 200 | - | - | 정상 | | 400 | 100 | `Bad Request` | 요청 오류 | | 401 | - | `Authentication Failed` | 인증 오류 | | 401 | - | `Permission Denied` | 권한 오류 | | 403 | - | `Forbidden` | 키 리소스 접근 불가 | | 404 | 300 | `Not Found` | 키 리소스 존재하지 않음 | | 429 | - | `Rate Limited` | 요청 할당량 초과 | | 500 | - | `Unexpected Error` | - `FAIL_SERVER_INTERNAL`: KMS 시스템 오류 - `FAIL_IAM_REQUEST`: 계정 또는 권한 시스템 오류 - `FAIL_CLA_REQUEST`: CLA 시스템 오류 - `FAIL_BLOC_REQUEST`: 회원 또는 계약 조회 시스템 오류 | #### 오류 구문 요청 처리 결과 오류 구문에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `error` | Object | - | 오류 정보 | | `error.errorCode` | String | - | 오류 코드 | | `error.message` | String | - | 오류 메시지 | | `error.details` | String | - | 오류에 대한 상세 정보 | ``` { "error": { "errorCode": "300", "message": "Not Found", "details": "null" } } ``` ## Key Management Service API Key Management Service API 서비스에서 제공하는 API에 대한 설명은 다음과 같습니다. ### Key Management Service API 1.0 Key Management Service API 1.0 관련 API에 대한 설명은 다음과 같습니다. | API | 설명 | | --- | --- | | [Encrypt](/docs/security-kms-encrypt) | 키의 현재 버전으로 데이터 암호화 | | [Decrypt](/docs/security-kms-decrypt) | 키로 암호문 복호화 | | [Create Custom Key](/docs/security-kms-createusercustomkey) | 암호 키로 사용할 임의의 원시 키(raw key) 생성 | | [Re-encrypt](/docs/security-kms-reencrypt) | 암호문을 지정된 마스터 키의 가장 최신 버전으로 재암호화 | | [Sign](/docs/security-kms-sign) | 데이터의 서명값 생성 | | [Verify](/docs/security-kms-verify) | 데이터와 서명값 비교하여 검증 결과 반환 | ### Key Management Service API 2.0 Key Management Service API 2.0 관련 API에 대한 설명은 다음과 같습니다. #### Account Auth API Account Auth API 관련 API에 대한 설명은 다음과 같습니다. | API | 설명 | | --- | --- | | [Create Key](/docs/security-kms2-create-key) | 키 생성 | | [Get Key Info](/docs/security-kms2-key-info) | 키 상세 정보 조회 | | [Get Key List](/docs/security-kms2-key-list) | 키 목록 조회 | | [Get Public Key](/docs/security-kms2-public-key) | 공개 키 조회 | | [Delete Key](/docs/security-kms2-delete-key) | 키 삭제 | | [Enable Key](/docs/security-kms2-enable-key) | 키 활성화 | | [Disable Key](/docs/security-kms2-disable-key) | 키 비활성화 | | [Enable Key Version](/docs/security-kms2-enable-key-version) | 키 버전 활성화 | | [Disable Key Version](/docs/security-kms2-disable-key-version) | 키 버전 비활성화 | | [Rotate Key](/docs/security-kms2-rotate-key) | 키를 회전하여 새로운 버전 생성 | | [Request Key Deletion](/docs/security-kms2-request-key-deletion) | 키 삭제 요청 | | [Cancel Key Deletion](/docs/security-kms2-cancel-key-deletion) | 키 삭제 요청 취소 | | [Enable IP ACL](/docs/security-kms2-enable-ip-acl) | 토큰 요청을 허용할 IP 주소를 제어할 수 있는 IP ACL 기능 활성화 | | [Disable IP ACL](/docs/security-kms2-disable-ip-acl) | 토큰 요청을 허용할 IP 주소를 제어할 수 있는 IP ACL 기능 비활성화 | | [Get ACL Rule List](/docs/security-kms2-acl-list) | 키의 IP ACL 설정 정보 조회 | | [Add ACL Rule](/docs/security-kms2-add-acl) | 토큰 요청을 허용할 IP 주소를 ACL에 추가 | | [Delete ACL Rule](/docs/security-kms2-delete-acl) | 토큰 요청을 허용한 IP 주소를 ACL에서 삭제 | | [Create Token Generator](/docs/security-kms2-create-token-gen) | 토큰 생성자 활성화 | | [Get Token Generator](/docs/security-kms2-get-token-gen) | 토큰 생성자 조회 | | [Update Token Generator](/docs/security-kms2-update-token-gen) | 토큰 생성자 교체 | | [Delete Token Generator](/docs/security-kms2-token-encrypt) | 토큰 생성자 삭제(비활성화) | | [Create Token Set](/docs/security-kms2-token-set) | 토큰 셋(액세스 토큰과 리프레시 토큰) 생성 | | [Get Key Activity Logs](/docs/security-kms2-key-activity-logs) | 키 사용 이력 목록 조회 | | [Get Latest Use Info](/docs/security-kms2-latest-use-info) | 가장 최근의 키 사용 이력 조회 | | [Get Key Version List](/docs/security-kms2-key-version-list) | 키 버전 목록 조회 | | [Update Memo](/docs/security-kms2-update-memo) | 키에 대한 메모 수정 | | [Update Rotation Period](/docs/security-kms2-rotation-period) | 키의 자동 회전 주기 수정 | | [Enable Auto Rotation](/docs/security-kms2-enable-auto-rotation) | 키의 자동 회전 활성화 | | [Disable Auto Rotation](/docs/security-kms2-disable-auto-rotation) | 키의 자동 회전 비활성화 | | [Encrypt](/docs/security-kms2-encrypt) | 키의 현재 버전으로 데이터 암호화 | | [Decrypt](/docs/security-kms2-decrypt) | 키로 암호문 복호화 | | [Create Custom Key](/docs/security-kms2-custom-key) | 암호 키로 사용할 임의의 원시 키(raw key) 생성 | | [Re-encrypt](/docs/security-kms2-reencrypt) | 암호문을 지정된 마스터 키의 가장 최신 버전으로 재암호화 | | [Sign](/docs/security-kms2-sign) | 데이터의 서명값 생성 | | [Verify](/docs/security-kms2-verify) | 데이터와 서명값 비교하여 검증 결과 반환 | #### Token Auth API Token Auth API 관련 API에 대한 설명은 다음과 같습니다. | API | 설명 | | --- | --- | | [Encrypt](/docs/security-kms2-token-encrypt) | 키의 현재 버전으로 데이터 암호화 | | [Decrypt](/docs/security-kms2-token-decrypt) | 키로 암호문 복호화 | | [Create Custom Key](/docs/security-kms2-token-custom-key) | 암호 키로 사용할 임의의 원시 키(raw key) 생성 | | [Re-encrypt](/docs/security-kms2-token-reencrypt) | 암호문을 지정된 마스터 키의 가장 최신 버전으로 재암호화 | | [Sign](/docs/security-kms2-token-sign) | 데이터의 서명값 생성 | | [Verify](/docs/security-kms2-token-verify) | 데이터와 서명값 비교하여 검증 결과 반환 | | [Get Public Key](/docs/security-kms2-token-public-key) | 공개 키 조회 | | [Create Access Token](/docs/security-kms2-token-access-token) | 액세스 토큰 생성 | | [Renew Token Set](/docs/security-kms2-token-renew) | 토큰 셋(액세스 토큰과 리프레시 토큰) 재생성 | ## Key Management Service 연관 리소스 Key Management Service API에 대한 사용자의 이해를 돕기 위해 다양한 연관 리소스를 제공하고 있습니다. - Key Management Service API 사용 방법 - [서명(시그니처) 생성](/docs/common-ncpapi): 요청 헤더에 추가할 서명 생성 방법 - [API Gateway 사용 가이드](https://guide.ncloud-docs.com/docs/apigw-apigw-1): 요청 헤더에 추가할 API Key 발급 - [Sub Account 사용 가이드](https://guide.ncloud-docs.com/docs/subaccount-overview): 요청 헤더에 추가할 Access Key 발급 방법 - [Ncloud 공통 응답 상태 코드](/docs/common-ncpapi#3-%EC%9D%91%EB%8B%B5-%EC%83%81%ED%83%9C-%EC%BD%94%EB%93%9C): Key Management Service에서 사용하는 네이버 클라우드 플랫폼의 공통 응답 상태 코드 정보 - Key Management Service 서비스 사용 방법 - [Key Management Service 사용 가이드](https://guide.ncloud-docs.com/docs/kms-overview): 네이버 클라우드 플랫폼 콘솔에서 Key Management Service 사용하는 방법 - [Ncloud 사용 환경 가이드](https://guide.ncloud-docs.com/docs/environment-environment-1-1): VPC, Classic 환경 및 지원 여부에 대한 가이드 - [요금 소개, 특징, 상세 기능](https://www.ncloud.com/product/security/kms): Key Management Service의 요금 체계, 특징, 상세 기능 요약 - [서비스 최신 소식](https://www.ncloud.com/intro/news): Key Management Service 관련 최신 소식 - [자주 하는 질문](https://www.ncloud.com/support/faq/all): Key Management Service 사용자들이 자주 하는 질문 - [고객 지원](https://www.ncloud.com/support/question/general): API 가이드를 통해서도 궁금증이 해결되지 않는 경우 직접 문의