サード・パーティー認証局の接続

IBM Cloud® Secrets Manager を使用すると、インスタンスに構成を追加して、サード・パーティーの認証局に接続することができます。

認証局 (CA) は、SSL/TLS 証明書に署名して発行するエンティティーです。 CA 構成を追加することにより、Secrets Manager をパブリック証明書の注文使用する場合に使用する権限を指定できます。

インスタンスごとに最大 10 個の認証局構成を定義できます。 インスタンスで使用可能な構成のリストを表示するには、Secrets Manager UI の**「シークレット・エンジン」 > 「パブリック証明書」**ページに移動します。

インスタンスごとに最大 10 個の認証局構成を定義できます。 インスタンスで使用可能な構成のリストを取得するには、リスト構成 API を使用します。

開始前に

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

サポート対象の認証局

以下の認証局は、Secrets Manager サービス・インスタンスと統合できます。

前提条件 - Let's Encrypt
前提条件

Let's Encryptを接続する前に、以下を確認してください:

  • 自動証明書管理環境(ACME) アカウントいる秘密鍵を取得する。
    ACME プロトコルにより、人手を介さずにブラウザーの信頼できる証明書を自動的に取得することができます。 Let's Encrypt 証明書を Secrets Manager からリクエストする前に、ACME アカウント必要です。 すでにACME アカウントお持ちの場合は、 アカウント作成時に生成された秘密鍵が必要です。

  • オプション:ACME アカウント作成します。
    既存のACMEクライアントまたはアカウントお持ちでない場合は、 ACME アカウント作成ツール.

認証局は、証明書を注文または更新するときに料金を適用する場合があります。 また、さまざまなレート制限が適用されます。Secrets Manager は、証明書オーダーに関連付けられているコストまたはレートの制限を制御しません。 Let's Encrypt証明書を注文する際に注意すべきレート制限の詳細については、 Let's Encryptのドキュメントをご覧ください。

UI を使用した認証局構成の追加

Secrets Manager UI を使用して、認証局構成をサービス・インスタンスに追加することができます。

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

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

  3. **「シークレット・エンジン」ページで、「パブリック証明書」**タブをクリックします。

  4. 「認証局」テーブルで、**「追加」**をクリックします。

  5. 使用する認証局を選択します。 現時点では Let's Encrypt がサポートされています。

    1. 本番稼働環境をターゲットにするには、**「Let's Encrypt」**を選択します。
    2. ステージング環境をターゲットにするには、**「Let's Encrypt (Staging)」**を選択します。 まだ実稼働環境では使用しない証明書を発行する場合は、このオプションを選択してください。
  6. ACME アカウントに関連付けられている PEM フォーマットのプライベート・キー・ファイルを追加するか、またはその値を入力します。

  7. 追加 をクリックします。

    これで、証明書を注文する時にこの構成を選択できるようになりました。 既存の構成を変更または削除するには、更新する構成の行で**「アクション」**メニュー「アクション」アイコンをクリックします。

CLIからの認証局設定の追加

Secrets Manager CLI を使用して、サービス・インスタンスに認証局設定を追加できます。

構成を追加するには、 ibmcloud secrets-manager configuration-create コマンドを実行します。

ibmcloud secrets-manager configuration-create '{
  config_type": "public_cert_configuration_ca_lets_encrypt",
  "lets_encrypt_environment": "production",
  "lets_encrypt_private_key": "-----BEGIN PRIVATE KEY-----\nMY_PRIVATE_KEY_WITH_NEWLINES_TRANSFORMED_TO_\N_CHARS-----...", "name": "my-lets-encrypt-config"
  }'

API を使用した認証局構成の追加

Secrets Manager API を呼び出して、認証局構成をサービス・インスタンスに追加することができます。

Let's Encrypt の構成を追加するために使用できる照会の例を以下に示します。 APIを呼び出す際には、 private_key の値を、 ACME アカウント に関連付けられている秘密鍵に置き換えてください。

Secrets Manager API によって正しく構文解析できるように、必ずプライベート・キー・ファイルを単一行フォーマットに変換してください。 次のUNIXコマンドawk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' <private_key_file>を使用して、ファイルを単一行ストリングにフォーマットすることができます。

curl -X POST
  --H "Authorization: Bearer {iam_token}" \
  --H "Accept: application/json" \
  --H "Content-Type: application/json" \
  --d '{
    "config_type": "public_cert_configuration_ca_lets_encrypt",
    "lets_encrypt_environment": "production",
    "lets_encrypt_private_key": "-----BEGIN PRIVATE KEY-----\nMIIEowIBAAKCAQEAqcRbzV1wp0nVrPtEpMtnWMO6Js1q3rhREZluKZfu0Q8SY4H3",
    "name": "lets-encrypt-config"
  }' \
    "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations"

正常な応答によって、構成がサービス・インスタンスに追加されます。 必須およびオプションのリクエストパラメータの詳細については、 設定の追加を参照してください。

Terraformで認証局の設定を追加する

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

    resource "ibm_sm_public_certificate_configuration_ca_lets_encrypt" "my_lets_encrypt_config" {
        instance_id = local.instance_id
        region = local.region
        name = "lets-encrypt-config"
        lets_encrypt_environment = "production"
        lets_encrypt_private_key = var.my_lets_encrypt_private_ley
    }

UI を使用した認証局構成の削除

構成が不要になったら、Secrets Manager UI を使用して構成を削除できます。

構成を削除すると、認証局に関連付けられている証明書の自動ローテーションができなくなります。 実動環境のアプリやサービスの証明書に関連付けられている構成は削除しないでください。

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

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

  3. **「シークレット・エンジン」ページで、「パブリック証明書」**タブをクリックします。

  4. 「認証局」 テーブルを使用して、インスタンスの構成を表示します。

  5. 削除する構成の行で、**「アクション」**メニュー「アクション」アイコン **>「削除」**をクリックします。

  6. 構成の名前を入力して、その削除を確認します。

  7. **「削除」**をクリックします。

CLIからの認証局設定の削除

証明機関の設定を削除するには、コマンドを実行します。 ibmcloud secrets-manager configuration-delete コマンドを実行します。

ibmcloud secrets-manager configuration-delete my-configuration-name

API を使用した認証局構成の削除

Secrets Manager API を呼び出すと、構成を削除できます。

インスタンスから認証局構成を削除するために使用できる照会の例を以下に示します。 APIを呼び出すときには、{config_name}を、削除する構成の名前に置き換えます。

構成を削除すると、認証局に関連付けられている証明書の自動ローテーションができなくなります。 実動環境のアプリやサービスの証明書に関連付けられている構成は削除しないでください。

curl -X DELETE
  --H "Authorization: Bearer {iam_token}"\
  "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/configurations/{name}"

正常な応答によって、サービス・インスタンスから構成が削除されます。 必須およびオプションのリクエストパラメータの詳細については、 設定の削除を参照してください。

UIでの認証局設定の取得

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

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

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

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 の表示を参照してください。

レスポンスに成功すると、他のメタデータとともにエンジン・コンフィギュレーションの値が返される。 必須およびオプションのリクエスト・パラメータの詳細については、 秘密の取得 を参照のこと。

次のステップ