IBM Cloud Docs
標準鍵のインポート

標準鍵のインポート

IBM Cloud コンソールを使用して、既存の暗号鍵を追加することができます。

Key Protect API を使用してプログラムで、既存の暗号鍵を追加することができます。

コンソールを使用した標準鍵のインポート

サービスのインスタンスを作成した後、以下の手順を実行して、IBM Cloud コンソールを使用して既存の鍵をインポートします。

Key Protect インスタンスの二重許可設定 を有効にする場合、 サービスに追加するどの鍵についても、 鍵の削除には 2 人のユーザーからの許可が必要となることに 留意してください。

  1. IBM Cloudコンソールにログインする

  2. 「メニュー」>**「リソース・リスト」**に移動し、リソースのリストを表示します。

  3. IBM Cloud リソース・リストで、Key Protect のプロビジョン済みインスタンスを選択します。

  4. 新しい鍵をインポートするには、**「鍵の追加」をクリックして、「独自の鍵をインポート (Import your own key)」**ウィンドウを選択します。

    キーの詳細を以下のように指定します。

設定 説明
キー・タイプ Key Protect で管理する鍵のタイプ。 **「標準鍵 (Standard key)」**ボタンをクリックします。
名前 鍵を簡単に識別するための、人間が理解できる別名。 2 文字以上 90 文字以下の長さにする必要があります。

プライバシーを保護するため、鍵の名前には、個人の名前や場所などの個人情報 (PII) を含めないように注意してください。 鍵の名前は固有でなくてもかまいません。
キー素材 サービスで保管および管理する、base64 エンコードの鍵素材
        (既存の鍵ラップ鍵など)。 詳しくは、[鍵素材の Base64 でのエンコード](#how-to-encode-standard-key-material)を確認してください。 鍵素材が 16 バイト、24 バイト、または 32 バイトの長さであり、128 ビット、192 ビット、または 256 ビットの長さに相当することを確認してください。 鍵はまた base64 でエンコードされている必要があります。 |

| キー・エイリアス | オプション鍵の別名は、表示名の制限を超える鍵の説明を入力して、鍵の識別やグループ化を可能にするものです。 鍵には最大 5 つの別名を指定できます。 | | 鍵リング | オプション鍵リングとは、鍵をグループに分けて、各グループを必要に応じて独立して管理できるようにするものです。 どの鍵も 1 つの鍵リングに含まれていなければなりません。 鍵リングを選択しない場合、鍵は default 鍵リングに入れられます。 作成している鍵を鍵リングに配置するには、その鍵リングに対して_マネージャー_の役割を持っている必要があることに注意してください。 役割について詳しくは、ユーザーのアクセス権限の管理を参照してください。 |

鍵の詳細の記入が完了したら、**「鍵のインポート (Import key)」**をクリックして確認します。

鍵を配置する鍵リングがわかっていて、その鍵リングの_マネージャー_である場合は、**「鍵リング」パネルにナビゲートし、「⋯」を選択して、「鍵リングへの鍵の追加」をクリックすることもできます。 この場合は、「鍵」ページで「追加」をクリックするのと同じパネルが、「鍵リング (Key rings)」**変数に鍵リング名が入力された状態で開かれます。

標準鍵のインポート

以下のエンドポイントへの POST 呼び出しを行うことにより、標準鍵をインポートします。

https://<region>.kms.cloud.ibm.com/api/v2/keys
  1. サービス内で鍵の処理を行うために、サービス資格情報および認証資格情報を取得します

  2. 以下の curl コマンドを使用して、 Key Protect API を呼び出します。

    $ curl -X POST \
        "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
        -H "authorization: Bearer <IAM_token>" \
        -H "bluemix-instance: <instance_ID>" \
        -H "content-type: application/vnd.ibm.kms.key+json" \
        -H "correlation-id: <correlation_ID>" \
        -H "prefer: <return_preference>" \
        -d '{
                "metadata": {
                    "collectionType": "application/vnd.ibm.kms.key+json",
                    "collectionTotal": 1
                },
                "resources": [
                    {
                        "type": "application/vnd.ibm.kms.key+json",
                        "name": "<key_name>",
                        "aliases": [alias_list],
                        "description": "<key_description>",
                        "expirationDate": "<expiration_date>",
                        "payload": "<key_material>",
                        "extractable": <key_type>
                    }
                ]
            }'
    

    次の表に従って、例の要求内の変数を置き換えてください。

Key Protectで標準キーを追加するために必要な変数を記述します。API
変数 説明
リージョン 必須。 The region abbreviation, such as us-south or eu-gb, that represents the geographic area where your Key Protect instance resides.

For more information, see 地域サービス・エンドポイント.
IAM_token 必須。 IBM Cloud アクセス・トークン。 Bearer 値を含む、IAM トークンの全コンテンツを cURL 要求に組み込みます。

For more information, see アクセストークンの取得.
instance_ID 必須。 Key Protect サービス・インスタンスに割り当てられた固有 ID。

For more information, see インスタンスIDの取得.
correlation_ID トランザクションを追跡し、相互に関連付けるために使用される固有 ID。
return_preference POST および DELETE の操作に関するサーバーの動作を変更するヘッダー。

return_preference 変数を return=minimal に設定すると、サービスは鍵のメタデータ (鍵の名前や ID 値など) のみを応答のエンティティー本体で返します。 変数を return=representation に設定すると、サービスは鍵の素材と鍵のメタデータの両方を返します。
key_name 必須。 鍵を簡単に識別するための、人間が理解できる固有の名前。 プライバシーを保護するため、個人データを鍵のメタデータとして保管しないでください。
alias_list オプション.キーに割り当てられた、人間が読めるユニークなエイリアスを1つ以上指定します

