Auf dieser Seite wird beschrieben, wie Sie die automatische Rotation für Ihre Cloud SQL-Datenbankanmeldedaten in Secret Manager konfigurieren.
Hinweis
- Ihre Cloud SQL-Instanz muss eine unterstützte Datenbankmodulvariante wie PostgreSQL oder SQL Server verwenden.
- Achten Sie darauf, dass Sie ein regionales Secret verwenden. Die automatische Rotation für Cloud SQL-Anmeldedaten ist nur für regionale Secrets in Secret Manager verfügbar. Globale Secrets unterstützen diese Funktion nicht.
- Sie benötigen eine vorhandene Cloud SQL-Instanz und einen Datenbanknutzer. Weitere Informationen finden Sie unter Instanzen erstellen und Nutzer erstellen und verwalten.
- Achten Sie darauf, dass Sie die Berechtigungen zum Verwalten der IAM-Richtlinien für Ihre Cloud SQL-Instanz haben. Weitere Informationen finden Sie unter Rollen und Berechtigungen.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen eine Rolle mit den folgenden Berechtigungen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Aktivieren der automatischen Rotation benötigen:
cloudsql.users.listcloudsql.users.update
Sie können diese Berechtigungen entweder mit vordefinierten Rollen oder benutzerdefinierten Rollen erhalten. Informationen dazu, welche Rollen mit welchen Berechtigungen verknüpft sind, finden Sie unter IAM-Rollen für Cloud SQL.
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Cloud SQL-Anmeldedaten-Secret erstellen
Wenn Sie die automatische Rotation aktivieren möchten, müssen Sie ein Secret vom Typ Cloud SQL DB credentials erstellen.
Console
-
Rufen Sie in der Cloud de Confiance Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf Regionales Secret erstellen.
-
Geben Sie auf der Seite Regionales Secret erstellen im Feld Name einen Namen für das Secret ein.
-
Klicken Sie das Kästchen Geheimnistyp festlegen an und wählen Sie
Cloud SQL DB credentialsals Geheimnistyp aus. -
Wählen Sie in der Liste Region den Speicherort für Ihr regionales Secret aus.
-
Optional: Konfigurieren Sie im Abschnitt Rotation den Rotationsplan für Ihr Secret. Wenn Sie keinen Rotationsplan konfigurieren, müssen Sie das Secret manuell rotieren.
Klicken Sie das Kästchen Rotationszeitraum festlegen an.
Wählen Sie in der Liste Rotationszeitraum eine der Standardoptionen aus oder wählen Sie Benutzerdefiniert aus, um einen eigenen Rotationszeitplan zu konfigurieren.
Geben Sie im Feld Ab dem das Startdatum und die Startzeit des Rotationszeitraums ein.
-
Klicken Sie auf Secret erstellen.
gcloud
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets create SECRET_ID \ --location=LOCATION \ --secret-type=CLOUD_SQL_DB_CREDENTIALS
Windows (PowerShell)
gcloud secrets create SECRET_ID ` --location=LOCATION ` --secret-type=CLOUD_SQL_DB_CREDENTIALS
Windows (cmd.exe)
gcloud secrets create SECRET_ID ^ --location=LOCATION ^ --secret-type=CLOUD_SQL_DB_CREDENTIALS
Sie sollten eine Antwort ähnlich der folgenden erhalten:
Created secret [projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID].
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- SECRET_ID: die ID des Secrets
HTTP-Methode und URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID
JSON-Text der Anfrage:
{
"secretType": "CLOUD_SQL_DB_CREDENTIALS"
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets?secretId=SECRET_ID" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2026-07-28T05:00:00Z",
"secretType": "CLOUD_SQL_DB_CREDENTIALS",
"etag": "\"1a2b3c4d\"",
"policyMember": {
"iamPolicyUidPrincipal": "principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID"
}
}
Berechtigungen für die integrierte Secret-Identität erteilen
Jedes Secret hat eine eindeutige Kennung, die es von allen anderen Ressourcen in Ihrem Cloud de Confiance by S3NS Projekt unterscheidet. Sie müssen der integrierten Identität die erforderlichen Berechtigungen erteilen, die zum Aktualisieren von Anmeldedaten für Ihre Cloud SQL-Instanz erforderlich sind. Weitere Informationen finden Sie unter Rollen für Ressourcen mit integrierten Identitäten zuweisen.
Console
-
Rufen Sie auf der Secret-Detailseite den Tab Übersicht auf.
-
Notieren Sie sich die IAM-Prinzipal-ID des Secrets.
Die Kennzeichnung hat folgendes Format:
principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID. -
Rufen Sie in der Cloud de Confiance Console die Seite IAM auf.
-
Klicken Sie auf Zugriff erlauben.
Der Bereich Zugriff erlauben wird angezeigt.
-
Geben Sie im Feld Neue Hauptkonten die IAM-Hauptkonto-ID des Secrets ein.
-
Wählen Sie in der Liste Rolle auswählen eine Rolle aus, die die erforderlichen Berechtigungen gewährt.
Weitere Informationen finden Sie unter Erforderliche Rollen.
-
Klicken Sie auf Speichern.
gcloud
Secret-Identität abrufen
Bevor Sie IAM-Berechtigungen erteilen, beschreiben Sie das Secret, um die integrierte Identität iamPolicyUidPrincipal zu erhalten. Sie geben diesen Identitätsstring beim Hinzufügen der IAM-Richtlinienbindung im Flag --member an.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets describe SECRET_ID \ --location=LOCATION \ --format="value(policyMember.iamPolicyUidPrincipal)"
Windows (PowerShell)
gcloud secrets describe SECRET_ID ` --location=LOCATION ` --format="value(policyMember.iamPolicyUidPrincipal)"
Windows (cmd.exe)
gcloud secrets describe SECRET_ID ^ --location=LOCATION ^ --format="value(policyMember.iamPolicyUidPrincipal)"
Sie sollten eine Antwort ähnlich der folgenden erhalten:
principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID
IAM-Rolle für die geheime Identität gewähren
Weisen Sie dem im vorherigen Schritt abgerufenen Hauptkonto der geheimen Identität eine IAM-Rolle zu, die die erforderlichen Cloud SQL-Berechtigungen enthält, z. B. cloudsql.users.update und cloudsql.users.list oder die vordefinierte Rolle roles/cloudsql.admin:
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- PROJECT_NUMBER: die numerische Cloud de Confiance by S3NS Projektnummer
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- SECRET_UID: die vom System generierte eindeutige Kennung der geheimen Ressource
- ROLE: die IAM-Rolle, die der Secret-Identität zugewiesen wird.
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID" \ --role="ROLE"
Windows (PowerShell)
gcloud projects add-iam-policy-binding PROJECT_ID ` --member="principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID" ` --role="ROLE"
Windows (cmd.exe)
gcloud projects add-iam-policy-binding PROJECT_ID ^ --member="principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID" ^ --role="ROLE"
REST
Secret-Identität abrufen
Bevor Sie IAM-Berechtigungen erteilen, rufen Sie die Secret-Details ab, um die integrierte Identität iamPolicyUidPrincipal zu erhalten. Sie geben diesen Identitätsstring in der JSON-Anfrage an, wenn Sie die IAM-Richtlinie festlegen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- SECRET_ID: die ID des Secrets
HTTP-Methode und URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID
JSON-Text der Anfrage:
{
"policy": {
"bindings": [
{
"role": "ROLE",
"members": [
"principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID"
]
}
]
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/secrets/SECRET_ID",
"createTime": "2026-07-28T05:00:00Z",
"secretType": "CLOUD_SQL_DB_CREDENTIALS",
"etag": "\"1a2b3c4d\"",
"policyMember": {
"iamPolicyUidPrincipal": "principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID"
}
}
IAM-Rolle für die geheime Identität gewähren
Weisen Sie dem im vorherigen Schritt abgerufenen Hauptkonto der geheimen Identität eine IAM-Rolle zu, die die erforderlichen Cloud SQL-Berechtigungen enthält, z. B. cloudsql.users.update und cloudsql.users.list oder die vordefinierte Rolle roles/cloudsql.admin:
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- ROLE: die IAM-Rolle, die der Secret-Identität zugewiesen wird.
- PROJECT_NUMBER: die numerische Cloud de Confiance by S3NS Projektnummer
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- SECRET_UID: die vom System generierte eindeutige Kennung der geheimen Ressource
HTTP-Methode und URL:
POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
JSON-Text der Anfrage:
{
"policy": {
"bindings": [
{
"role": "ROLE",
"members": [
"principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID"
]
}
]
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"version": 1,
"etag": "BwWWv0I7vBw=",
"bindings": [
{
"role": "roles/cloudsql.admin",
"members": [
"principal://secretmanager.googleapis.com/projects/PROJECT_NUMBER/uid/locations/LOCATION/secrets/SECRET_UID"
]
}
]
}
Secret rotieren
Der Rotationsstatus der neu erstellten Cloud SQL-Secrets ist Disabled, bis die erste Rotation erfolgreich ist. Sie müssen Ihr Secret manuell rotieren, um Berechtigungen zu bestätigen und den automatischen Rotationszeitplan zu starten.
Console
-
Rufen Sie in der Cloud de Confiance Console die Seite Secret Manager auf.
-
Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets.
-
Klicken Sie auf den Namen des Secrets, um zur Detailseite des Secrets zu gelangen.
-
Klicken Sie auf Rotieren.
Der Bereich Secret rotieren wird angezeigt.
-
Geben Sie die Instanz-ID und den Nutzernamen der Cloud SQL-Instanz an, die Sie aktualisieren möchten.
-
Optional: Maximieren Sie den Bereich Zusätzliche Einstellungen, um ein bestimmtes Passwort einzugeben. Wenn Sie das Feld leer lassen, generiert Secret Manager automatisch ein starkes, zufälliges Passwort.
-
Klicken Sie auf Rotieren.
gcloud
Verwaltete Rotation aktivieren
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- INSTANCE_ID: die Instanz-ID der Cloud SQL-Instanz
- USERNAME: der Name des Cloud SQL-Datenbanknutzerkontos
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets enable-managed-rotation SECRET_ID \ --location=LOCATION \ --instance-id=INSTANCE_ID \ --username=USERNAME
Windows (PowerShell)
gcloud secrets enable-managed-rotation SECRET_ID ` --location=LOCATION ` --instance-id=INSTANCE_ID ` --username=USERNAME
Windows (cmd.exe)
gcloud secrets enable-managed-rotation SECRET_ID ^ --location=LOCATION ^ --instance-id=INSTANCE_ID ^ --username=USERNAME
Secret manuell rotieren
Lösen Sie eine sofortige manuelle Rotation aus, um die erste Secret-Version zu generieren und die Verbindung zu prüfen.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- SECRET_ID: die ID des Secrets
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud secrets rotate-secret SECRET_ID \ --location=LOCATION
Windows (PowerShell)
gcloud secrets rotate-secret SECRET_ID ` --location=LOCATION
Windows (cmd.exe)
gcloud secrets rotate-secret SECRET_ID ^ --location=LOCATION
Sie sollten eine Antwort ähnlich der folgenden erhalten:
Name: projects/PROJECT_NUMBER/locations/LOCATION/secrets/SECRET_ID/versions/1 State: ENABLED
REST
Verwaltete Rotation aktivieren
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- SECRET_ID: die ID des Secrets
- INSTANCE_ID: die Instanz-ID der Cloud SQL-Instanz
- USERNAME: der Name des Cloud SQL-Datenbanknutzerkontos
HTTP-Methode und URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:enableManagedRotation
JSON-Text der Anfrage:
{
"cloudSqlSingleUserCredentials": {
"instanceId": "INSTANCE_ID",
"username": "USERNAME"
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:enableManagedRotation"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:enableManagedRotation" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/secrets/SECRET_ID/versions/1",
"createTime": "2026-07-28T05:00:00Z",
"state": "ENABLED"
}
Secret manuell rotieren
Lösen Sie eine sofortige manuelle Rotation aus, um die erste Secret-Version zu generieren und die Verbindung zu prüfen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: der Cloud de Confiance by S3NS Standort des Secrets
- PROJECT_ID: die Cloud de Confiance by S3NS Projekt-ID
- SECRET_ID: die ID des Secrets
HTTP-Methode und URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:rotateSecret
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:rotateSecret"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:rotateSecret" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION/secrets/SECRET_ID/versions/1",
"createTime": "2026-07-28T05:00:00Z",
"state": "ENABLED"
}
Secret Manager versucht, die Anmeldedaten in Ihrer Cloud SQL-Instanz zu aktualisieren. Wenn die Rotation erfolgreich ist, ändert sich der Rotationsstatus in Enabled und der Timer für die geplante automatische Rotation wird gestartet.