Automatische Rotation für Cloud SQL-Secrets konfigurieren

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.list
  • cloudsql.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

  1. Rufen Sie in der Cloud de Confiance Console die Seite Secret Manager auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets und dann auf  Regionales Secret erstellen.

  3. Geben Sie auf der Seite Regionales Secret erstellen im Feld Name einen Namen für das Secret ein.

  4. Klicken Sie das Kästchen Geheimnistyp festlegen an und wählen Sie Cloud SQL DB credentials als Geheimnistyp aus.

  5. Wählen Sie in der Liste Region den Speicherort für Ihr regionales Secret aus.

  6. Optional: Konfigurieren Sie im Abschnitt Rotation den Rotationsplan für Ihr Secret. Wenn Sie keinen Rotationsplan konfigurieren, müssen Sie das Secret manuell rotieren.

    1. Klicken Sie das Kästchen Rotationszeitraum festlegen an.

    2. Wählen Sie in der Liste Rotationszeitraum eine der Standardoptionen aus oder wählen Sie Benutzerdefiniert aus, um einen eigenen Rotationszeitplan zu konfigurieren.

    3. Geben Sie im Feld Ab dem das Startdatum und die Startzeit des Rotationszeitraums ein.

  7. 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

  1. Rufen Sie auf der Secret-Detailseite den Tab Übersicht auf.

  2. 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.

  3. Rufen Sie in der Cloud de Confiance Console die Seite IAM auf.

    IAM aufrufen

  4. Klicken Sie auf Zugriff erlauben.

    Der Bereich Zugriff erlauben wird angezeigt.

  5. Geben Sie im Feld Neue Hauptkonten die IAM-Hauptkonto-ID des Secrets ein.

  6. 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.

  7. 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

  1. Rufen Sie in der Cloud de Confiance Console die Seite Secret Manager auf.

    Zu Secret Manager

  2. Klicken Sie auf der Seite Secret Manager auf den Tab Regionale Secrets.

  3. Klicken Sie auf den Namen des Secrets, um zur Detailseite des Secrets zu gelangen.

  4. Klicken Sie auf  Rotieren.

    Der Bereich Secret rotieren wird angezeigt.

  5. Geben Sie die Instanz-ID und den Nutzernamen der Cloud SQL-Instanz an, die Sie aktualisieren möchten.

  6. 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.

  7. Klicken Sie auf Rotieren.

gcloud

Verwaltete Rotation aktivieren

Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:

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:

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.

Nächste Schritte