サービス・エンドポイントを使用した Hyper Protect Crypto Services へのプライベート接続

Hyper Protect Crypto Services を使用する時のデータの制御とセキュリティーを強化するために、IBM Cloud® サービス・エンドポイントへのプライベート・ルートを使用することを選択できます。 インターネットからは、プライベート・ルートにアクセスすることも到達することもできません。 IBM Cloud プライベート・サービス・エンドポイント機能を使用すると、パブリック・ネットワークからの脅威からデータを保護し、プライベート・ネットワークを論理的に拡張できます。

ネットワーク・アクセス・ポリシーについて

Hyper Protect Crypto Services のネットワーク・アクセス・ポリシー インスタンスは、お客様が Hyper Protect Crypto Services インスタンスがパブリック・ネットワークまたはプライベート・ネットワークから API 要求を取得するのをブロックするために使用できる追加のポリシーです。

ネットワーク・アクセス・ポリシーは、新しくプロビジョンされるインスタンスと既存のインスタンスに適用されます。 既存インスタンスには、ネットワーク・アクセス・ポリシーは、設定された後に適用されます。

以下へのネットワーク・アクセスを制御する 2 つのオプション。 Hyper Protect Crypto Services インスタンス

  • パブリックおよびプライベートのネットワーク・アクセス (Public and private network access) - これがデフォルトです
  • プライベート・ネットワーク・アクセスのみ (Private network access only)

パブリックおよびプライベートのネットワーク・アクセス (Public and private network access)

Hyper Protect Crypto Services インスタンスは、public and privateの両方のエンドポイントからの API 要求を受け入れます。

パブリックおよびプライベートのネットワーク・アクセス (Public and private network access) はデフォルト設定であり、ポリシーが設定されていない場合に使用されます。

例えば、複数のチームが、 Hyper Protect Crypto Services インスタンスを使用するソリューションをテストしているとします。 開発チームとテスト・チームは、IBM Cloud の外部 (パブリック・エンドポイント) と内部 (プライベート・エンドポイント) の両方から API 要求を発行します。 このプロジェクトの各フェーズでチームが Hyper Protect Crypto Services インスタンスにアクセスできるようにするために、パブリック API 要求とプライベート API 要求を許可します。

プライベート・ネットワーク・アクセスのみ (Private network access only)

Hyper Protect Crypto Services インスタンスは、private エンドポイントからのみ API 要求を受け入れます。

例えば、開発とテストが完了し、以下を使用するソリューションがあるとします。 Hyper Protect Crypto Services インスタンスを本番稼働環境で使用するソリューションがあるとします。 セキュリティー上の理由から、API 要求をプライベート・ネットワークのみに制限する必要があります。 すべて Hyper Protect Crypto Services API 要求は、IBM Cloud から発信する必要があります。

ネットワーク・アクセス権限ポリシーを private-only に設定して以降は、 パブリック・ネットワークからの Hyper Protect Crypto Services API 呼び出し (ポリシーを変更する API を含む) はできません。 ネットワーク・アクセス・ポリシーを以下のように設定する前に、プライベート環境がセットアップされていることを確認してください。 private-only.

ネットワーク設定を更新するには、いくつかの方法があります。 いずれにしても、ネットワーク・アクセス・ポリシーを更新する前に、まずサービス・インスタンスを初期設定する必要があります。 手順については、IBM Cloud TKE CLI プラグインを使用したサービス・インスタンスの初期設定またはスマート・カードと管理ユーティリティーを使用したサービス・インスタンスの初期設定を参照してください。

  • サービス・インスタンスをプロビジョンする ときに、UI または CLI のいずれかを使用して、 private-only オプションと public-and-private オプションのいずれかを選択できます。

  • サービス・インスタンスをプロビジョンして初期化した後、ネットワーク設定を管理して更新します

    プライベート専用ネットワークを有効にすると、UI でそれ以上の鍵管理アクションを実行できなくなります。 代わりに CLI または API のいずれかを使用して、private-only ネットワークと public-and-private ネットワークを切り替えます。

パブリックまたはプライベートのいずれかの IP アドレスからご使用のインスタンスへのアクセスを制御するために使用されるインスタンス・アクセス・ポリシーは、そのインスタンスを削除する ibmcloud resource service-instance-delete (NAME | ID) コマンドが発行された後は、適用されません。

以下のネットワーク設定を有効にすると、キー管理サービス API を使用するキー管理操作と、GREP11 および PKCS #11 API を使用する暗号操作の両方が影響を受けます。

