רוטציה ידנית של אישורים

בוחרים גרסת תיעוד:

כברירת מחדל, מפעיל ה-Kubernetes של AlloyDB Omni משתמש ב-cert-manager כדי להקצות קבוצה של אישורי TLS לכל אשכול של מסד נתונים. בנוסף לאישור של שרת מסד הנתונים, המפעיל יוצר אישורים לרכיבים של מישור הבקרה כדי לאבטח חיבורים פנימיים.

‫cert-manager מבצע חידוש אוטומטי של אישורים על סמך השדות duration ו-renewBefore של אובייקט Certificate, אבל יכול להיות שתצטרכו להפעיל ידנית את רוטציית האישורים בתרחישים הבאים:

  • מפתח פרטי נפרץ.
  • אישור CA מוחלף. לפי התיעוד של cert-manager, כשאישור CA שמשויך למנפיק עובר רוטציה, אישורי הקצה לא מונפקים מחדש באופן אוטומטי.
  • cert-manager הנפקה אוטומטית חוזרת נכשלת. במקרים נדירים, אם ההנפקה מחדש באופן אוטומטי לא מופעלת בגלל תנאים ספציפיים שמתוארים בשאלות הנפוצות בנושא cert-manager, צריך להפעיל רוטציה ידנית.

לפני שמתחילים

  • מוודאים שהגדרתם את kubectl כדי לגשת לאשכול Kubernetes.
  • מוודאים ש-cert-manager פועל באשכול Kubernetes.

רוטציה ידנית של אישורים

כדי להפעיל ידנית את רוטציית האישורים, מוחקים את ה-Secret שמשויך לאובייקט 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. מוודאים שהתאריכים של notBefore ו-notAfter בקטע הסטטוס נכונים:

    kubectl describe certificate CERTIFICATE_NAME -n NAMESPACE
    

המאמרים הבאים