ルート認証局の作成

IBM Cloud® Secrets Manager を使用すると、ルート認証局および中間認証局 (CA) を作成することにより、独自の公開鍵インフラストラクチャー (PKI) システムを構築して管理することができます。

認証局 (CA) は、SSL/TLS 証明書に署名して発行するエンティティーです。 自己署名証明書を素早く生成したい場合は、 Secrets Manager、内部署名付きルートCAを作成することができます。 この CA を証明書チェーンのトラスト・アンカーとして使用できます。 インスタンス用のルートCAを作成したら、それを使用して、下位または従属のCA(たとえば、このサービス内で作成した他の中間認証局など)に署名を行うことができます。

インスタンスごとに最大 10 個のルート認証局を作成できます。 インスタンスで使用可能な構成のリストを表示するには、Secrets Manager UI の**「秘密エンジン」>「秘密証明書」**ページに移動します。

開始前に

開始する前に、必要なレベルのアクセス権限を持っていることを確認してください。 インスタンスのエンジン構成を管理するには、マネージャー・サービス・ロールまたはそれ以上が必要です。

UI でのルート認証局の作成

Secrets Manager のUIを使用すると、サービスインスタンス用の内部署名済みルート認証局を作成できます。

  1. コンソールで、**「メニュー」**アイコン「メニュー」アイコン **>「リソース・リスト」**をクリックします。

  2. サービスのリストから、Secrets Manager のインスタンスを選択します。

  3. シークレット・エンジンページで、プライベート証明書タブをクリックします。

  4. 「認証局」テーブルで、認証局の作成をクリックして作成ウィザードを開始します。

  5. 認証局のタイプとオプションを指定します。

    1. 権限タイプとしてルート認証局を選択します。
    2. 認証局を簡単に識別するための名前を入力します。
    3. この CA に対して生成される証明書の最大存続時間 (TTL) を選択します。 TTL は、CA 証明書が有効である期間を決定します。
    4. チェーン内に存在できる従属または下位の中間証明書の最大数を選択します。
    5. 発行元 CA 証明書の URL を中間 CA 証明書にエンコードするには、URL のエンコードオプションを有効に設定します。
  6. ルート CA 証明書のサブジェクト名フィールドを入力します。

  7. キー管理サービスを選択してください。 サービス内部でルート認証局鍵を作成する場合はSecrets Managerサービスを選択するか、Hyper Protect Crypto Services(HPCS)を選択します。 HPCSを選択した場合は、以下の作業を行う:

    1. HPCSインスタンスを選択するか、HPCSインスタンスのCRNを手動で入力します

    2. HPCS で認証するために先に作成した IAM 資格情報の秘密を選択します。

      IAM クレデンシャルが一旦 CA 構成に設定されると、後から置き換えることはできない。

    3. キーストアリストからHPCSプライベートキーストアを選択するか、キーストアIDを手動で入力します。

    4. 既存のキーを使用するか、新しいキーを生成するかを選択する。 既存のHPCS秘密鍵を選択する場合、または秘密鍵IDを手動で入力する場合は、公開鍵が存在し、それが秘密鍵ストア内の秘密鍵と同じIDであることを確認してください。

      新しい鍵を生成することを選択した場合、これらの鍵は、コンフィギュレーションが削除されても Secrets Manager によって削除されることはない。

  8. CA 証明書の公開鍵と秘密鍵を生成するために使用する鍵アルゴリズムの選択。

  9. CA 証明書の証明書失効リスト (CRL) の作成および配布ポイントを有効にするかどうかを決定します。

    CRLとは、発行元認証局によって、予定された有効期限前に失効処理された証明書のリストのことです。 CRL の一部としてリストされている証明書は、アプリケーションによって信頼できなくなります。

    1. 各証明書要求ごとにルートCA用のCRLを作成するには、 CRL作成オプションを「 有効 」に設定してください。
    2. ルート CA 証明書の失効リストの URL をエンコードするには、CRL 配布ポイントオプションを有効に設定します。
    3. 生成された CRL の存続時間 (TTL) を選択します。 TTL は、CRL が有効である期間を決定します。
  10. 選択内容を確認します。 ルート CA を作成するには、作成をクリックします。

