Auf dieser Seite finden Sie Verfahren zum Erstellen oder Bearbeiten von Cloud SQL-Instanzen, um Nutzern oder Dienstkonten zuzulassen, die für die Verwendung der Cloud SQL-IAM-Datenbankauthentifizierung konfiguriert sind. Weitere Informationen zur Cloud SQL-IAM-Integration finden Sie unter IAM-Authentifizierung.
Eine neu erstellte Instanz hat eine postgres
-Datenbank.
Hinweis
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Achten Sie darauf, dass Sie für Ihr Nutzerkonto die Rollen "Cloud SQL-Administrator" und "Compute-Betrachter" haben.
Neue Instanzen für die IAM-Datenbankauthentifizierung konfigurieren
Cloud SQL verwendet ein Flag, um IAM-Nutzerverbindungen auf einer Instanz zu aktivieren und zu deaktivieren. In diesem Verfahren aktivieren Sie dieses Flag.
So konfigurieren Sie eine neue Instanz, die die Cloud SQL-IAM-Datenbankauthentifizierung verwendet:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf Instanz erstellen.
- Klicken Sie auf PostgreSQL auswählen.
- Geben Sie einen Namen für die Instanz-ID ein. Der Instanzname sollte keine vertraulichen oder personenbezogenen Informationen enthalten. Er ist extern sichtbar. Die Projekt-ID muss im Instanznamen nicht angegeben werden. Die Projekt-ID wird an gegebener Stelle automatisch eingefügt, z. B. in den Logdateien.
- Geben Sie ein Passwort für den Standardadministrator ein.
- Wählen Sie im Drop-down-Menü Datenbankversion eine Datenbankversion aus.
- Wählen Sie im Abschnitt Region und zonale Verfügbarkeit auswählen die Region und die Zone für Ihre Instanz aus. Platzieren Sie die Instanz in der Region, in der sich auch die Ressourcen befinden, die darauf zugreifen. Die ausgewählte Region kann später nicht mehr geändert werden. Normalerweise müssen Sie keine Zone angeben.
- Klicken Sie im Abschnitt Instanz anpassen auf Konfigurationsoptionen einblenden und maximieren Sie Flags.
- Klicken Sie auf Flag hinzufügen.
- Wählen Sie im Drop-down-Menü Flag auswählen das Flag
cloudsql.iam_authentication
aus. Achten Sie darauf, dass An als Wert für dieses Flag ausgewählt ist, und klicken Sie dann auf Fertig. - Konfigurieren Sie bei Bedarf weitere Instanzeinstellungen. Weitere Informationen zu Einstellungen finden Sie unter Einstellungen.
- Klicken Sie auf Instanz erstellen.
gcloud
Führen Sie gcloud sql instances create
aus und setzen Sie den Parameter --database-flags
auf cloudsql.iam_authentication=on
.
Dabei gilt:
- INSTANCE_NAME: der Name der neuen Instanz.
- POSTGRES_VERSION: die PostgreSQL-Version (z. B. POSTGRES_9_6, POSTGRES_10, POSTGRES_11 oder POSTGRES_12).
- NUMBER_OF_CORES: die Anzahl der Kerne in der Maschine.
- AMOUNT_OF_MEMORY: die Größe des Arbeitsspeichers in der Maschine. Es sollte eine Größen angegeben werden (z. B. 3072MiB oder 9GiB).
- ZONE: bevorzugte Compute Engine-Zone, z. B. us-central1-a oder us-central1-b.
- PASSWORD: von Ihnen erstelltes Passwort für den Root-Nutzer.
gcloud sql instances create INSTANCE_NAME \ --database-version=POSTGRES_VERSION \ --cpu=NUMBER_OF_CORES \ --memory=AMOUNT_OF_MEMORY \ --zone=ZONE_NAME \ --root-password=PASSWORD \ --database-flags=cloudsql.iam_authentication=on
Terraform
Verwenden Sie eine Terraform-Ressource, um eine Instanz mit aktivierter IAM-Datenbankauthentifizierung zu erstellen.
Änderungen anwenden
Führen Sie die Schritte in den folgenden Abschnitten aus, um Ihre Terraform-Konfiguration auf ein Google Cloud-Projekt anzuwenden.
Cloud Shell vorbereiten
- Rufen Sie Cloud Shell auf.
-
Legen Sie das Google Cloud-Standardprojekt fest, auf das Sie Ihre Terraform-Konfigurationen anwenden möchten.
Sie müssen diesen Befehl nur einmal pro Projekt und in jedem beliebigen Verzeichnis ausführen.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Umgebungsvariablen werden überschrieben, wenn Sie in der Terraform-Konfigurationsdatei explizite Werte festlegen.
Verzeichnis vorbereiten
Jede Terraform-Konfigurationsdatei muss ein eigenes Verzeichnis haben (auch als Stammmodul bezeichnet).
-
Erstellen Sie in Cloud Shell ein Verzeichnis und eine neue Datei in diesem Verzeichnis. Der Dateiname muss die Erweiterung
.tf
haben, z. B.main.tf
. In dieser Anleitung wird die Datei alsmain.tf
bezeichnet.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Wenn Sie einer Anleitung folgen, können Sie den Beispielcode in jedem Abschnitt oder Schritt kopieren.
Kopieren Sie den Beispielcode in das neu erstellte
main.tf
.Kopieren Sie optional den Code aus GitHub. Dies wird empfohlen, wenn das Terraform-Snippet Teil einer End-to-End-Lösung ist.
- Prüfen und ändern Sie die Beispielparameter, die auf Ihre Umgebung angewendet werden sollen.
- Speichern Sie die Änderungen.
-
Initialisieren Sie Terraform. Dies ist nur einmal für jedes Verzeichnis erforderlich.
terraform init
Fügen Sie optional die Option
-upgrade
ein, um die neueste Google-Anbieterversion zu verwenden:terraform init -upgrade
Änderungen anwenden
-
Prüfen Sie die Konfiguration und prüfen Sie, ob die Ressourcen, die Terraform erstellen oder aktualisieren wird, Ihren Erwartungen entsprechen:
terraform plan
Korrigieren Sie die Konfiguration nach Bedarf.
-
Wenden Sie die Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
Warten Sie, bis Terraform die Meldung „Apply complete“ anzeigt.
- Öffnen Sie Ihr Google Cloud-Projekt, um die Ergebnisse aufzurufen. Rufen Sie in der Google Cloud Console Ihre Ressourcen in der Benutzeroberfläche auf, um sicherzustellen, dass Terraform sie erstellt oder aktualisiert hat.
Änderungen löschen
So löschen Sie das Projekt:
- Um den Löschschutz zu deaktivieren, setzen Sie in der Terraform-Konfigurationsdatei das Argument
deletion_protection
auffalse
.deletion_protection = "false"
- Wenden Sie die aktualisierte Terraform-Konfiguration an. Führen Sie dazu den folgenden Befehl aus und geben Sie
yes
an der Eingabeaufforderung ein:terraform apply
-
Entfernen Sie Ressourcen, die zuvor mit Ihrer Terraform-Konfiguration angewendet wurden, indem Sie den folgenden Befehl ausführen und
yes
an der Eingabeaufforderung eingeben:terraform destroy
REST Version 1
Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.
Die Projekt-ID muss im Instanznamen nicht angegeben werden. Die Projekt-ID wird an gegebener Stelle automatisch eingefügt, z. B. in den Logdateien.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- INSTANCE_ID: die gewünschte Instanz-ID
- REGION: die gewünschte Region, z. B. us-east-1
- PROJECT_ID: Ihre Projekt-ID
- LOCATION_ID: die Standort-ID
- DATABASE_VERSION: Enum-String der Datenbankversion
Beispiel:
POSTGRES_12
- PASSWORD: das Passwort für den Root-Nutzer
- MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Der Instanzname sollte keine vertraulichen Informationen oder personenbezogenen Daten enthalten, da er extern sichtbar ist.
Die Projekt-ID muss im Instanznamen nicht angegeben werden. Die Projekt-ID wird an gegebener Stelle automatisch eingefügt, z. B. in den Logdateien.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- INSTANCE_ID: die gewünschte Instanz-ID
- REGION: die gewünschte Region, z. B. us-east-1
- PROJECT_ID: Ihre Projekt-ID
- LOCATION_ID: die Standort-ID
- DATABASE_VERSION: Enum-String der Datenbankversion
Beispiel:
POSTGRES_12
- PASSWORD: das Passwort für den Root-Nutzer
- MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true }, "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Vorhandene Instanzen für die Cloud SQL-IAM-Datenbankauthentifizierung konfigurieren
So konfigurieren Sie die IAM-Datenbankauthentifizierung für eine vorhandene Instanz:
Console
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Flags.
- Klicken Sie auf Flag hinzufügen.
- Wählen Sie im Drop-down-Menü Flag auswählen das Flag
cloudsql.iam_authentication
aus. Achten Sie darauf, dass An als Wert für dieses Flag ausgewählt ist, und klicken Sie dann auf Fertig. - Konfigurieren Sie bei Bedarf weitere Instanzeinstellungen. Weitere Informationen zu Einstellungen finden Sie unter Einstellungen.
- Klicken Sie auf Speichern.
gcloud
Informationen zur Installation und den ersten Schritten mit der gcloud CLI finden Sie unter gcloud CLI installieren. Informationen zum Starten von Cloud Shell finden Sie unter Cloud Shell verwenden.
Verwenden Sie für dieses Verfahren
gcloud
sql instances patch
.
Dabei gilt:
- INSTANCE_NAME: der Name der neuen Instanz.
gcloud sql instances patch INSTANCE_NAME \ --database-flags=cloudsql.iam_authentication=on
Dadurch werden alle anderen vorhandenen Flag-Einstellungen der Datenbank zurückgesetzt. Weitere Informationen zum Festlegen von Datenbank-Flags finden Sie unter Datenbank-Flag festlegen.
REST Version 1
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID
- LOCATION_ID: die Standort-ID
- INSTANCE_ID: die gewünschte Instanz-ID
- REGION: die gewünschte Region
- DATABASE_VERSION: Enum-String der Datenbankversion
Beispiel:
POSTGRES_12
- PASSWORD: das Passwort für den Root-Nutzer
- MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/locations/LOCATION_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: Ihre Projekt-ID
- LOCATION_ID: die Standort-ID
- INSTANCE_ID: die gewünschte Instanz-ID
- REGION: die gewünschte Region
- DATABASE_VERSION: Enum-String der Datenbankversion
Beispiel:
POSTGRES_12
- PASSWORD: das Passwort für den Root-Nutzer
- MACHINE_TYPE: Enum-String des Maschinentyps (Stufe), z. B.:
db-custom-[CPUS]-[MEMORY_MBS]
HTTP-Methode und URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/locations/LOCATION_ID/instances
JSON-Text anfordern:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "rootPassword": "PASSWORD", "settings": { "tier": "MACHINE_TYPE", "backupConfiguration": { "enabled": true } "databaseFlags": [ { "name": "cloudsql.iam_authentication", "value": "on" } ] } }
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Sie sollten in etwa folgende JSON-Antwort erhalten:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-01T19:13:21.834Z", "operationType": "CREATE", "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Nächste Schritte
- IAM-Datenbankauthentifizierung
- Lesereplikat-Anmeldungen für die IAM-Datenbankauthentifizierung konfigurieren
- Nutzer und Dienstkonten erstellen, die die Cloud SQL-IAM-Datenbankauthentifizierung verwenden
- Mit der IAM-Datenbankauthentifizierung bei einer Cloud SQL-Datenbank anmelden
- Nutzer und Dienstkonten für die IAM-Datenbankauthentifizierung verwalten