KMS
참고
네이버 클라우드 플랫폼의 상품 사용 방법을 보다 상세하게 제공하고, 다양한 API의 활용을 돕기 위해 [설명서]와 [API 참조서]를 구분하여 제공하고 있습니다.
Key Management Service 설명서 바로가기 >>
Key Management Service API 참조서 바로가기 >>
개요
KMS API는 RESTful 형태로 제공됩니다. KMS Rest API를 호출하기 위해서는 API Gateway와 Sub Account 인증을 수행해야 합니다.
API Gateway를 통한 API 호출은 API Gateway 설명서(구, 사용자 가이드) 를 참조하세요. API 요청 메시지는 아래와 같이 구성됩니다.
요청 구성
API Gateway request signature v1 요청 구성
Header
x-ncp-apigw-timestamp:{Timestamp}
x-ncp-apigw-api-key:{API Gateway API Key}
x-ncp-iam-access-key:{Sub Account Access Key}
x-ncp-apigw-signature-v1:{API Gateway Signature}
Content-Type:application/json
Body
fieldName: {Base64 Encoded message}
URL
https://kms.apigw.gov-ntruss.com/keys/v1/{keyTag}/{action}
API Gateway request signature v2 요청 구성
Header
x-ncp-apigw-timestamp:{Timestamp}
x-ncp-iam-access-key:{Sub Account Access Key}
x-ncp-apigw-signature-v2:{API Gateway Signature}
Content-Type:application/json
Body
fieldName: {Base64 Encoded message}
URL
https://kms.apigw.gov-ntruss.com/keys/v2/{keyTag}/{action}
요청 예시
API Gateway request signature v1 요청 예시
curl -i -s -X POST \
-H "x-ncp-apigw-timestamp:1511759789542" \
-H "x-ncp-apigw-api-key:12345678907qLxeMDTgd2kyKLOb" \
-H "x-ncp-iam-access-key:3A03131E1348C83101" \
-H "x-ncp-apigw-signature-v1:FkL1mw12345678DRu9R50tdGSyc/uQ/oTw=" \
-H "Content-Type:application/json" \
-d '{"plaintext":"dGVzdA=="}' \
'https://kms.apigw.gov-ntruss.com/keys/v1/bc6b4afe023f29721934567893905c8f7d2ca631c57533211316c89fa3/encrypt'
API Gateway request signature v2 요청 예시
curl -i -s -X POST \
-H "x-ncp-apigw-timestamp:1511759789542" \
-H "x-ncp-iam-access-key:3A03131E1348C83101" \
-H "x-ncp-apigw-signature-v2:FkL1mw12345678DRu9R50tdGSyc/uQ/oTw=" \
-H "Content-Type:application/json" \
-d '{"plaintext":"dGVzdA=="}' \
'https://kms.apigw.gov-ntruss.com/keys/v2/bc6b4afe023f29721934567893905c8f7d2ca631c57533211316c89fa3/encrypt'
응답 예시
{
"code": "SUCCESS",
"msg": "",
"data":{
"ciphertext": "ncpkms:v1:gsYccPMkd/fAtqbKuj2ov4H+EdZC8Qb/b1GPIIN2Z61+yULo"
}
}
오류 코드
응답 코드 | 응답 메시지 |
---|---|
FORBIDDEN | “Forbidden” |
INTERNAL_SERVER_ERROR | “Server internal error” |
UNPROCESSABLE_ENTITY | “Invalid status” |
INVALID_REQUEST | “Invalid request” |
UNAUTHORIZED | “Unauthorized” |
NOT_FOUND | “Not found” |
INVALID_STATUS | “Invalid status” |
Prefix
마스터키로 암호화되어 반환되는 데이터는 ‘KMS prefix + 암호문’으로 구성되어 있습니다. KMS prefix는 [ncpkms:버전정보]로 구성되어 있으며, 이는 복호화 시에 반드시 필요한 정보이므로 임의 제거 및 조작이 금지됩니다. KMS prefix가 올바르지 않다면 정확히 복호화되지 않습니다. 반환된 형태 그대로 관리하는 것이 좋습니다.
ncpkms:v1:XjsPWPjqPrBi1N2DupSiSbX/ATkGmKA
--------- -------------------------------
KMS prefix 암호문