--- title: "Create Custom Key" slug: "security-kms-createusercustomkey" tags: ["Key Management Service"] updated: 2026-09-17T09:58:23Z published: 2026-09-17T09:58:23Z canonical: "api.ncloud-docs.com/security-kms-createusercustomkey" --- > ## 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. # Create Custom Key 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のリクエストヘッダ](/docs/ja/security-kms#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%941)をご参照ください。 ### リクエストパスパラメータ リクエストパスパラメータの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `keyTag` | String | Required | キータグ - キー名から派生したキーの固有 ID - [Get Key List](/docs/ja/security-kms2-key-list)を参照 - REST APIで暗号化または復号化をリクエストする際に使用 - キータグは機密情報として扱われない | ### リクエストボディ リクエストボディの説明は次の通りです。 | フィールド | タイプ | 必須の有無 | 説明 | | --- | --- | --- | --- | | `requestPlainKey` | Boolean | Optional | 暗号化された任意の平文を作成するかどうか - `true` \| `false` (デフォルト) - `true`: 作成 - `false`: 作成しない | | `bits` | Integer | Optional | 作成するキーデータのサイズ(Bit) - `128` \| `256` (デフォルト) \| `512` | | `context` | String | Conditional | Base64でエンコードされた文字列データ - 収束暗号化(convergent encryption)が適用されたキーの使用時に必須 - 最大50バイトまで入力可能 - 同じデータを何度暗号化してもいつも同じ暗号文を作成 | ### リクエスト例 リクエストのサンプルコードは次の通りです。 - API Gateway request signature v1リクエスト ``` curl --location --request POST 'https://kms.apigw.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.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] | - | 作成されたカスタムキーの平文データ - `requestPlainKey`が`true`の場合に表示 - Base64形式でエンコードされている | ### レスポンスステータスコード Key Management Service APIで共通して使用されるレスポンスステータスコードの詳細は、[Key Management Serviceのレスポンスステータスコード](/docs/ja/security-kms#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C1)をご参照ください。 ### レスポンス例 レスポンスのサンプルコードは次の通りです。 ``` { "code": "SUCCESS", "msg": "", "data": { "ciphertext": "{CIPHERTEXT}", "key_version": 3, "plaintext": "{BASE64_PLAINTEXT}" } } ```