루트 인증 기관 작성
IBM Cloud® Secrets Manager을(를) 사용하면 루트 및 중간 인증 기관(CA)을 작성하여 자체 공개 키 인프라(PKI) 시스템을 빌드하고 관리할 수 있습니다.
인증 기관(CA)은 SSL/TLS 인증서를 서명하고 발행하는 엔티티입니다. 자체 서명 인증서를 빠르게 생성하는 기능을 찾고 있다면 Secrets Manager 을 사용하여 내부적으로 서명된 루트 CA를 만들 수 있습니다. 이 CA를 인증서 체인의 신뢰 앵커로 사용할 수 있습니다. 인스턴스에 대한 루트 CA를 만든 후에는 이를 사용하여 서비스에서 생성하는 다른 중간 인증 기관과 같은 하위 수준 또는 하위 CA에 서명할 수 있습니다.
인스턴스당 최대 10개의 루트 인증 기관을 작성할 수 있습니다. 인스턴스에 사용 가능한 구성 목록을 보려면 Secrets Manager UI의 시크릿 엔진 > 개인 인증서 페이지로 이동하십시오.
시작하기 전에
시작하기 전에 필수 액세스 레벨이 있는지 확인하십시오. 인스턴스의 엔진 구성을 관리하려면 관리자 서비스 역할 이상이 필요합니다.
UI에서 루트 인증 기관 작성
Secrets Manager UI를 사용하여 서비스 인스턴스에 대해 내부적으로 서명된 루트 인증 기관을 만들 수 있습니다.
-
콘솔에서 메뉴 아이콘
> 리소스 목록을 클릭하십시오.
-
서비스 목록에서 Secrets Manager의 인스턴스를 선택하십시오.
-
시크릿 엔진 페이지에서 개인 인증서 탭을 클릭하십시오.
-
인증 기관 테이블에서 인증 기관 작성을 클릭하여 작성 마법사를 시작하십시오.
-
인증 기관 유형 및 옵션을 지정하십시오.
- 기관 유형으로 루트 인증 기관을 선택하십시오.
- 인증 기관을 쉽게 식별할 수 있는 이름을 입력하십시오.
- 이 CA에 대해 생성될 인증서에 대한 최대 TTL(Time-To-Live)을 선택하십시오. TTL은 CA 인증서가 유효하게 유지되는 기간을 결정합니다.
- 체인에 존재할 수 있는 종속 또는 하위 레벨 중간 인증서의 최대 수를 선택하십시오.
- 발행 CA 인증서 URL을 중간 CA 인증서로 인코딩하려면 URL 인코딩 옵션을 사용으로 설정하십시오.
-
루트 CA 인증서에 대한 주체 이름 필드를 입력하십시오.
-
키 관리 서비스를 선택합니다. 서비스에서 내부적으로 루트 인증 기관 키를 만들려면 Secrets Manager 서비스를 선택하거나 Hyper Protect Crypto Services(HPCS)를 선택합니다. HPCS를 선택한 경우 다음 작업을 수행합니다:
-
HPCS 인스턴스를 선택하거나 HPCS 인스턴스 CRN을 수동으로 입력합니다
-
HPCS로 인증하기 위해 이전에 만든 IAM 자격증명 비밀을 선택합니다.
CA 구성에서 IAM 자격 증명을 설정한 후에는 나중에 교체할 수 없습니다.
-
키 저장소 목록에서 HPCS 개인 키 저장소를 선택하거나 키 저장소 ID를 수동으로 입력합니다.
-
기존 키를 사용하거나 새 키를 생성하도록 선택합니다. 기존 HPCS 개인키를 선택하거나 개인키 ID를 수동으로 입력하는 경우, 공개키가 존재하고 개인키 저장소에 있는 개인키와 동일한 ID를 가지고 있는지 확인해야 합니다.
새 키를 생성하도록 선택한 경우, 해당 키는 구성이 삭제될 경우를 대비하여 Secrets Manager 에서 삭제하지 않습니다.
-
-
CA 인증서에 대한 공개 및 개인 키를 생성하는 데 사용할 키 알고리즘을 선택하십시오.
-
CA 인증서에 대한 인증서 폐기 목록(CRL) 빌드 및 배포 지점을 사용하도록 설정할지 여부를 결정하십시오.
CRL은 예정된 만료일 전에 발급 인증 기관에서 해지한 인증서 목록입니다. CRL의 일부로 나열된 인증서는 애플리케이션에서 더 이상 신뢰할 수 없습니다.
- 각 인증서 요청에 대해 루트 CA에 대한 CRL을 구축하려면 CRL 구축 옵션을 사용으로 설정합니다.
- 루트 CA 인증서에서 폐기 목록의 URL을 인코딩하려면 CRL 배포 지점 옵션을 사용으로 설정하십시오.
- 생성된 CRL의 TTL(Time-To-Live)을 선택하십시오. TTL은 CRL이 유효하게 유지되는 시간을 결정합니다.
-
선택사항을 검토하십시오. 루트 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를 사용하여 루트 인증 기관 값을 검색할 수 있습니다.
- 공용 인증서 시크릿 엔진에서 조치 메뉴
을 클릭하여 엔진 구성에 대한 옵션 목록을 여십시오.
- 구성 값을 보려면 구성 보기를 클릭합니다.
- 안전한 환경에 있는지 확인한 후 확인 을 클릭하십시오.
시크릿 값이 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 보기를
참조하십시오.
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 보기를
참조하십시오.
성공적인 응답은 다른 메타데이터와 함께 엔진 구성 값을 반환합니다. 필수 및 선택적 요청 매개변수에 대한 자세한 내용은 비밀번호 가져오기를 참조하세요.
다음 단계
- 중간 인증 기관 작성
- Terraform IBM 모듈(TIM)을 사용하여 루트 CA 설정을 간소화하세요. Secrets Manager 개인 인증서 엔진용 테라폼.