Zertifikate verwalten

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Zertifikataussteller verwenden, um TLS-Zertifikate (Transport Layer Security) in Ihrem Kubernetes-basierten AlloyDB Omni-Datenbankcluster zu verwalten.

Standardmäßig verwendet der AlloyDB Omni Kubernetes-Operator cert-manager, um eine Reihe von TLS-Zertifikaten für jeden Datenbankcluster bereitzustellen. Neben dem Datenbankserverzertifikat erstellt der Operator auch Zertifikate für Komponenten der Steuerungsebene, um sicherzustellen, dass auch interne Verbindungen sicher sind. Standardmäßig wird jedes Zertifikat von einem vom Betreiber verwalteten Aussteller signiert.

Ab Version 1.6.0 des AlloyDB Omni-Operators können Sie den Operator so konfigurieren, dass er einen Aussteller Ihrer Wahl verwendet, wenn Sie möchten, dass alle Zertifikate, einschließlich der Zertifikate für Control-Plane-Komponenten, auf Ihre eigene vertrauenswürdige Root-Zertifizierungsstelle zurückgeführt werden. So können Sie alle Zertifikate an Ihre eigene Public-Key-Infrastruktur (PKI) anhängen, einschließlich der Zertifikate, die für die Funktionen der Steuerungsebene verwendet werden, ohne die Implementierungsdetails der einzelnen internen Einheiten offenzulegen.

Hinweise

Wenn Sie einen Zertifikataussteller konfigurieren möchten, müssen Sie zuerst einen cert-manager-Aussteller vom Typ ClusterIssuer oder Issuer erstellen, der der Zertifizierungsstelle zugeordnet ist, mit der Sie Ihre Zertifikate signieren möchten. Der AlloyDB Omni-Operator verweist beim Erstellen von Zertifikaten auf diesen Aussteller.

Benutzerdefinierte Aussteller konfigurieren

Sie können benutzerdefinierte Zertifikataussteller für den Datenbankcluster, den AlloyDB Omni-Operator und PgBouncer konfigurieren.

Datenbankclusterzertifikate

Für diese Funktion muss die controlPlaneAgentsVersion des entsprechenden Datenbankclusters im Manifest mindestens 1.6.0 sein.

Es gibt zwei Felder für die Spezifikation von Datenbankclustern, mit denen Sie Zertifikataussteller konfigurieren können:

  • spec.primarySpec.dataPlaneCertIssuer: Verweis auf den cert-manager-Aussteller, der Zertifikate für die Datenebene bereitstellt. Die Aussteller-Zertifizierungsstelle ist diejenige, der der Datenbankclient vertrauen kann, um die Datenbank während einer TLS-Verbindung zu überprüfen.

  • spec.primarySpec.controlPlaneAgentsCertIssuer: Verweis auf den cert-manager-Aussteller, der Steuerungsebenenzertifikate bereitstellt. Diese Zertifikate werden für interne Verbindungen verwendet.

spec:
  primarySpec:
    tls:
      dataPlaneCertIssuer:
        name: DATA_PLANE_ISSUER_NAME
        kind: DATA_PLANE_ISSUER_KIND
      controlPlaneAgentsCertIssuer:
        name: CONTROL_PLANE_ISSUER_NAME
        kind: CONTROL_PLANE_ISSUER_KIND

Ersetzen Sie Folgendes:

  • DATA_PLANE_ISSUER_NAME: Name des cert-manager-Ausstellers, der Zertifikate für die Datenebene bereitstellt, z. B. für den Datenbankserver.

  • DATA_PLANE_ISSUER_KIND: muss entweder Issuer oder ClusterIssuer sein.

  • CONTROL_PLANE_ISSUER_NAME: Der Name des cert-manager-Ausstellers, der Steuerungsebenenzertifikate für interne Komponenten bereitstellt.

  • CONTROL_PLANE_ISSUER_KIND: muss entweder Issuer oder ClusterIssuer sein.