開始前に

  1. IBM Cloud インフラストラクチャー・アカウントで Virtual Routing and Forwarding (VRF) が有効になっていることを確認します。

    VRF を有効にすると、ご使用のアカウント用に別個のルーティング・テーブルが作成され、アカウントのリソースとの間の接続は IBM Cloud ネットワーク上で別個にルーティングされます。 VRF テクノロジーについて詳しくは、IBM Cloud での Virtual Routing and Forwarding (VRF) の概要を参照してください。

    VRF を有効にすると、アカウントのネットワーキングは永続的に変更されます。 アカウントおよびリソースへの影響を理解しておく必要があります。 VRF を有効にした後に無効化することはできません。

  2. IBM Cloud インフラストラクチャー・アカウントでサービス・エンドポイントが有効になっていることを確認します。

    サービス・エンドポイントを有効にすると、Hyper Protect Crypto Services のプライベート・ネットワークでしかアクセスできないプライベート ID を使用して IBM Cloud に接続できます。 詳しくは、プライベート接続のためのサービス・エンドポイントを参照してください。

    アカウントでサービス・エンドポイントを有効にすると、パブリック・エンドポイントとプライベート・エンドポイントの両方から、既存および将来の Hyper Protect Crypto Services リソースとサービス・インスタンスのすべてを使用できるようになります。

ステップ 1: 仮想サーバー上に IBM Cloud のプライベート・ネットワークを構成する

IBM Cloud のプライベート・ネットワーク用のルーティング・テーブルを構成して、VSI またはテスト・マシンを準備します。

  1. トラフィックを IBM Cloud のプライベート・ネットワークに転送するために、VSI で以下のコマンドを実行します。

    route add -net 166.9.0.0/16 gw <gateway> dev <gateway_interface>
    

    <gateway> (10.x.x.x など) および <gateway_interface> (eth10 など) を適切な値に置き換えます。

  2. オプション: 新しいルーティング・テーブルを表示して、経路が正常に追加されたことを確認します。

    route -n
    

ステップ 2: サービス・インスタンスをプロビジョンし、ネットワーク・アクセスを選択する

サービス・インスタンスをプロビジョンする ときに、UI または CLI のいずれかを使用して、 private-only オプションと public-and-private オプションのいずれかを選択できます。

サービス・インスタンスをプロビジョンして初期化した後、いつでもネットワーク設定を管理して更新することができます。 CLI または API のいずれかを使用して、private-only ネットワークと public-and-private ネットワークを切り替えます。

ステップ 3: TKE CLI プラグインの Hyper Protect Crypto Services プライベート・エンドポイントをターゲットとして設定する

