Key Protect の構成

DevOps Insights 2026年8月31 日にサービス終了となり、提供が中止されます。 Continuous Delivery は、2027年2月12日に以下のリージョンで提供が中止されます: au-sydca-monca-torus-east。 また、同日をもって、Code Risk Analyzerもすべての地域で提供を終了いたします。 あるリージョンでこれらの機能が実際に利用されていない場合、そのリージョンの機能は早期に提供が終了し、新しいインスタンスの受け入れが停止される可能性があります。 詳細はこちら

IBM® Key Protect for IBM Cloud® は、複数の IBM Cloud サービス間で、アプリのシークレットをセキュアに保管して適用するために役立ちます。

シークレットは、API キーなど、機密情報へのアクセスを提供するすべてのものを指します。 シークレットを Key Protect の標準キーとして保存する場合、このツール統合を使用して、ツールチェーン・ワークフロー内の必要な場所でシークレットにアクセスできます。 Key Protect の標準キーについて詳しくは、キーのタイプを参照してください。

Key Protect ツール統合を構成するには、その前に、Key Protect サービスのインスタンスを、ツール統合の作成先となるリージョンおよびリソース・グループ内にプロビジョンするようにしてください。 特定のシナリオでは、Key Protect サービス・インスタンスは自動的に生成できます。 例えば、新しい API キーを作成し、後で使用するためにシークレットとして保管することを選択した場合、Key Protect サービス・インスタンスが自動的に生成されます。 Key Protect サービスのインスタンスをプロビジョンする方法については、サービスのプロビジョンを参照してください。

ツールチェーンの一部であるシークレットをセキュアに管理するように、Key Protect を構成します。

  1. ツールチェーン作成時にこのツール統合を構成する場合は、「構成可能な統合」セクションで**「Key Protect」をクリックします。 オプションのツール統合として定義されている場合、Key Protect は「その他のツール (More Tools)」**にあります。 ツールチェーンと Key Protect サービス・インスタンスの間に許可を作成するには、 「許可タイプ」 ドロップダウンから 「このツールチェーンの許可を作成します」 オプションを選択します。 これにより、 Key Protect サービス・インスタンスに保管されている秘密資料へのアクセス権限がツールチェーンに付与されます。

  2. ツールチェーンをお持ちで、そこにこのツールの統合を追加する場合は、 IBM Cloud コンソールで、 メニュー アイコン( ハンバーガーアイコン ) > [Platform Automation ] > [Toolchains ] の順にクリックしてください。 「ツールチェーン」ページで、ツールチェーンをクリックしてその「概要」ページを開きます。 あるいは、アプリの「概要」ページのContinuous Deliveryカードで、**「ツールチェーンの表示」をクリックします。 次に、「概要」**をクリックします。

    a. **「ツールの追加」**をクリックします。

    b. 「ツール統合」セクションで**「Key Protect」**をクリックします。

  3. ツールチェーンで使用する Key Protect ツール統合のインスタンスの名前を指定します。 指定した名前は、**「Key Protect」**シークレットを選択する UI ツールで使用されます。 これは、ツールチェーンが実行された場合にシークレット値を解決する参照の一部としても使用されます。 このインスタンス名は、ツールチェーン・ワークスペース内の Key Protect ツール統合タイルでも表示されます。

  4. **「リージョン」「リソース・グループ」**のデフォルト値を確認して、必要であれば更新します。

  5. 使用する Key Protect サービスのインスタンスを選択します。

  6. ツールチェーンと Key Protect サービス・インスタンスの間に許可を作成するには、 「許可の作成」 ボタンをクリックします。 これにより、 Key Protect サービス・インスタンスに保管されている秘密資料へのアクセス権限がツールチェーンに付与されます。

  7. 「統合の作成」 をクリックします。

  8. ツールチェーンの「概要」ページの**「サード・パーティー・ツール」カードで、「Key Protect」**をクリックします。

シークレットの適用

Key Protect ツール統合が構成されたら、それを使用してツールチェーンで必要とされる場所にシークレットを適用することができます。 以下の例では、Key Protect に保管されているシークレットを、パイプライン・ツール統合で必要な IBM Cloud API キーに適用します。 同じ手順に従って、シークレット値を必要とする Continuous Delivery ツール統合のいずれかにシークレットを適用できます。

Slack Web フックや Artifactory API トークンなどのサード・パーティーのシークレットは、新規ツールチェーンを作成する前に、Key Protect に保存する必要があります。 ツールチェーンで作業している間は、IBM Cloud API キーなどの IBM が管理するシークレットのみを作成して Key Protect に保存できます。

  1. キー・アイコンをクリックして、Key Protect API キーの IBM Cloud などのセキュア・ストアからシークレットを取得します。

  2. **「プロバイダー」**フィールドで、ツールチェーン・シークレットを管理するために使用する Key Protect ツール統合のプロバイダーおよび名前を指定します。 例えば、Key Protect ツール統合を使用するには、Key Project: ibm-keyprotect-secrets-1 を選択します。 Hashicorp Vault など、他のプロバイダーを使用してツールチェーン・シークレットを管理することができます。

  3. シークレット名を選択して**「OK」**をクリックし、保管されているシークレットをそれと関連付けられたフィールドに適用します。