これで、内部署名を使用した中間 CA の作成時にこのルート CA を選択できます。 既存の構成を変更または削除するには、更新する認証局の行でアクションメニューアクション・アイコンをクリックします。

API を使用したルート認証局の作成

Secrets Manager API を呼び出すことで、サービスインスタンス用の内部署名付きルート認証局を作成できます。

以下の例は、ルート認証局を作成するために使用できる照会を示しています。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
  "config_type": "private_cert_configuration_root_ca",
  "name": "test-root-CA",
  "common_name": "example.com",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "issuing_certificates_urls_encoded": true,
  "max_ttl": "43830h"
}' \  
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

ご自身のHSMを持参される場合は、リクエストに以下を含めてください:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

正常な応答によって、構成がサービス・インスタンスに追加されます。

{
  "common_name": "example.com",
  "config_type": "private_cert_configuration_root_ca",
  "created_at": "2022-06-27T11:58:15Z",
  "created_by": "iam-ServiceId-e4a2f0a4-3c76-4bef-b1f2-fbeae11c0f21",
  "crl_disable": false,
  "crl_distribution_points_encoded": true,
  "data": {
    "certificate": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bva\n-----END CERTIFICATE-----",
    "expiration": 1825612535,
    "issuing_ca": "-----BEGIN CERTIFICATE-----\nMIIGRjCCBS6gAwIBAgIUSKW6zI+E9JU4bvad\n-----END CERTIFICATE-----",
    "serial_number": "48:a5:ba:cc:8f:84:f4:95:38:6e:f6:9d:9e:d7:8f:d8:43:d3:55:bd"
  },
  "exclude_cn_from_sans": false,
  "format": "pem",
  "issuing_certificates_urls_encoded": true,
  "max_path_length": -1,
  "max_ttl_seconds": 31536000,
  "name": "test-root-CA",
  "private_key_format": "der",
  "secret_type": "private_cert",
  "updated_at": "2022-10-05T21:33:11Z"
}

必須およびオプションのリクエストパラメータの詳細については、「 設定の追加 」を参照してください。

CLI からルート認証局を作成する

ibmcloud secrets-manager configuration-create コマンドを使用して、サービス・インスタンスの内部署名ルート認証局を作成できます。

次の例は、ルート認証局を作成するために使用できるコマンドを示しています。

ibmcloud secrets-manager configuration-create
  --configuration-prototype='{
    "config_type": "private_cert_configuration_root_ca",
    "name": "example-root-CA",
    "max_ttl": "43830h",
    "crl_expiry": "72h",
    "crl_disable": false,
    "crl_distribution_points_encoded": true,
    "issuing_certificates_urls_encoded": true,
    "common_name": "example.com",
    "alt_names": [
      "alt-name-1","alt-name-2"
      ],
    "ip_sans": "127.0.0.1",
    "uri_sans": "https://www.example.com/test",
    "other_sans": ["1.2.3.5.4.3.201.10.4.3;utf8:test@example.com"],
    "ttl": "2190h",
    "format": "pem",
    "private_key_format": "der",
    "key_type": "rsa",
    "key_bits": 4096,
    "max_path_length": -1,
    "exclude_cn_from_sans": false,
    "permitted_dns_domains": ["exampleString"],
    "ou": ["exampleString"],
    "organization": ["exampleString"],
    "country": ["exampleString"],
    "locality": ["exampleString"],
    "province": ["exampleString"],
    "street_address": ["exampleString"],
    "postal_code": ["exampleString"],
    "serial_number": "d9:be:fe:35:ba:09:42:b5:35:ba:09:42:b5"
  }'

自前のHSMを持ち込む場合は、コマンドに以下を含める:

"crypto_key": {
    "label": "my_key",
    "allow_generate_key": true,
    "provider": {
      "type": "hyper_protect_crypto_services",
      "instance_crn": "replace_with_hpcs_crn::",
      "pin_iam_credentials_secret_id": "replace_with_iam_credentials_secret_guid",
      "private_keystore_id": "replace_with_keystore_id"
    }
  }

Terraform を使用したルート認証局の作成

Secrets Managerの Terraform を使用して、サービス・インスタンスの内部署名ルート認証局を作成できます。

