루트 인증 기관 작성

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(Time-To-Live)을 선택하십시오. 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 자격증명 비밀을 선택합니다.

      CA 구성에서 IAM 자격 증명을 설정한 후에는 나중에 교체할 수 없습니다.

    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(Time-To-Live)을 선택하십시오. 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. 구성 값을 보려면 구성 보기를 클릭합니다.
  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 보기를 참조하십시오.

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 보기를 참조하십시오.

응답이 성공하면 엔진 구성 값과 기타 메타데이터가 반환됩니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 ‘비밀 키 가져오기’를 참조하세요.

다음 단계