Certificate Authority Service는 인증서 발급 프로세스를 간소화하고 보안을 유지하는 데 도움이 되는 사전 정의된 인증서 템플릿을 제공합니다. 일반적인 사용 사례를 위해 사전 구성된 X.509 매개변수 세트를 제공하는 이러한 기성 템플릿은 인증서 관리를 간소화하고, 작업자 오류의 위험을 줄이며, 보안 권장사항을 적용합니다. 각 템플릿은 특정 사용 사례를 위해 설계되어 인증서가 의도된 목적에 맞는 올바른 매개변수로 발급되도록 하는 동시에 발급 인증 기관 (CA)에서 설정한 제한사항을 준수합니다.
이 문서는 프로젝트 내에서 인증서 수명 주기를 관리하는 애플리케이션 개발자 또는 데이터 과학자와 같은 애플리케이션 운영자 그룹의 사용자를 대상으로 합니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.
인증서 템플릿 적용
템플릿을 적용하려면 CertificateRequest 리소스의 certificateTemplate 필드에 템플릿의 이름을 지정합니다. CA 서비스는 선택한 템플릿의 매개변수를 발급된 인증서에 적용합니다.
CertificateRequest 리소스를 구조화하고 certificateTemplate 필드를 포함하는 방법에 관한 자세한 안내는 인증서 요청을 참고하세요.
인증서 템플릿 유형
다음과 같은 사전 정의된 인증서 템플릿을 사용할 수 있습니다. 각 템플릿은 특정 사용 사례를 위해 설계되었으며 템플릿에서 적용하는 X.509 매개변수를 사전 구성합니다.
아래 템플릿 설명에서 템플릿에 의해 명시적으로 설정되지 않은 매개변수는 인증서 서명 요청 (CSR)에 제공되거나 사용자가 정의한 필드에 제공되든 CertificateRequest 리소스에서 가져옵니다.
기본값
템플릿 이름: default
CertificateRequest 리소스에서 인증서 템플릿을 지정하지 않으면 이 템플릿이 자동으로 사용됩니다. 발급된 인증서는 발급 CA의 프로필에서 Key
usage 및 Extended key usage 설정을 상속하고 Basic constraints를 CA:FALSE로 설정하여 인증서가 다른 인증서에 서명하는 데 사용되지 않도록 합니다.
| X509 매개변수 | 값 |
|---|---|
| RawSubject | [사용자 정의 SubjectOverride 또는 CSR에서 패스 스루] |
| 기본 제약 조건 | CA:FALSE |
| 주체 대체 제목 | [CSR에서 패스스루] |
| 키 사용 | [CA에서 설정된 키 사용] |
| 확장된 키 사용 | [CA에 설정된 확장 키 사용] |
클라이언트 TLS 인증서
템플릿 이름: endEntityClientAuthCertificate
이 템플릿은 클라이언트 측 TLS 인증을 위한 종단 개체 인증서를 발급합니다.
발급된 인증서는 Extended key usage을 TLS web client
authentication로, Basic constraints을 CA:FALSE로 설정하여 인증서가 다른 인증서에 서명하는 데 사용되지 않도록 합니다.
| X509 매개변수 | 값 |
|---|---|
| RawSubject | [사용자 정의 SubjectOverride 또는 CSR에서 패스 스루] |
| 기본 제약 조건 | CA:FALSE |
| 주체 대체 제목 | [CSR에서 패스스루] |
| 키 사용 | 중요, 디지털 서명, 키 암호화 |
| 확장된 키 사용 | TLS 웹 클라이언트 인증 |
서버 TLS 인증서
템플릿 이름: endEntityServerAuthCertificate
이 템플릿은 서버 측 TLS 인증을 위한 종단 개체 인증서를 발급하며 웹 서버와 함께 사용하기에 적합합니다. 발급된 인증서는 Extended
key usage을 TLS web server authentication로, Basic constraints을 CA:FALSE로 설정하여 인증서가 다른 인증서에 서명하는 데 사용되지 않도록 합니다.
| X509 매개변수 | 값 |
|---|---|
| RawSubject | [사용자 정의 SubjectOverride 또는 CSR에서 패스 스루] |
| 기본 제약 조건 | CA:FALSE |
| 주체 대체 제목 | [CSR에서 패스스루] |
| 키 사용 | 중요, 디지털 서명, 키 암호화 |
| 확장된 키 사용 | TLS 웹 서버 인증 |
종속 CA 인증서 (PathLen 0)
템플릿 이름: blankSubCACertificate_PathLen0_CSRPassthrough
이 템플릿은 경로 길이 제약 조건이 0인 하위 CA 인증서를 발급하므로 인증서가 종단 개체 인증서에 서명할 수 있지만 다른 CA 인증서에는 서명할 수 없습니다.
| X509 매개변수 | 값 |
|---|---|
| RawSubject | [사용자 정의 SubjectOverride 또는 CSR에서 패스 스루] |
| 기본 제약 조건 | CA:TRUE, pathlen: 0 |
| 주체 대체 제목 | [CSR에서 패스스루] |
| 키 사용 | [CSR에 설정된 키 사용] |
| 확장된 키 사용 | [CSR에 설정된 확장 키 사용] |
종속 CA 인증서 (PathLen 1)
템플릿 이름: blankSubCACertificate_PathLen1_CSRPassthrough
이 템플릿은 경로 길이 제약 조건이 1인 하위 CA 인증서를 발급하므로 인증서가 경로 길이가 0인 종단 개체 인증서와 다른 하위 CA 인증서에 서명할 수 있습니다.
| X509 매개변수 | 값 |
|---|---|
| RawSubject | [사용자 정의 SubjectOverride 또는 CSR에서 패스 스루] |
| 기본 제약 조건 | CA:TRUE, pathlen: 1 |
| 주체 대체 제목 | [CSR에서 패스스루] |
| 키 사용 | [CSR에 설정된 키 사용] |
| 확장된 키 사용 | [CSR에 설정된 확장 키 사용] |
충돌 감지
각 CA에는 발급이 허용된 인증서 유형을 정의하는 프로필이 있습니다. 예를 들어 CA는 클라이언트 인증 인증서만 발급하도록 제한될 수 있습니다. CA의 프로필은 CA가 생성될 때 CertificateAuthority 리소스의 certificateProfile 섹션 내에서 구성됩니다. 자세한 내용은 루트 인증 기관 만들기 및 하위 인증 기관 만들기를 참고하세요.
사전 정의된 템플릿을 사용하여 인증서를 요청하면 CA 서비스에서 발급 CA의 구성에 대해 템플릿의 매개변수를 검증합니다. 유효하려면 선택한 템플릿에 정의된 X.509 파라미터가 발급 CA의 certificateProfile에 따라 허용되는 파라미터의 하위 집합이어야 합니다. 템플릿에서 CA가 부여할 권한이 없는 속성이나 권한을 요청하면 충돌이 발생합니다. 예를 들어 발급 CA가 clientAuth만 부여하도록 승인된 경우 템플릿은 serverAuth의 Extended key usage (EKU)를 요청할 수 없습니다.
CA 서비스에서 이러한 충돌을 감지하면 CertificateRequest가 실패합니다. CertificateRequest 리소스의 상태를 검사하여 실패 이유를 파악할 수 있습니다.
예
다음 시나리오에서는 client-certs-ca라는 CA가 클라이언트 인증에만 인증서를 발급하도록 구성됩니다. certificateProfile은 허용되는 유일한 Extended key usage이 TLS web client authentication임을 지정합니다.
endEntityServerAuthCertificate 템플릿을 사용하여 서버의 인증서를 발급하기 위해 다음 CertificateRequest를 제출합니다.
apiVersion: pki.security.gdc.goog/v1
kind: CertificateRequest
metadata:
name: server-cert-req
namespace: my-project
spec:
certificateAuthorityRef:
name: client-certs-ca
namespace: my-project
csr: "..."
certificateTemplate: endEntityServerAuthCertificate
signedCertificateSecret: server-cert-secret
이 요청은 다음과 같은 이유로 실패합니다.
endEntityServerAuthCertificate템플릿에는 EKUTLS web server authentication이 필요합니다.- 발급 CA
client-certs-ca에는 EKUTLS web client authentication만 허용하는certificateProfile가 있습니다.
템플릿에 필요한 EKU가 CA 프로필에서 허용하는 EKU 목록에 포함되지 않으므로 템플릿의 요구사항이 CA의 허용된 매개변수의 하위 집합이 아닙니다. 따라서 요청이 거부됩니다.