次の例は、ルート認証局を作成するために使用できる設定を示しています。

    resource "ibm_sm_private_certificate_configuration_root_ca" "test_root_ca" {
        instance_id = local.instance_id
        region = local.region
        name = "test-root-ca"
        common_name = "root.example.com"
        max_ttl = "3650d"
        issuing_certificates_urls_encoded = true
    }

自前のHSMを持ち込む場合は、コンフィギュレーションに以下を含めてください:

crypto_key {
    label = "my_key"
    allow_generate_key = true
    provider {
      type = "hyper_protect_crypto_services"
      instance_crn = "replace_with_hpcs_crn::"
      pin_iam_credentials_secret_id = "replace_with_iam_credentials_secret_guid"
      private_keystore_id = "replace_with_keystore_id"
    }
}

UI でのルート認証局の取得

Secrets Manager UI を使用して、ルート認証局の値を取得できます。

  1. 「公開証明書」 シークレット・エンジンで、 「アクション」 メニュー 「アクション」アイコン をクリックして、エンジン構成のオプションのリストを開きます。
  2. 設定値を表示するには、 View configurationをクリックします。
  3. 安全な環境にいることを確認したら、 「確認」 をクリックします。

シークレットの値が 15 秒間表示された後、ダイアログが閉じます。

HPCS対応のプライベート証明書PKI統合の非推奨化

Secrets Manager におけるHPCS対応のプライベート証明書PKI統合機能は、スタンドアロンサービスとしてのHPCSが非推奨となることに伴い、非推奨となります。 Secrets Manager 自体は引き続き完全にサポートされており、影響を受けるのはこの特定の信頼の根源パスに限られます。

非推奨化のスケジュール

以下の表は、この非推奨化に関する主な日程と段階の概要を示しています。

HPCS対応のプライベート証明書PKI統合の廃止スケジュール
ステージ 日付 説明
発表 2026年8月6日 Secrets Manager における、HPCS 対応のプライベート証明書 PKI 統合機能の非推奨が発表されました。
新しい構成がブロックされました 2026年10月30日 HPCSでサポートされている新しい構成は、APIレベルでブロックされます。 既存の設定は、引き続き中断されることなく稼働しています。
サポート終了 2027年3月30日 基盤となる HPCS の依存関係は非推奨となっています。

サポート対象の構成への移行

サービスの中断を防ぐため、2027年3月30日のサポート終了日までに、以下の手順に従って既存の設定を移行してください:

  1. インスタンス内で、HPCSの信頼のルートを参照しているプライベート証明書の設定があるかどうかを確認してください。
  2. サポート対象の代替構成については、 Secrets Manager チーム、または IBM Cloud の担当者、CSM、TAMにお問い合わせください。

CLI を使用したルート認証局の取得

Secrets Manager CLI を使用して、ルート認証局の値を取得できます。 以下のコマンド例では、エンジン構成名をご使用の構成の名前に置き換えます。

ibmcloud secrets-manager configuration --name EXAMPLE_CONFIG --service-url https://{instance_ID}.{region}.secrets-manager.appdomain.cloud

{instance_ID} と {region} を、ご使用の Secrets Manager サービス・インスタンスに適用される値に置き換えます。 インスタンス固有のエンドポイント URL を見つけるには、Secrets Manager UI の 「エンドポイント」 ページからエンドポイント URL をコピーします。 詳細については、エンドポイント URL の表示を参照してください。

API を使用したルート認証局の取得

Secrets Manager API を使用して、ルート認証局の値を取得できます。 以下の要求例では、エンジン構成名をご使用の構成の名前に置き換えてください。

curl -X GET --location --header "Authorization: Bearer {iam_token}" \
--header "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

{instance_ID} と {region} を、ご使用の Secrets Manager サービス・インスタンスに適用される値に置き換えます。 インスタンス固有のエンドポイント URL を見つけるには、Secrets Manager UI の 「エンドポイント」 ページからエンドポイント URL をコピーします。 詳細については、エンドポイント URL の表示を参照してください。

応答が成功すると、エンジン構成の値やその他のメタデータが返されます。 必須およびオプションのリクエストパラメータの詳細については、「 シークレットの取得 」を参照してください。

次のステップ