cert-manager을 사용하여 각 데이터베이스 클러스터에 TLS 인증서 집합을 프로비저닝합니다. 데이터베이스 서버 인증서 외에도 운영자는 컨트롤 플레인 구성요소의 인증서를 만들어 내부 연결을 보호합니다.
cert-manager는 Certificate 객체의 duration 및 renewBefore 필드를 기반으로 인증서 갱신을 자동화하지만 다음 시나리오에서는 인증서 순환을 수동으로 트리거해야 할 수 있습니다.
- 비공개 키가 유출되었습니다.
- CA 인증서가 순환됩니다.
cert-manager문서에 따르면 발급자와 연결된 CA 인증서가 순환되면 리프 인증서가 자동으로 재발급되지 않습니다. cert-manager자동 재발급이 실패합니다. 드물지만 cert-manager FAQ에 설명된 특정 조건으로 인해 자동 재발급이 트리거되지 않으면 수동 순환을 트리거해야 합니다.
시작하기 전에
- Kubernetes 클러스터에 액세스하도록
kubectl가 구성되어 있는지 확인합니다. - Kubernetes 클러스터에서
cert-manager가 실행 중인지 확인합니다.
수동 인증서 순환
인증서 순환을 수동으로 트리거하려면 cert-manager Certificate 객체와 연결된 보안 비밀을 삭제합니다. cert-manager 컨트롤러는 객체를 조정하고 인증서를 다시 발급하여 새 보안 비밀을 만듭니다. AlloyDB Omni 운영자와 연결된 워크로드는 새 인증서를 사용하도록 TLS 구성을 자동으로 다시 로드합니다.
회전하려는
cert-managerCertificate를 식별합니다. 이러한 객체는DBCluster네임스페이스와 AlloyDB Omni 연산자가 설치된 네임스페이스에 있습니다. CA 인증서의 이름에는dbs-al-ca접두사가 있고 리프 인증서에는dbs-al-cert접두사가 있습니다. 나머지 단계에서는 출력에서 연결된 보안 비밀의 이름을 사용합니다.kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide순환을 트리거하기 전에 인증서 시크릿을 백업합니다.
kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak인증서 보안 비밀을 삭제합니다.
kubectl delete secret SECRET_NAME -n NAMESPACEcert-manager가 인증서 보안 비밀을 다시 만들 때까지 기다립니다.kubectl get secret SECRET_NAME -n NAMESPACE -w
인증서 순환 확인
인증서를 수동으로 순환한 후 새 인증서가 사용 중인지 확인합니다.
인증서 보안 비밀을 확인합니다.
creationTimestamp값은 인증서를 수동으로 순환한 후의 시간을 반영해야 합니다.kubectl get secret SECRET_NAME -n NAMESPACE -o yamlCertificate상태를 확인합니다. 상태 섹션의notBefore및notAfter날짜가 올바른지 확인합니다.kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE