Merotasi sertifikat secara manual

Pilih versi dokumentasi:

Secara default, operator Kubernetes AlloyDB Omni menggunakan cert-manager untuk menyediakan serangkaian sertifikat TLS untuk setiap cluster database. Selain sertifikat server database, operator membuat sertifikat untuk komponen bidang kontrol guna mengamankan koneksi internal.

Meskipun cert-manager mengotomatiskan perpanjangan sertifikat berdasarkan kolom duration dan renewBefore dari objek Certificate, Anda mungkin perlu memicu rotasi sertifikat secara manual dalam skenario berikut:

  • Kunci pribadi disusupi.
  • Sertifikat CA dirotasi. Menurut dokumentasi cert-manager, saat sertifikat CA yang terkait dengan penerbit dirotasi, sertifikat leaf tidak akan otomatis diterbitkan ulang.
  • Penerbitan ulang otomatis cert-manager gagal. Meskipun jarang terjadi, jika penerbitan ulang otomatis tidak dipicu karena kondisi tertentu yang dijelaskan dalam FAQ cert-manager, Anda harus memicu rotasi manual.

Sebelum memulai

  • Pastikan Anda telah mengonfigurasi kubectl untuk mengakses cluster Kubernetes.
  • Pastikan cert-manager berjalan di cluster Kubernetes Anda.

Rotasi sertifikat manual

Untuk memicu rotasi sertifikat secara manual, hapus secret yang terkait dengan objek Certificate cert-manager. Pengontrol cert-manager merekonsiliasi objek dan menerbitkan ulang sertifikat, yang akan membuat secret baru. Workload yang terkait dengan operator AlloyDB Omni akan otomatis memuat ulang konfigurasi TLS-nya untuk menggunakan sertifikat baru.

  1. Identifikasi Certificate cert-manager yang ingin Anda rotasi. Objek ini berada di namespace DBCluster dan namespace tempat operator AlloyDB Omni diinstal. Nama sertifikat CA memiliki awalan dbs-al-ca, sedangkan sertifikat leaf memiliki awalan dbs-al-cert. Pada langkah-langkah yang tersisa, gunakan nama secret terkait dari output.

    kubectl get certificate CERTIFICATE_NAME -n NAMESPACE -o wide
    
  2. Sebelum memicu rotasi, buat cadangan secret sertifikat:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml > SECRET_NAME-NAMESPACE.yaml.bak
    
  3. Hapus secret sertifikat:

    kubectl delete secret SECRET_NAME -n NAMESPACE
    
  4. Tunggu hingga cert-manager membuat ulang secret sertifikat:

    kubectl get secret SECRET_NAME -n NAMESPACE -w
    

Memverifikasi rotasi sertifikat

Setelah Anda merotasi sertifikat secara manual, verifikasi bahwa sertifikat baru sedang digunakan:

  1. Periksa secret sertifikat. Nilai creationTimestamp harus mencerminkan waktu setelah Anda merotasi sertifikat secara manual:

    kubectl get secret SECRET_NAME -n NAMESPACE -o yaml
    
  2. Periksa status Certificate. Verifikasi bahwa tanggal notBefore dan notAfter di bagian status sudah benar:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

Langkah berikutnya