כשיוצרים אשכול מסדי נתונים, נוצר אישור שרת שנחתם על ידי CA ברירת המחדל של GDC ומוגדר לשימוש על ידי שרת מסד הנתונים. כדי לחתום על אישור למסד הנתונים שלכם ולהעלות אותו, אם הוא הונפק על ידי PKI משלכם, צריך לבצע את הפעולות הבאות. כדי להשתמש בתכונה הזו, מנפיק ברירת המחדל של הארגון חייב להיות במצב 'שימוש באישור משלכם'.
API
אחרי שיוצרים את אשכול מסדי הנתונים והוא מוכן, שומרים את בקשת חתימת האישור שנוצרה כקובץ.
kubectl get certificate.pki.security.gdc.goog \ dbs-pg-cert-request-DBCLUSTER_NAME \ -n USER_PROJECT -o jsonpath='{.status.byoCertStatus.csrStatus.csr}' \ | base64 -d > DBCLUSTER_NAME.csrיוצרים קובץ של תוספים ל-CSR שמכיל את ה-SAN של אשכול מסד הנתונים.
export SAN=$(openssl req -in DBCLUSTER_NAME.csr -noout -text | grep 'DNS:' | sed -s 's/^[ ]*//')echo "keyUsage=digitalSignature,keyEncipherment extendedKeyUsage=serverAuth,clientAuth subjectAltName=${SAN:?}" > DBCLUSTER_NAME-csr.extבעזרת קובץ ה-CSR וקובץ התוסף, יוצרים את האישור שחתום על ידי רשות האישורים. בדוגמת הקוד נעשה שימוש ב-
openssl, אבל אפשר לבצע את השלב הזה גם באמצעות כלים אחרים.openssl x509 -req -in DBCLUSTER_NAME.csr -days 365 \ -CA CA_CERTIFICATE_FILE -CAkey CA_PRIVATE_KEY_FILE \ -CAcreateserial -extfile DBCLUSTER_NAME-csr.ext \ -out DBCLUSTER_NAME-signed.crtמעדכנים את משאב האישור עם האישור החתום ואישור ה-CA.
echo "spec: byoCertificate: certificate: $(base64 -w0 DBCLUSTER_NAME-signed.crt) ca: $(base64 -w0 CA_CERTIFICATE_FILE)" > patch.txtkubectl patch certificate.pki.security.gdc.goog \ dbs-pg-cert-request-DBCLUSTER_NAME \ -n USER_PROJECT --patch-file patch.txt --type='merge'מוודאים שהאישור הגיע למצב מוכן אחרי ההעלאה.
kubectl get certificate.pki.security.gdc.goog \ dbs-pg-cert-request-DBCLUSTER_NAME \ -n USER_PROJECT -o json | jq -r ' .status.conditions[] | select( .type as $id | "Ready" | index($id))'הפלט אמור להיראות כך:
{ "lastTransitionTime": "2024-05-03T08:42:10Z", "message": "Certificate is issued", "observedGeneration": 2, "reason": "Issued", "status": "True", "type": "Ready" }
מחליפים את מה שכתוב בשדות הבאים:
-
DBCLUSTER_NAME: השם של אשכול מסד הנתונים. -
USER_PROJECT: השם של פרויקט המשתמש שבו נוצר אשכול מסד הנתונים. -
CA_CERTIFICATE_FILE: הנתיב לקובץ אישור ה-CA של מסד הנתונים. -
CA_PRIVATE_KEY_FILE: הנתיב לקובץ המפתח הפרטי של רשות האישורים של מסד הנתונים.