인증서 수동 순환

문서 버전을 선택합니다.

기본적으로 AlloyDB Omni Kubernetes 연산자는 cert-manager을 사용하여 각 데이터베이스 클러스터에 TLS 인증서 집합을 프로비저닝합니다. 데이터베이스 서버 인증서 외에도 운영자는 컨트롤 플레인 구성요소의 인증서를 만들어 내부 연결을 보호합니다.

cert-managerCertificate 객체의 durationrenewBefore 필드를 기반으로 인증서 갱신을 자동화하지만 다음 시나리오에서는 인증서 순환을 수동으로 트리거해야 할 수 있습니다.

  • 비공개 키가 유출되었습니다.
  • CA 인증서가 순환됩니다. cert-manager 문서에 따르면 발급자와 연결된 CA 인증서가 순환되면 리프 인증서가 자동으로 재발급되지 않습니다.
  • cert-manager 자동 재발급이 실패합니다. 드물지만 cert-manager FAQ에 설명된 특정 조건으로 인해 자동 재발급이 트리거되지 않으면 수동 순환을 트리거해야 합니다.

시작하기 전에

  • Kubernetes 클러스터에 액세스하도록 kubectl가 구성되어 있는지 확인합니다.
  • Kubernetes 클러스터에서 cert-manager가 실행 중인지 확인합니다.

수동 인증서 순환

인증서 순환을 수동으로 트리거하려면 cert-manager Certificate 객체와 연결된 보안 비밀을 삭제합니다. cert-manager 컨트롤러는 객체를 조정하고 인증서를 다시 발급하여 새 보안 비밀을 만듭니다. AlloyDB Omni 운영자와 연결된 워크로드는 새 인증서를 사용하도록 TLS 구성을 자동으로 다시 로드합니다.

  1. 회전하려는 cert-manager Certificate를 식별합니다. 이러한 객체는 DBCluster 네임스페이스와 AlloyDB Omni 연산자가 설치된 네임스페이스에 있습니다. CA 인증서의 이름에는 dbs-al-ca 접두사가 있고 리프 인증서에는 dbs-al-cert 접두사가 있습니다. 나머지 단계에서는 출력에서 연결된 보안 비밀의 이름을 사용합니다.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. 순환을 트리거하기 전에 인증서 시크릿을 백업합니다.

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. 인증서 보안 비밀을 삭제합니다.

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. cert-manager가 인증서 보안 비밀을 다시 만들 때까지 기다립니다.

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

인증서 순환 확인

인증서를 수동으로 순환한 후 새 인증서가 사용 중인지 확인합니다.

  1. 인증서 보안 비밀을 확인합니다. creationTimestamp 값은 인증서를 수동으로 순환한 후의 시간을 반영해야 합니다.

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Certificate 상태를 확인합니다. 상태 섹션의 notBeforenotAfter 날짜가 올바른지 확인합니다.

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

다음 단계