Betriebserlaubnisse

Die Schritte zum Konfigurieren eines cert-manager-Ausstellers für Operatorzertifikate hängen von der Methode ab, mit der AlloyDB Omni installiert wurde.

Mit Helm konfigurieren

Wenn Sie den AlloyDB Omni-Operator in Version 1.6.0 oder höher zum ersten Mal installieren, verwenden Sie die Helm-Installation und legen Sie die entsprechenden Werte fest. Dabei wird davon ausgegangen, dass Sie der Installationsanleitung folgen.

helm install alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
--create-namespace \
--namespace alloydb-omni-system \
--set operatorCertIssuer.certManagerIssuerName="OPERATOR_CERT_ISSUER_NAME" \
--set operatorCertIssuer.certManagerIssuerKind="OPERATOR_CERT_ISSUER_KIND" \
--atomic \
--timeout 5m

Wenn Sie den Operator bereits installiert haben und den Zertifikataussteller festlegen müssen, verwenden Sie helm upgrade, um die entsprechenden Werte festzulegen:

helm upgrade alloydbomni-operator alloydbomni-operator-${OPERATOR_VERSION}.tgz \
--create-namespace \
--namespace alloydb-omni-system \
--set operatorCertIssuer.certManagerIssuerName="OPERATOR_CERT_ISSUER_NAME" \
--set operatorCertIssuer.certManagerIssuerKind="OPERATOR_CERT_ISSUER_KIND" \
--atomic \
--timeout 5m

Ersetzen Sie Folgendes:

  • OPERATOR_CERT_ISSUER_NAME: Name des cert-manager-Ausstellers, der das Operatorzertifikat bereitstellt, das für interne Verbindungen verwendet wird.

  • OPERATOR_CERT_ISSUER_KIND: muss entweder Issuer oder ClusterIssuer sein.

Mit Operator Lifecycle Manager konfigurieren

Wenn Sie den AlloyDB Omni-Operator mit Operator Lifecycle Manager (OLM) installiert haben, können Sie das Feld spec.config.env der Abo-Ressource ändern, um die Umgebungsvariablen CERT_MANAGER_ISSUER_NAME und CERT_MANAGER_ISSUER_KIND der Operatorbereitstellung festzulegen.

spec:
  config:
    env:
    - name: CERT_MANAGER_ISSUER_NAME
      value: OPERATOR_CERT_ISSUER_NAME
    - name: CERT_MANAGER_ISSUER_KIND
      value: OPERATOR_CERT_ISSUER_KIND

Ersetzen Sie Folgendes:

  • OPERATOR_CERT_ISSUER_NAME: Name des cert-manager-Ausstellers, der das Operatorzertifikat bereitstellt, das für interne Verbindungen verwendet wird.

  • OPERATOR_CERT_ISSUER_KIND: muss entweder Issuer oder ClusterIssuer sein.

PgBouncer-Zertifikate

Zur Unterstützung benutzerdefinierter Aussteller kann der PgBouncer-Controller das Feld spec.primarySpec.tls.dataPlaneCertIssuer des DBCluster prüfen und damit das PgBouncer-Zertifikat bereitstellen. So wird sichergestellt, dass PgBouncer ein Zertifikat von derselben Zertifizierungsstelle wie die Datenbank verwendet.

Bestätigen

Führen Sie den folgenden Befehl aus, um zu prüfen, ob die Operatorbereitstellung fehlerfrei ist und die Umgebungsvariablen CERT_MANAGER_ISSUER_NAME und CERT_MANAGER_ISSUER_KIND festgelegt sind:

kubectl get deployments local-controller-manager -n alloydb-omni-system -o yaml

So prüfen Sie, ob der richtige Aussteller verwendet wird:

kubectl get certificate -n NAMESPACE

Prüfen Sie das Feld issuerRef in der Ausgabe für jedes Zertifikat, um zu bestätigen, dass es mit Ihrem benutzerdefinierten Aussteller übereinstimmt.