Saat Anda membuat cluster database, sertifikat server yang ditandatangani oleh CA GDC default akan dibuat dan dikonfigurasi untuk digunakan oleh server database Anda. Untuk menandatangani dan mengupload sertifikat untuk database Anda yang diterbitkan oleh PKI Anda sendiri, lakukan prosedur berikut. Penerbit default organisasi Anda harus dalam mode sertifikat BYO untuk menggunakan fitur ini.
API
Setelah Anda membuat cluster database dan siap, simpan permintaan penandatanganan sertifikat yang dibuat sebagai file.
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.csrBuat file ekstensi CSR yang berisi SAN untuk cluster database Anda.
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.extDengan menggunakan CSR dan file ekstensi, buat sertifikat yang ditandatangani oleh CA Anda. Contoh kode menggunakan
openssl, tetapi langkah ini dapat diselesaikan dengan alat lain.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.crtPerbarui resource sertifikat dengan sertifikat yang ditandatangani dan sertifikat 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'Pastikan sertifikat telah mencapai status siap setelah diupload.
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))'Outputnya akan mirip dengan berikut ini:
{ "lastTransitionTime": "2024-05-03T08:42:10Z", "message": "Certificate is issued", "observedGeneration": 2, "reason": "Issued", "status": "True", "type": "Ready" }
Ganti kode berikut:
DBCLUSTER_NAME: nama cluster database.USER_PROJECT: nama project pengguna tempat cluster database dibuat.CA_CERTIFICATE_FILE: jalur ke file sertifikat CA database.CA_PRIVATE_KEY_FILE: jalur ke file kunci pribadi CA database.