Create Custom Key

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

암호 키로 활용할 수 있는 임의의 원시 키(raw key)를 생성합니다. AES256 또는 RSA2048 키 타입으로만 요청할 수 있습니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
POST
  • API Gateway request signature v1: /keys/v1/{keyTag}/createCustomKey
  • API Gateway request signature v2: /keys/v2/{keyTag}/createCustomKey

요청 헤더

Key Management Service API에서 공통으로 사용하는 헤더에 대한 정보는 Key Management Service 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

요청 경로 파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
keyTag String Required 키 태그
  • 키 이름에서 파생된 키의 고유 식별자
  • Get Key List를 통해 확인
  • REST API로 암호화 또는 복호화 요청 시 사용
  • 키 태그는 기밀 정보로 취급되지 않음

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
requestPlainKey Boolean Optional 암호화된 임의의 평문 생성 여부
  • true | false (기본값)
    • true: 생성
    • false: 미생성
bits Integer Optional 생성할 키 데이터 크기(비트)
  • 128 | 256 (기본값) | 512
context String Conditional Base64로 인코딩된 문자열 데이터
  • 수렴 암호화(convergent encryption)가 적용된 키 사용 시 필수
  • 최대 50 바이트 입력 가능
  • 같은 데이터를 여러 번 암호화하더라도 항상 동일한 암호문 생성

요청 예시

요청 예시는 다음과 같습니다.

  • API Gateway request signature v1 요청
curl --location --request POST 'https://kms.apigw.gov-ntruss.com/keys/v1/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/createCustomKey' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-apigw-api-key: {API Gateway API Key}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v1: {API Gateway Signature}' \
--data '{
  "requestPlainKey": true,
  "bits": 256,
  "context": "{BASE64_CONTEXT}"
}'
  • API Gateway request signature v2 요청
curl --location --request POST 'https://kms.apigw.gov-ntruss.com/keys/v2/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6/createCustomKey' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Sub Account Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--data '{
  "requestPlainKey": true,
  "bits": 256,
  "context": "{BASE64_CONTEXT}"
}'

응답

응답 형식을 설명합니다.

응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
code String - 성공 여부
msg String - 응답 코드(code)에 대한 설명
  • 요청 성공(SUCCESS) 시 빈값("")으로 표시
  • data Object - 응답 결과
    data.ciphertext String - 임의의 평문을 암호화하여 생성된 문자열 데이터
    data.key_version Integer - 생성된 커스텀 키의 버전
    data.plaintext String 또는 Array<String> - 생성된 커스텀 키의 평문 데이터
    • requestPlainKeytrue일 경우 표시
    • Base64 형식으로 인코딩되어 있음

    응답 상태 코드

    Key Management Service API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 Key Management Service 응답 상태 코드를 참조해 주십시오.

    응답 예시

    응답 예시는 다음과 같습니다.

    {
        "code": "SUCCESS",
        "msg": "",
        "data": {
            "ciphertext": "{CIPHERTEXT}",
            "key_version": 3,
            "plaintext": "{BASE64_PLAINTEXT}"
        }
    }