プライベート・エンドポイントを介して鍵管理および暗号操作を実行するには、まず、プライベート・エンドポイントを Trusted Key Entry (TKE) CLI プラグインのターゲットにする必要があります。

  1. コマンド・ラインから IBM Cloud にログインします。

    ibmcloud login
    

    ログインに失敗した場合は、ibmcloud login --ssoコマンドを実行して再試行してください。 フェデレーテッドIDを使用してログインする場合は、--ssoパラメーターが必要です。 このオプションを使用する場合、CLI 出力にリストされているリンクに移動して、ワンタイム・パスコードを生成します。

  2. プライベート・エンドポイントを Trusted Key Entry (TKE) プラグインのターゲットにするために、TKE_PRIVATE_ADDR 環境変数を設定します。 置換 をサービス・インスタンスが作成されるロケーションの短縮名に置き換えます。

    export TKE_PRIVATE_ADDR=https://tke.private.us-south.hs-crypto.cloud.ibm.com
    

    パブリック・エンドポイントとプライベート・エンドポイントの API エンドポイント URL は、どちらも TKE_PRIVATE_ADDR 環境変数を使用して設定します。 パブリック・エンドポイントを使用する場合は、TKE_PRIVATE_ADDR 環境変数を設定解除するか、TKE_PRIVATE_ADDR 環境変数をパブリック・エンドポイント URL (https://tke.<region>.hs-crypto.cloud.ibm.com) として設定します。

ステップ 4: サービス・インスタンスの初期設定

サービス・インスタンスをプロビジョンするときに private-only オプションを選択すると、サービス・インスタンスの初期設定を含め、それ以降に行うすべてのアクションがプライベート・ネットワークで実行されます。 鍵パーツ・ファイルまたは スマート・カードと管理ユーティリティーのどちらかを使用して、サービス・インスタンスを初期設定できます。 public-and-private オプションを選択した場合は、パブリック・ネットワークでサービス・インスタンスを初期設定できます。

サービスの初期設定が完了した後でも、ネットワーク設定の管理方法に従ってネットワーク設定を更新することができます。

ステップ 5: 鍵管理サービスの Hyper Protect Crypto Services プライベート・エンドポイントをターゲットとして設定する

Hyper Protect Crypto Services の鍵管理サービスを使用する場合は、IBM Cloud のプライベート・ネットワークのトラフィックを受け入れるように VSI を構成した後に、Hyper Protect Crypto Services CLI プラグインを使用して、Key Protect のプライベート・エンドポイントをターゲットとして設定します。

GREP11 サービスを使用する場合は、このサービスがプライベート・エンドポイント接続を処理します。 お客様は、GREP11 API 要求の生成の手順に従って GREP11 サービス・エンドポイントをプライベート・エンドポイントに切り替えるだけで十分です。

  1. オプション: アカウントで VRF とサービス・エンドポイントが有効になっていることを確認します。

    ibmcloud account show
    

    以下の CLI 出力には、VRF とサービス・エンドポイントが有効にされたアカウントの詳細が示されています。

    Retrieving account John Doe's Account of john.doe@email.com...
    OK
    
    Account ID:                   d154dfbd0bc2edefthyufffc9b5ca318
    Currently Targeted Account:   true
    Linked Softlayer Account:     1008967
    Service Endpoint Enabled:     true
    

    プライベート・ネットワークに接続するためのアカウントのセットアップ方法については、 VRF およびサービス・エンドポイントの有効化 を参照してください。

  2. Hyper Protect Crypto Services プライベート・エンドポイントをターゲットにするように環境変数を設定します。

    以下のコマンドは、 Linux オペレーティング・システムまたは macOS でのみ使用してください。 Windows オペレーティング・システムで環境変数を設定する方法については、 Accessing Key Protect CLI を参照してください。

    プライベート・エンドポイントを鍵管理サービスのターゲットにするために、KP_PRIVATE_ADDR 環境変数を設定します。

    export KP_PRIVATE_ADDR=https://<instance_ID>.api.private.<region>.hs-crypto.appdomain.cloud
    

    鍵管理プライベート・エンドポイント URL は、サービス・ダッシュボードの**「概要」>「接続」>「鍵管理プライベート・エンドポイント URL」**の下にリストされています。

    あるいは、 API エンドポイント URL を動的に取得することもできます。 返される値には、以下が含まれます。

    {
      "instance_id": "<instance_ID>",
      "kms": {
        "public": "<instance_ID>.api.<region>.hs-crypto.appdomain.cloud",
        "private":"<instance_ID>.api.private.<region>.hs-crypto.appdomain.cloud"
        },
        "ep11": {
        "public": "<instance_ID>.ep11.<region>.hs-crypto.appdomain.cloud",
        "private":"<instance_ID>.ep11.private.<region>.hs-crypto.appdomain.cloud"
      }
    }
    

    プライベート・エンドポイント URL は private に返されます。 鍵管理エンドポイントには、kms セクションに返された値を使用します。 パブリック・エンドポイントとプライベート・エンドポイントの API エンドポイント URL は、どちらも KP_PRIVATE_ADDR 環境変数を使用して設定します。 パブリック・エンドポイントを使用する場合は、KP_PRIVATE_ADDR 環境変数の値として、public セクションの kms フィールドに返されたパブリック・エンドポイント URL を設定してください。

ステップ 6: プライベート・ネットワーク接続をテストする

プライベート・ネットワークをセットアップした後は、ネットワーク接続をテストすることをお勧めします。

鍵管理サービスのプライベート・ネットワーク接続をテストするには、Key Protect CLI を使用して、Hyper Protect Crypto Services サービス・インスタンスに対してアクションを実行します。 以下の例は、プライベート・ネットワーク上に ルート鍵A symmetric wrapping key that is used for encrypting and decrypting other keys that are stored in a data service. を作成する方法を示しています。

  1. プライベート・エンドポイントをターゲットとして設定して、ルート鍵を作成します

    ibmcloud kp create <key_name> -i <instance_ID>
    

    キーの識別を容易にするために、<key_name> を人が理解しやすいエイリアスに置き換えます。 <instance_ID> を、Hyper Protect Crypto Services サービス・インスタンスを識別する IBM Cloud インスタンス ID に置き換えます。

  2. オプション: Hyper Protect Crypto Services サービス・インスタンス内にある鍵のリストを表示して、鍵が正常に作成されたことを確認します。

    ibmcloud kp list -i <instance_ID>
    

    <instance_ID> を、Hyper Protect Crypto Services サービス・インスタンスを識別する IBM Cloud インスタンス ID に置き換えます。

次の作業

鍵管理操作を行う場合は、次を参照してください。

暗号操作を行う場合は、次を参照してください。