" caption-side="bottom"}{: caption="への秘密の参照

選択したシークレットの名前がカプセル形式で表示されます。 シークレット名をインラインで編集することはできませんが、削除アイコン をクリックして名前を削除することはできます。 シークレット・ピッカー・コントロールを再度使用して、シークレット名を置き換えることもできます。 「シークレット」フィールドに手動で入力したり、貼り付けたりした場合、シークレット名は別の形式で表示されます。

文字通りの秘密値
秘密
*

シークレットが表示される形式は、値がバックエンド・ボールトに保管されているシークレットを参照しているか、ツールチェーンに保管されているシークレットであるかを示します。 Key Protect などのシークレット・プロバイダーによって管理されるシークレットへの参照を使用することで、シークレット値が一元化され、単一の場所に安全に保管されます。 このアプローチは、シークレットのスプロールや急増を解決し、ツールチェーンを更新しなくてもシークレットを更新できることを意味します。 シークレット参照を使用する場合、実際のシークレット値は、ツールチェーンが実行されるときに Key Protect から動的に取得することによって解決されます。 このアプローチは、ツールチェーン・シークレットの値を定期的にローテーションする必要がある場合に役立ちます。

ツールチェーン・テンプレートへの Key Protect ツール統合の追加

テンプレート・リポジトリーの toolchain.yml ファイルにサービス定義を追加することで、ツールチェーン・テンプレートに Key Protect ツール統合を追加できます。 このファイルは、ツールチェーンの設計青写真であり、そのテンプレートに基づいてツールチェーン・インスタンスを作成するときに使用できるすべてのツール統合が含まれています。 既存のツールチェーン・テンプレートをカスタマイズして Key Protect ツール統合を含めるには、YAML 定義を挿入します。

  kp-tool:
    service_id: keyprotect
    parameters:
      name: kp-compliance-secrets
      region: us-south
      resource-group: default
      instance-name: ffs-secrets
      setup-authorization-type: create

特定のシナリオでは、ツールチェーンの作成時に Key Protect ツール統合を動的に追加できます。 例えば、**「新規」をクリックして新規 API キーを作成する場合、「このキーを再使用のためにシークレット・ストアに保存する (Save this key in a secrets store for reuse)」**チェック・ボックスを選択して、その API キーを Key Protect インスタンスに保管して後で再使用することができます。 Key Protect インスタンスがまだ存在しない場合は、新しいインスタンスが作成されます。

シークレットへのアクセスをツールチェーンに許可する

Key Protect に保管されているシークレットへの参照は、ツールチェーンの実行時に動的に解決されます。 必要なシークレットにアクセスするには、ツールチェーンに Key Protect インスタンスへのアクセスを許可する必要があります。 テンプレートからツールチェーンを作成する場合は、 Key Protect 統合を構成するときに 「許可タイプ」 ドロップダウンを使用します。 Key Protect 統合を既存のツールチェーンに追加する場合、 「許可の作成」 ボタンを使用します。

IBM Cloud で許可を表示するには、以下の手順を実行します。

  1. IBM Cloud コンソールで、 [管理] > [アクセス (IAM) ] をクリックします。
  2. 「許可」 をクリックします。

権限の管理 」ページからも、ご自身の権限を確認できます。

Toolchain Authorizations for Key Protect
Toolchain Authorizations for Key Protect

必要に応じて、許可を手動で作成することができます。 シークレット参照を正常に解決するには、ツールチェーン・インスタンスが正しい Key Protect サービス・インスタンスへの Viewer アクセスと ReaderPlus アクセスの両方を持っている必要があります。

API を使用した Key Protect の設定

Key Protect ツール統合は、ツール統合を 作成読み込み更新する際に、 Toolchain HTTP API および SDK で使用できる以下の構成パラメータをサポートしています。

keyprotect 値を使用して、要求本体に tool_type_id プロパティーを指定する必要があります。

Key Protectツール統合パラメータ
パラメーター 使用法 タイプ Terraform 引数 説明
インスタンス名 必須、更新可能 ストリング instance_name Key Protect サービスインスタンスの名前。
名前 必須、更新可能 ストリング 名前 このツール統合の名前。 シークレット参照には、シークレットが存在するシークレット・ストアを識別するためのこの名前が含まれます。 ツールチェーンに統合されたすべてのシークレット・ストア・ツールには、シークレットの解決が適切に機能するように固有の名前を付ける必要があります。
リージョン 必須、更新可能 ストリング ロケーション Key Protect サービス・インスタンスが存在する IBM Cloud 地域。
リソース・グループ 必須、更新可能 ストリング resource_group_name Key Protect サービス・インスタンスが置かれているリソース・グループの名前。

Key Protect に関する詳細

Key Protect について詳しくは、サービスの概要を参照してください。