Auf dieser Seite wird beschrieben, wie Sie einen benutzerdefinierten DNS-Namen (Domain Name System) für Ihre Cloud SQL-Instanz einrichten.
Übersicht
Sie können eine Cloud SQL-Instanz so konfigurieren, dass Ihre Anwendungen eine Verbindung über einen benutzerdefinierten DNS-Namen herstellen können, der von Ihrer Organisation verwaltet wird. Wenn Sie anstelle einer IP-Adresse einen benutzerdefinierten DNS-Namen verwenden möchten, um eine Verbindung zu einer Cloud SQL-Instanz herzustellen, konfigurieren Sie einen benutzerdefinierten alternativen Betreffnamen (Subject Alternative Name, SAN). Sie können einen benutzerdefinierten SAN konfigurieren, wenn Sie eine Instanz erstellen oder aktualisieren.
Wenn Sie Ihrer Instanz einen benutzerdefinierten DNS-Namen als benutzerdefinierte SAN-Konfiguration hinzufügen, fügt Cloud SQL den benutzerdefinierten DNS-Namen in das SAN-Feld des Serverzertifikats der Instanz ein. Durch diese Anpassung können Sie den benutzerdefinierten DNS-Namen sicher mit der Hostnamenvalidierung verwenden.
Sie können der benutzerdefinierten SAN-Konfiguration eine durch Kommas getrennte Liste mit bis zu drei benutzerdefinierten DNS-Namen hinzufügen. Aus Sicherheitsgründen können Sie eine benutzerdefinierte SAN-Konfiguration nur für Instanzen verwenden, die Sie mit CUSTOMER_MANAGED_CAS_CA
als Server-CA-Modus konfigurieren.
Nachdem Sie den benutzerdefinierten DNS-Namen für Ihre Instanz konfiguriert haben, können Sie ihn verwenden, um Ihre Datenbankclients oder Anwendungen zu verbinden, einschließlich Cloud SQL Language Connectors und des Cloud SQL Auth-Proxys.
Workflow
So richten Sie einen benutzerdefinierten DNS-Namen für eine Instanz ein:
- Erstellen Sie eine Instanz, die mit einer vom Kunden verwalteten Zertifizierungsstelle konfiguriert ist.
- Fügen Sie der Instanz benutzerdefinierte SAN-Werte hinzu. Die benutzerdefinierten SAN-Werte werden in das SAN-Feld des Serverzertifikats der Instanz eingefügt.
- Ermitteln Sie die IP-Adresse der Instanz.
- Erstellen Sie benutzerdefinierte DNS-Einträge für Ihre Instanz.
- Stellen Sie mit dem benutzerdefinierten DNS-Namen eine Verbindung zur Instanz her.
Hinweise
Bevor Sie einen benutzerdefinierten DNS-Namen für Ihre Instanz einrichten, müssen Sie sicherstellen, dass Sie die erforderlichen Rollen und Berechtigungen haben.
Wenn Sie eine neue Cloud SQL-Instanz erstellen, muss für den Server-CA-Modus auch eine vom Kunden verwaltete Zertifizierungsstelle (Certificate Authority, CA) verwendet werden, damit benutzerdefinierte SANs verwendet werden können.
Instanz mit benutzerdefinierten SAN-Werten erstellen
Verwenden Sie den folgenden gcloud sql instances create
-Befehl, um eine Instanz mit benutzerdefinierten SAN-Werten zu erstellen:
gcloud
gcloud sql instances create "INSTANCE_NAME" \ --database-version=DATABASE_VERSION \ --project=PROJECT_ID \ --region=REGION \ --server-ca-mode=CUSTOMER_MANAGED_CAS_CA \ --server-ca-pool=projects/PROJECT_ID_CAS/locations/REGION/caPools/CA_POOL_ID --custom-subject-alternative-names=CUSTOM_DNS_NAME
Ersetzen Sie die folgenden Werte:
INSTANCE_NAME
durch den Namen der Cloud SQL-Instanz, die Sie erstellen möchten.DATABASE_VERSION
durch dieenum
der Version der Cloud SQL-Instanz, die Sie erstellen möchten.PROJECT_ID
durch die ID des Projekts, in dem Sie Ihre Cloud SQL-Instanzen erstellen möchten.PROJECT_ID_CAS
durch die ID des Projekts, in dem Sie Ihre CA_POOL_ID erstellt haben. Dieses Projekt kann dasselbe sein wie das Projekt, in dem Sie Ihre Cloud SQL-Instanz erstellen möchten, oder ein anderes.REGION
durch die Region, in der Sie den CA-Pool erstellt haben. Sie müssen Ihre Instanz in derselben Region wie den CA-Pool erstellen.- Ersetzen Sie
CA_POOL_ID
durch die ID des von Ihnen erstellten CA-Pools. CUSTOM_DNS_NAME
mit bis zu drei benutzerdefinierten DNS-Namen, die durch Kommas getrennt sind und zwischen den Werten keine Leerzeichen enthalten. Beispiel:develop.example.com,test.example.com,production.example.com
Benutzerdefinierte SAN-Werte für eine Instanz hinzufügen oder aktualisieren
So fügen Sie einer vorhandenen Instanz benutzerdefinierte SAN-Werte hinzu oder aktualisieren sie:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --custom-subject-alternative-names=CUSTOM_DNS_NAME
Ersetzen Sie die folgenden Werte:
INSTANCE_NAME
durch den Namen der Cloud SQL-Instanz, die Sie aktualisieren möchten.CUSTOM_DNS_NAME
mit bis zu drei benutzerdefinierten DNS-Namen, die durch Kommas getrennt sind und zwischen den Werten keine Leerzeichen enthalten. Beispiel:develop.example.com,new-test.example.com,production.example.com
Alle benutzerdefinierten SAN-Werte aus einer Instanz entfernen
So löschen Sie alle benutzerdefinierten SAN-Werte aus einer Instanz:
gcloud
gcloud sql instances patch INSTANCE_NAME \ --clear-custom-subject-alternative-names
Ersetzen Sie INSTANCE_NAME
durch den Namen der Cloud SQL-Instanz, die Sie aktualisieren möchten.
Benutzerdefinierte DNS-Einträge erstellen
Bevor Sie mit Ihren Clients und Anwendungen über den benutzerdefinierten DNS-Namen eine Verbindung zur Instanz herstellen können, müssen Sie die Zuordnung zwischen dem DNS-Namen und der IP-Adresse einrichten. Diese Zuordnung wird als DNS-Auflösung bezeichnet. Wenn Sie eine private Verbindung herstellen, erstellen Sie den DNS-Eintrag in einer privaten DNS-Zone im entsprechenden VPC-Netzwerk (Virtual Private Cloud).
So erstellen Sie benutzerdefinierte DNS-Einträge für Ihre Instanz:
Rufen Sie die IP-Adresse für Ihre Instanz ab. Führen Sie dazu diesen Befehl aus:
gcloud sql instances describe INSTANCE_NAME \ --project=PROJECT_ID
Ersetzen Sie die folgenden Werte:
- INSTANCE_NAME: Der Name der Cloud SQL-Instanz.
- PROJECT_ID: die ID oder Projektnummer des Google Cloud -Projekts, das die Instanz enthält
Suchen Sie in der Antwort nach dem Feld
ipAddresses:
.Beispiel:
ipAddresses: - ipAddress: 192.0.2.4 type: PRIVATE
Sie können die private IP-Adresse für eine Instanz abrufen, die für Zugriff auf private Dienste, Private Service Connect oder beides konfiguriert ist.
Einer von Ihrer Anwendung verwendeten DNS-Zone zwei DNS-Einträge hinzufügen Sie können einen DNS-Server verwenden, den Sie selbst verwalten, oder die private Cloud DNS-Zone, die von Ihrer Anwendung verwendet wird.
A
-Eintrag für die IP-Adresse der Instanz erstellen- Erstellen Sie einen
TXT
-Eintrag mit dem Namen der Instanzverbindung.
Standarddatenbankclients verwenden den
A
-Eintrag, um die IP-Adresse für die Verbindung zu ermitteln. Cloud SQL Language Connectors und der Cloud SQL Auth-Proxy verwenden denTXT
-Eintrag, um den Namen der Instanzverbindung zu ermitteln.Der Verbindungsstring für Ihre Instanz ist beispielsweise
my-project:region:my-instance
, Sie möchten aber eine Verbindung über den DNS-Namenprod-db.mycompany.example.com
herstellen. Wenn die IP-Adresse der Instanz in Ihrem Unternehmensnetzwerk192.0.2.4
ist, erstellen Sie die folgenden DNS-Einträge:Record type: A Name: prod-db.mycompany.example.com Value: 192.0.2.4 TTL: 600 Record type: TXT Name: prod-db.mycompany.example.com Value: my-project:region:my-instance TTL: 600
Verbindung zu einer Instanz über einen benutzerdefinierten DNS-Namen herstellen
Wenn Sie eine Verbindung zur Cloud SQL for PostgreSQL-Instanz herstellen, konfigurieren Sie den benutzerdefinierten DNS-Namen als Hostnamen und aktivieren Sie die Serveridentitätsprüfung in Ihrem Client.Wenn Sie beispielsweise den psql
-Client verwenden, geben Sie das Flag sslmode=verify-full
Wenn Sie von einem externen Netzwerk aus eine Verbindung zu einer privaten Cloud SQL-Instanz herstellen, müssen Sie Ihre Cloud SQL-Instanz und ihr VPC-Netzwerk (Virtual Private Cloud) so konfigurieren, dass externe Verbindungen zugelassen werden und Cloud DNS mit lokalen Systemen kommunizieren kann. Weitere Informationen zu dieser Konfiguration finden Sie unter Verbindung von einer externen Quelle herstellen und DNS für lokale Systeme konfigurieren.
Beschränkungen
- Sie können dem Serverzertifikat einer Cloud SQL-Instanz nicht mehr als drei DNS-Namen als benutzerdefinierte SAN-Werte hinzufügen.
- Ein DNS-Name, den Sie dem Zertifikat als benutzerdefinierten SAN-Wert für eine Instanz hinzufügen können, darf maximal 253 Zeichen lang sein.
- Die DNS-Namen, die Sie dem Zertifikat für eine Instanz hinzufügen, dürfen keine Platzhalterzeichen (
*
) oder nachgestellte Punkte enthalten.test.example.com.
ist beispielsweise nicht zulässig. - Die DNS-Namen müssen gemäß RFC 1034 gültig sein.
- Sie können benutzerdefinierte SAN-Werte nur für
CUSTOMER_MANAGED_CAS_CA
-Instanzen angeben.
Nächste Schritte
- SSL/TLS auf Ihrer Cloud SQL-Instanz verwalten
- Weitere Informationen zur Verschlüsselung in Google Cloud
- SSL/TLS-Zertifikate zur Verbindung mit Ihrer Cloud SQL-Instanz
- SSL/TLS mit PostgreSQL verwenden