Zertifikate verwalten

Wählen Sie eine Dokumentenversion aus:

Auf dieser Seite wird beschrieben, wie Sie benutzerdefinierte Zertifikatsaussteller 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 Operator verwalteten Aussteller signiert.

Ab der AlloyDB Omni-Operatorversion 1.6.0 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 Komponenten der Steuerungsebene, mit Ihrer eigenen vertrauenswürdigen Stammzertifizierungsstelle verkettet werden. So können Sie alle Zertifikate mit Ihrer eigenen Public-Key-Infrastruktur (PKI) verketten, einschließlich der Zertifikate, die für die Funktionen der Steuerungsebene verwendet werden, ohne die Implementierungsdetails der einzelnen internen Entitäten offenzulegen.

Hinweis

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

Benutzerdefinierte Aussteller konfigurieren

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

Datenbankclusterzertifikate

Für diese Funktion muss die controlPlaneAgentsVersion des entsprechenden Datenbankclusters im Manifest 1.6.0 oder höher sein.

Es gibt zwei Spezifikationsfelder für Datenbankcluster, mit denen Sie Zertifikatsaussteller konfigurieren können:

  • spec.primarySpec.dataPlaneCertIssuer: Verweis auf den cert-manager-Aussteller, der Zertifikate für die Datenebene bereitstellt. Die Zertifizierungsstelle des Ausstellers 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 Zertifikate für die Steuerungsebene 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: Name des cert-manager-Ausstellers, der Zertifikate für die Steuerungsebene für interne Komponenten bereitstellt.

  • CONTROL_PLANE_ISSUER_KIND: Muss entweder Issuer oder ClusterIssuer sein.

Operatorzertifikate

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 Helm 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 der Operator bereits installiert ist und Sie den Zertifikatsaussteller 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 Subscription-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 im Output für jedes Zertifikat das Feld issuerRef, um zu bestätigen, dass es mit Ihrem benutzerdefinierten Aussteller übereinstimmt.