重要: プライバシーを保護するため、個人データを鍵のメタデータとして保管しないでください。

Each alias must be alphanumeric, case sensitive, and cannot contain spaces or special characters other than - or _. The alias cannot be a UUID and must not be a Key Protect reserved name: allowed_ip, key, keys, metadata, policy, policies. registration, registrations, ring, rings, rotate, wrap, unwrap, rewrap, version, versions.
key_description オプション。鍵の詳しい説明。 プライバシーを保護するため、個人データを鍵のメタデータとして保管しないでください。
expiration_date オプション。システムで鍵の有効期限が切れる RFC 3339 形式 (YYYY-MM-DD HH:MM:SS.SS) の日時。例えば、2019-10-12T07:20:50.52Z など。 鍵は、鍵の有効期限日を経過後 1 時間以内に非アクティブ化状態に遷移します。 expirationDate 属性を省略した場合、鍵の有効期限は切れません。
key_material 必須。サービスで管理する base64 エンコードの鍵素材 (対称鍵など)。 詳しくは、Base64エンコーディングの鍵素材
をご覧ください
鍵素材が以下の要件を満たしていることを確認します。
標準鍵のサイズは最大 7,500 バイトです。 鍵は base64 エンコードでなければなりません。
key_type 鍵の素材をサービスの外に出すことができるかどうかを決定するブール値。

When you set the extractable attribute to true, the service designates the key as a standard key that you can store in your apps or services.

個人データの機密性を保護するため、サービスに鍵を追加するときに、個人の名前や場所などの個人情報 (PII) を入力しないようにしてください。 PIIの詳細な例については、セクション2.2を参照のこと。 節を参照のこと。 を参照のこと。

成功した POST api/v2/keys 応答は、鍵の ID 値を他のメタデータと共に返します。 ID は、鍵に割り当てられ、その後の以下の呼び出しに使用される固有 ID です Key Protect API。

オプション: 標準鍵のインポートの確認

鍵のリスト表示の要求を実行して、標準鍵がインポートされたことを確認できます。

$ curl -X GET \
    "https://<region>.kms.cloud.ibm.com/api/v2/keys" \
    -H "accept: application/vnd.ibm.collection+json" \
    -H "authorization: Bearer <IAM_token>" \
    -H "bluemix-instance: <instance_ID>"

ここで、<instance_ID> はインスタンスの名前であり、<IAM_token> はご使用の IAM トークンです。

鍵素材の Base64 でのエンコード

既存の標準鍵をインポートするときは、サービスで保管および管理する暗号化された鍵素材を含める必要があります。

OpenSSL を使用した既存の鍵素材の暗号化

鍵素材をエンコードするには、まず OpenSSLをダウンロードしてインストールする必要があります。

OpenSSL をダウンロードしてインストールすると、鍵素材をエンコードするための推奨コマンドが 2 つあります。 < key_material_string> または key_material_string> のいずれかのストリングを変換するという点で、どちらのメソッドも同等です。 以下に示すように、 base64 ストリングに変換されます。 素材がファイル内にある場合 (例えば、 Key Protectに保管したい、暗号化された鍵だけではなく資格情報を含むファイルがある場合)、最適なオプションは、以下を発行することです。

```sh {: pre}
openssl base64 -in <infile> -out <outfile>
```
Replace the variables in the example request according to the following table.
キーとなる素材に必要な変数を記述するbase64-encode
変数 説明
infile キーとなる材料文字列が存在するバイナリファイルの名前

ファイルが 7,500 バイト以下であることを確認してください。
outfile コマンドが実行されると base64 でエンコードされた鍵素材が作成されるファイルの名前。

base64 の資料をファイルではなくコマンド・ラインで直接出力する場合は、コマンドopenssl enc -base64 <<< '<key_material_string>'を実行します。ここで、key_material_string は、インポートされる鍵の鍵素材入力です。

ファイル内にない鍵素材をベース 64 エンコードする場合は、以下を発行できます。

```sh {: pre}
echo -n <password> | base64
```
Where "password" is the key material you want to use.

余分な文字 (例えば、余分な改行) を避けるために、特に base64 ストリングがコンソールにポストされる場合は、 base64 をクリップボードにコピーすることがベスト・プラクティスです。

OpenSSL を使用した新しい鍵素材の作成とエンコード

このプロセスを使用して、特定のバイト長でランダム base64 エンコードされた鍵素材を作成します。32 バイト (256 ビット) をお勧めします。

ルート鍵と同じ特性を持つ標準鍵にするには、16、24、または 32 バイトの鍵素材を作成して標準鍵として使用してください。 標準鍵は、サービスの外部に出ることができる鍵です。 標準鍵はアプリやサービスでよく使用されます。

  1. ダウンロードとインストール OpenSSL

  2. 次のコマンドを実行して、鍵素材ストリングを Base64 でエンコードします。

    openssl rand -base64 <byte_length>
    

    次の表に従って、例の要求内の変数を置き換えてください。

新しいキー素材を作成してエンコードするために必要な変数について説明します。
変数 説明
byte_length 鍵の長さ (バイト単位で測定)。

許容バイト長は、16 バイト、24 バイト、または 32 バイト (128 ビット、192 ビット、または 256 ビットの長さに相当) です。 鍵は base64 エンコードでなければなりません。

鍵素材の作成例

  1. openssl rand -base64 16 は、128 ビットの鍵素材を生成します。

  2. openssl rand -base64 24 は、192 ビットの鍵素材を生成します。

  3. openssl rand -base64 32 は、256 ビットの鍵素材を生成します。

次の作業