이 문서에서는 Certificate Authority Service를 사용하여 인증서를 취소하는 방법을 설명합니다. 인증서를 취소하면 만료일 전에 인증서가 무효화되어 인증에 사용할 수 없게 됩니다. 비공개 키가 손상되거나, 새 인증서로 인증서가 대체되거나, 인증서가 더 이상 필요하지 않은 경우 (예: 인증서가 발급된 서비스가 폐기된 경우) 인증서를 취소할 수 있습니다.
이 문서는 프로젝트 내에서 인증서 수명 주기를 관리하는 애플리케이션 개발자 또는 데이터 과학자와 같은 애플리케이션 운영자 그룹 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 그룹을 참고하세요.
인증서 취소 정보
CA 서비스는 해지 인증서 목록 (CRL)을 게시하여 인증서 취소를 지원합니다. CRL은 취소되었으며 더 이상 신뢰할 수 없는 인증서의 일련번호 목록입니다. 기본적으로 새 CRL은 15분마다 게시됩니다. 또한 인증서 취소가 성공하면 새 CRL 생성이 자동으로 트리거됩니다.
CA 서비스에서 발급한 인증서에는 CRL 배포 지점 (CDP)이라는 확장 프로그램이 포함되어 있습니다. 이 확장 프로그램에는 해당 인증서의 CRL을 찾고 다운로드할 수 있는 URL이 포함되어 있습니다. 클라이언트 애플리케이션은 이 URL을 사용하여 CRL을 가져오고 인증서의 일련번호가 있는지 확인합니다. 일련번호가 목록에 표시되면 인증서가 유효하지 않은 것으로 간주되며 연결이 거부되어야 합니다.
시작하기 전에
인증서를 취소하려면 먼저 필요한 권한을 요청하고 환경을 준비해야 합니다.
IAM 역할 요청
인증서를 취소하고 취소 요청을 보려면 조직 IAM 관리자에게 문의하여 인증 기관의 프로젝트 네임스페이스에서 CA 서비스 작업 관리자(certificate-authority-service-operation-manager) 역할을 요청하세요.
개발 환경 준비
kubeconfig 파일을 생성하여
kubectl액세스를 구성합니다.
인증서 취소
인증서 취소 방법은 인증서를 발급한 인증 기관 (CA)에 ACME 모드가 사용 설정되어 있는지에 따라 다릅니다. 인증서를 취소하면 인증서가 만료될 때까지 해당 CA의 모든 향후 CRL에 일련번호가 표시됩니다.
ACME 지원 CA에서 인증서 취소
각 ACME 지원 CA는 준비가 되면 상태에 고유한 ACME 서버 URL을 노출합니다. ACME 지원 CA에서 인증서를 취소하려면 ACME 클라이언트 도구를 사용하여 ACME 프로토콜을 통해 이 URL과 상호작용해야 합니다.
ACME 지원 CA에서 인증서를 취소하려면 다음 단계를 따르세요.
CA의 ACME 서버 URL을 가져옵니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ get certificateauthorities CA_NAME \ -n USER_PROJECT_NAMESPACE \ -ojson | jq -r '.status.acme.uri'다음을 바꿉니다.
MANAGEMENT_API_SERVER_KUBECONFIG: Management API 서버의 kubeconfig 파일 경로CA_NAME: ACME 지원 CA (루트 또는 하위)의 이름USER_PROJECT_NAMESPACE: 프로젝트의 네임스페이스
선택한 ACME 클라이언트 도구와 함께 가져온 URL을 사용하여 취소 요청을 발급합니다. 자세한 내용은 특정 ACME 클라이언트의 문서를 참고하세요.
ACME 지원 중지 CA에서 인증서 취소
CA에서 ACME 모드가 사용 중지된 경우 RevokeCertificateRequest 커스텀 리소스를 만들고 적용하여 인증서를 취소합니다.
RevokeCertificateRequest커스텀 리소스 YAML 파일 (예:revoke-cert-request.yaml)을 만듭니다.apiVersion: pki.security.gdc.goog/v1 kind: RevokeCertificateRequest metadata: name: REVOKE_CERT_REQ_NAME namespace: USER_PROJECT_NAMESPACE spec: certificateRequestRef: name: CERT_REQ_NAME namespace: USER_PROJECT_NAMESPACE reason: REASON다음을 바꿉니다.
REVOKE_CERT_REQ_NAME: 취소 요청의 사용자 정의 이름USER_PROJECT_NAMESPACE: 프로젝트의 네임스페이스CERT_REQ_NAME: 취소하려는 인증서와 연결된CertificateRequest리소스의 이름REASON: 취소 이유 유효한 이유는Unspecified,KeyCompromise,CaCompromise,AffiliationChanged,Superseded,CessationOfOperation,CertificateHold,RemoveFromCrl,PrivilegeWithdrawn,AaCompromise입니다.
커스텀 리소스를 적용합니다.
kubectl apply -f revoke-cert-request.yaml --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIGMANAGEMENT_API_SERVER_KUBECONFIG를 Management API 서버의 kubeconfig 파일 경로로 바꿉니다.
인증서 취소 요청의 준비 상태를 확인합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \ -n USER_PROJECT_NAMESPACE \ get revokecertificaterequest.pki.security.gdc.goog/REVOKE_CERT_REQ_NAME \ -ojson | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'다음을 바꿉니다.
MANAGEMENT_API_SERVER_KUBECONFIG: Management API 서버의 kubeconfig 파일 경로USER_PROJECT_NAMESPACE: 프로젝트의 네임스페이스REVOKE_CERT_REQ_NAME: 취소 요청의 이름
결과는 다음과 유사합니다.
{ "lastTransitionTime": "2025-08-19T23:20:22Z", "message": "RevokeCertificateRequest reconciled", "observedGeneration": 1, "reason": "Ready", "status": "True", "type": "Ready" }프로세스가 완료되고 인증서의 일련번호가 다음에 생성되는 CRL에 추가됩니다.
취소된 인증서 요청 나열
프로젝트 네임스페이스에서 모든 RevokeCertificateRequest 리소스를 나열합니다.
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG \
-n USER_PROJECT_NAMESPACE \
get revokecertificaterequests
다음을 바꿉니다.
MANAGEMENT_API_SERVER_KUBECONFIG: Management API 서버의 kubeconfig 파일 경로USER_PROJECT_NAMESPACE: 프로젝트의 네임스페이스
결과는 다음과 유사합니다.
NAMESPACE NAME READY AGE
foo revoke-cert-req True 30s