IBM Cloud Hyper Protect Crypto Services の概要
IBM Cloud® Hyper Protect Crypto Services (略してHyper Protect Crypto Services ) は、 IBM Cloudベースの専用の鍵管理サービスおよびハードウェア・セキュリティー・モジュール (HSM) です。 このサービスを使用すると、クラウド HSM の所有権を取得して、暗号キーの完全管理と、暗号操作を実行できます。Hyper Protect Crypto Services は、FIPS 140-2 レベル 4 認定ハードウェアをベースにビルドされたクラウド業界唯一のサービスでもあります。 Unified Key Orchestrator 機能は、エンタープライズ向けのハイブリッド・マルチクラウド環境全体にわたる暗号キーが単一制御点をクラウド・ネイティブでのみ提供します。
このチュートリアルでは、マスター鍵をロードし、UI を使用して暗号鍵を作成および管理し、PKCS #11 API または GREP11 API を使用して暗号操作を実行することによってサービス・インスタンスをセットアップする方法の概要を示します。
- ステップ 1: サービス・インスタンスの初期設定
- ステップ 2(標準プランのみ): キーの作成
- ステップ 2(Unified Key Orchestrator プランのみ): 暗号鍵の管理
- ステップ 3: クラウド HSM を使用したデータの暗号化
ステップ 1: サービス・インスタンスの初期設定
サービス・インスタンスの場所とセキュリティー要件に応じて、 Hyper Protect Crypto Services には、サービス・インスタンスを初期化するための以下の 3 つのオプションが用意されています。
-
オプション 1: スマート・カードおよび管理ユーティリティーを使用したサービス・インスタンスの初期化
このオプションは、スマート・カードを使用してマスター鍵パーツを保管および管理できるようにする、最高のセキュリティーを提供します。
-
オプション 2: リカバリー暗号装置を使用したサービス・インスタンスの初期化
リカバリー暗号装置が有効になっているリージョンでサービス・インスタンスを作成する場合は、このオプションを選択できます。 このオプションを使用すると、マスター鍵はリカバリー暗号装置内でランダムに生成され、他の暗号装置に自動的にエクスポートされます。 マスター鍵を管理し、最小限の労力でインスタンスの初期化を完了することができます。
-
オプション 3: 鍵パーツ・ファイルを使用したサービス・インスタンスの初期化
ローカル・ワークステーションに保管したマスター・キー・パーツを使用して、サービス・インスタンスを初期設定することもできます。この方法は、サービス・インスタンスのリカバリー暗号化ユニットの有無に関係なく使用できます。
ステップ 2 (標準プランのみ): キーの作成
標準プランでは、データ暗号化のためのルート鍵または標準鍵を作成できます。 最初の暗号鍵を作成するには、以下の手順を実行します。 これらのステップを実行するには、 IBM Cloud アカウント所有者であること、または writer 役割が割り当てられていることを確認します。 詳しくは、 UI での Hyper Protect Crypto Services へのアクセス権限の割り当て を参照してください。
- UI で、 「KMS キー」 > 「キーの追加」 をクリックします。
- **「鍵の作成 (Create a key)」**を選択します。
- 鍵タイプとして ルート鍵 または 標準鍵 を指定し、鍵の固有の名前を入力します。 キー名に、自分の名前や場所などの個人情報 (PII) が含まれていないことを確認します。
- 「鍵の追加」 をクリックして確認します。
作成された鍵は対称 256 ビット鍵であり、AES-CBC アルゴリズムによってサポートされます。 「 鍵管理サービスの鍵 」表で、鍵の一般特性を調べることができます。 base64-encoded 鍵素材をインポート することによって、独自の鍵を持ち込むこともできます。
ステップ 2 (Unified Key Orchestrator プランのみ): 暗号鍵の管理
Unified Key Orchestratorで Hyper Protect Crypto Services を使用している場合は、以下の手順に従って暗号キーを管理します。 これらの手順を実行するには、自分が IBM Cloud アカウント所有者であるか、 ボールト管理者 役割が割り当てられていることを確認してください。 詳しくは、 UI での Hyper Protect Crypto Services へのアクセス権限の割り当て を参照してください。
1. ボールトの作成
ボールトは、 Cloud Identity and Access Management (IAM) を介して管理対象鍵および鍵ストアへのユーザーまたはアクセス・グループのアクセスを制御する単一のリポジトリーです。
ボールトを初回作成するには、以下の手順を実行します。
- サービス・インスタンス UI で、ナビゲーションから**「ボールト」**をクリックして、使用可能なすべてのボールトを表示します。
- 「ボールトの作成」 をクリックします。
- **「ボールト名」に名前を入力します。 ボールト名は 1 文字から 100 文字まで使用できます。 オプションで、ボールトの「説明」**セクションに詳細な説明文を追加できます。
- **「ボールトの作成」**をクリックして確認します。
2. 鍵ストアの作成
鍵ストアは、暗号鍵を保管するリポジトリーです。 サービス・インスタンス内に内部鍵ストアを作成することも、別のサービス・インスタンス内の外部鍵ストアに接続することも、 Microsoft Azure Key Vault、 Amazon Web Services (AWS) Key Management Service (KMS)、 Google Cloud KMS などの別のクラウド・プロバイダー内の外部鍵ストアに接続することもできます。
最初の内部鍵ストアを作成するには、以下のステップを実行します。
- サービス・インスタンス UI で、ナビゲーションから 「鍵ストア」 をクリックして、使用可能なすべての鍵ストアを表示します。
- 「鍵ストアの追加」 をクリックします。
- **「ボールト」の直下で、作成するボールトを選択して、「次へ」**をクリックします。 鍵ストアを新規ボールトに割り当てる場合は、 「ボールトの作成」 をクリックします。
- 「鍵ストア・タイプ」 の下で、 IBM Cloud 「KMS」 を選択し、 「次へ」 をクリックします。
- **「キー・ストア・プロパティー」の直下で、「キー・ストア名」に名前を入力します。 キー・ストア名は 1 文字から 100 文字まで使用できます。 次に、「次へ」**をクリックします。
- **「サマリー」**の直下に、作成したキー・ストアのサマリー (キー・ストア・タイプ、割り当てられたボールト、一般プロパティーなど) が表示されます。
- キー・ストアの詳細を確認したら、「キー・ストアの作成」 をクリックしてキー・ストアを作成します。
3. キー・テンプレートの作成
鍵テンプレートは、作成する管理対象鍵のプロパティー (命名規則、鍵アルゴリズム、鍵の長さなど) を指定します。
最初の鍵テンプレートを作成するには、以下のステップを実行します。
- サービス・インスタンス UI で、ナビゲーションから 「鍵テンプレート」 をクリックします。
- 「鍵テンプレートの作成」 をクリックします。
- 「ボールト」 の下で、作成したボールトを選択し、 「次へ」 をクリックします。
- 「鍵ストア」 の下で、鍵ストア・タイプとして IBM Cloud KMS を選択し、先ほど作成した鍵ストアを選択して、 「次へ」 をクリックします。
- 「キー・テンプレート・プロパティー」 の下で、キー・テンプレートに関する以下の詳細を指定します。 「次へ」 をクリックして先に進みます。
- 「要約」 の下で、鍵テンプレートの要約を表示し、 「鍵テンプレートの作成」 をクリックして鍵テンプレートの作成を完了します。
4. 管理対象鍵の作成
管理対象鍵を暗号化または暗号化解除に使用できるのは、その鍵が少なくとも 1 つの鍵ストアで作成およびアクティブ化された後のみです。 以下のステップを実行して、最初の IBM Cloud KMS 鍵を作成し、作成した鍵ストア内の鍵をアクティブ化します。
- サービス・インスタンス UI で、ナビゲーションから**「マネージド・キー」**をクリックして、使用可能なすべてのキーを表示します。
- **「鍵の作成 (Create key)」**をクリックします。
- 「ボールト」 の下で、作成したボールトを選択し、 「次へ」 をクリックします。
- 「鍵テンプレート」 の下で、 「鍵テンプレートから作成」 を選択し、作成したばかりの鍵テンプレートを選択して、 「次へ」 をクリックします。
- 「キー・プロパティー」 で、キーの詳細を指定します。 完了したら、**「次へ」**をクリックして続行します。
Pre-active
鍵は、手動でアクティブ化するまで鍵ストアにインストールされないことに注意してください。Active
鍵は、鍵ストアに自動的にインストールされます。 キー・プロパティーについて詳しくは、 IBM Cloud UI でのキー・テンプレートを使用した管理対象キーの作成 を参照してください。 - 「要約」 の下で、鍵の要約を表示してから、 「鍵の作成」 をクリックして鍵を作成します。
ステップ 3: クラウド HSM を使用したデータの暗号化
リモートから Hyper Protect Crypto Services のクラウド HSM にアクセスして、PKCS #11 の API または GREP11 の API を使用して暗号操作を実行することができます。 これらのステップを実行するには、 IBM Cloud アカウント所有者であること、または writer 役割が割り当てられていることを確認します。 詳しくは、 UI での Hyper Protect Crypto Services へのアクセス権限の割り当て を参照してください。
PKCS #11 の API を使用した暗号操作の実行
PKCS #11 の API を使用して暗号操作を実行するには、以下の手順を実行します。
- PKCS #11 サービス ID、役割、およびアクションをセットアップします。 詳しくは、 PKCS #11 API ユーザー・タイプのセットアップ を参照してください。
- PKCS #11 クライアント・ライブラリーをダウンロード、インストール、および構成します。 PKCS #11 クライアント・ライブラリーの構成について詳しくは、 PKCS #11 API を使用した暗号操作の実行 を参照してください。
GREP11 の API を使用した暗号操作の実行
GREP11 API を使用して暗号操作を実行するには、 gRPCでサポートされるプログラミング言語を使用してアプリケーションが開発されていることを確認する必要があります。
以下の手順では、Golang コードを例として使用して GREP11 関数をテストします。
-
手順に従って Golang をインストールします。
-
Golang 用のサンプル GitHub リポジトリー を任意のローカル・ディレクトリーに複製します。 Go モジュールはこのリポジトリーで使用されるため、
GOPATH
に複製リポジトリーを配置する必要はありません。 GREP11 Go コードの例について詳しくは、リポジトリーの README ファイルを参照してください。 -
examples/server_test.go
ファイルの以下のコード・スニペットを更新します。var ( Address = "<instance_ID>.ep11.us-east.hs-crypto.appdomain.cloud" APIKey = "<ibm_cloud_apikey>" )
このサンプル・コードで以下のようにします。
<instance_ID>
を GREP11 API エンドポイントの値に置き換えます。 サービス・エンドポイント URL を確認するには、プロビジョンされたサービス・インスタンス UI で、 「概要」 > 「接続」 > 「Enterprise PKCS #11 エンドポイント URL」 をクリックします。<ibm_cloud_apikey>
を、作成した サービス ID API キー に置き換えます。
-
go test -v -run Example
コマンドを実行して、<your_repository_path>/hpcs-grep11-go/examples
ディレクトリーから例を実行します。