Ablaufdatum für ein regionales Secret festlegen

Auf dieser Seite wird beschrieben, wie Sie ein Ablaufdatum für ein neues oder vorhandenes Secret festlegen, das Ablaufdatum eines vorhandenen Secrets ändern und ein zuvor festgelegtes Ablaufdatum aus einem Secret entfernen.

Übersicht

Standardmäßig sind in Secret Manager gespeicherte Secrets vorhanden, bis sie von einem Nutzer gelöscht werden. Wenn ein Secret nur für eine bekannte, begrenzte Zeit gespeichert werden soll, können Sie eine Ablaufzeit anhängen. Nach der konfigurierten Ablaufzeit eines Secrets wird es automatisch gelöscht.

Wenn keine Notwendigkeit zum Löschen des Secrets besteht, können Sie IAM-Bedingungen oder den Versionsstatus Deaktiviert verwenden, um den Zugriff auf sichere Weise zu widerrufen.

Sie können eine Ablaufzeit entweder als Zeitstempel oder als Dauer eingeben. Beim Abrufen von Secret-Metadaten wird die Ablaufzeit immer als Zeitstempel zurückgegeben, unabhängig davon, wie sie angegeben wurde.

Ein Ablauf kann jederzeit einem Secret hinzugefügt, aktualisiert oder entfernt werden.

Beschränkungen

  • Der Ablaufzeitpunkt eines Secrets darf nicht weniger als 60 Sekunden oder nicht mehr als 100 Jahre entfernt sein.

Ablaufende Secrets sicher verwenden

Wenn ein Secret in Secret Manager abläuft, wird es unwiderruflich gelöscht. Die beste Möglichkeit zum Erkennen von Secrets, die bald ablaufen, ist die Verwendung von IAM-Bedingungen, um vor dem Ablauf Berechtigungen aus den Konten zu entfernen, die das Secret verwenden.

Legen Sie eine zeitbasierte Bedingung für die gewährten Berechtigungen fest, um den Zugriff auf Secrets effektiv zu verwalten.

  • Ablaufdatum festlegen: Berechtigungen sollten kurz vor dem Ablauf des Secrets ablaufen. So können Sie alle Workflows oder Prozesse identifizieren, in denen das Secret möglicherweise noch unerwartet verwendet wird.

  • Störungen im Blick behalten: Wenn Workflows nach dem Widerruf von Berechtigungen nicht mehr funktionieren, können Sie den Zugriff schnell wiederherstellen, um Auswirkungen zu minimieren.

  • Nach Bedarf anpassen: Wenn Sie feststellen, dass Sie mehr Zeit benötigen, können Sie das Ablaufdatum des Secrets verlängern oder es sogar ganz entfernen, wenn es nicht mehr benötigt wird.

So wird sichergestellt, dass der Zugriff auf Secrets streng kontrolliert und nur so lange verfügbar ist, wie es erforderlich ist. Das Risiko von unbefugtem Zugriff oder Missbrauch wird dadurch verringert.

Angenommen, ein Dienstkonto muss 30 Tage lang jeden Tag auf ein Secret zugreifen. Sie können das Geheimnis so konfigurieren, dass es 60 Tage nach der Erstellung abläuft. So bleibt nach der erwarteten Nutzung noch ein Pufferzeitraum. Sie können auch eine bedingte IAM-Bindung einrichten, um dem Dienstkonto für 45 Tage die Rolle „Zugriffsperson für Secret“ zuzuweisen. Wenn das Dienstkonto nach 45 Tagen versucht, auf das Secret zuzugreifen, wird ihm die Berechtigung verweigert. Alle Workflows, die auf diesem Secret basieren, funktionieren dann nicht mehr. Ein Administrator kann den Zugriff schnell wiederherstellen, indem er dem Dienstkonto wieder die Rolle „Zugriffsperson für Secret“ zuweist. So haben Sie Zeit, zu prüfen, warum das Secret nach Ablauf der erwarteten 30 Tage noch benötigt wird, da das Secret selbst erst nach weiteren 15 Tagen gelöscht wird.

Darüber hinaus ist es möglich, Benachrichtigungen basierend auf Logwarnungen zu Secrets zu erstellen, die bald ablaufen. Weitere Informationen finden Sie im Abschnitt Ablaufprotokollierung dieses Dokuments.

Zeitstempel und Dauer angeben

  • Zeitstempelwerte müssen als RFC 3339 formatiert sein, z. B. 2100-01-01T09:00:00-05:00.

  • Werte für die Dauer müssen als Anzahl von Sekunden mit dem Suffix s formatiert werden, z. B. 86400s.

Ablaufdatum für ein Secret festlegen

Sie können ein Ablaufdatum und eine Ablaufzeit für ein Secret mit der Google Cloud Console, der Google Cloud CLI oder der Secret Manager API festlegen.

Console

  1. Rufen Sie in der Google Cloud 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. Geben Sie einen Wert für das Secret ein (z. B. abcd1234). Sie können auch eine Textdatei mit dem Secret-Wert über die Option Datei hochladen hochladen. Dadurch wird die Secret-Version automatisch erstellt.

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

  6. Klicken Sie auf Ablauf und setzen Sie ein Häkchen in das Kästchen Ablaufdatum festlegen.

  7. Geben Sie das Ablaufdatum und die Ablaufzeit im Format Monat/Tag/Jahr, Stunde:Minute (AM/PM) ein, z. B. 7/31/20, 1:00 AM. Sie können auch die Datums- und Uhrzeitauswahl verwenden, um das Ablaufdatum und die Ablaufzeit einzugeben.

  8. Klicken Sie auf Secret erstellen.

gcloud

Ablaufendes Secret mit einem Zeitstempel erstellen

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

  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • TIMESTAMP: das Ablaufdatum im RFC 3339-Format, z. B. 2100-01-01T09:00:00-05:00

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
    --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
    --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
    --expire-time "TIMESTAMP"

Ablaufendes Secret mit einer Dauer erstellen

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

  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • DURATION: die Ablaufdauer in Sekunden, z. B. 86400s

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets create SECRET_ID --location=LOCATION \
  --ttl "DURATION"

Windows (PowerShell)

gcloud secrets create SECRET_ID --location=LOCATION `
  --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets create SECRET_ID --location=LOCATION ^
  --ttl "DURATION"

REST

Ablaufendes Secret mit einem Zeitstempel erstellen

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: den Google Cloud-Speicherort des Geheimnisses
  • PROJECT_ID: die Google Cloud-Projekt-ID
  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • TIMESTAMP: das Ablaufdatum im RFC 3339-Format, z. B. 2100-01-01T09:00:00-05:00

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:

{"expire_time": "TIMESTAMP"}

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 in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Ablaufendes Secret mit einer Dauer erstellen

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • PROJECT_ID: die Google Cloud-Projekt-ID
  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • DURATION: die Ablaufdauer in Sekunden, z. B. 86400s

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:

{"ttl": "DURATION"}

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 in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Ablaufdatum eines Secrets aktualisieren

So aktualisieren Sie das Ablaufdatum und -uhrzeit des Secrets:

Console

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

    Zu Secret Manager

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

  3. Wenn Sie ein Secret bearbeiten möchten, suchen Sie es in der Liste und klicken Sie dann auf das zugehörige Menü Aktionen. Klicken Sie im Menü Aktionen auf Bearbeiten.

  4. Gehen Sie zum Abschnitt Ablauf. Aktualisieren Sie das Ablaufdatum und die Uhrzeit und klicken Sie auf Secret aktualisieren.

gcloud

Ablauf eines Secrets mithilfe eines Zeitstempels aktualisieren

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

  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • LOCATION: die Google Cloud-Region, in der Sie die geheimen Daten gespeichert haben
  • TIMESTAMP: das Ablaufdatum im RFC 3339-Format, z. B. 2100-01-01T09:00:00-05:00

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
  --expire-time "TIMESTAMP"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --expire-time "TIMESTAMP"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --expire-time "TIMESTAMP"

Ablauf eines Secrets mithilfe einer Dauer aktualisieren

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

  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • LOCATION: den Google Cloud-Speicherort des Geheimnisses
  • DURATION: die Ablaufdauer in Sekunden, z. B. 86400s

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
    --ttl "DURATION"

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
    --ttl "DURATION"

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
    --ttl "DURATION"

REST

Ablauf eines Secrets mithilfe eines Zeitstempels aktualisieren

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • PROJECT_ID: die Google Cloud-Projekt-ID
  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • TOKEN: Ihr eigenes OAuth2.0-Zugriffstoken
  • TIMESTAMP: das Ablaufdatum im RFC 3339-Format, z. B. 2100-01-01T09:00:00-05:00

HTTP-Methode und URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=expire_time

JSON-Text der Anfrage:

{"expire_time": "TIMESTAMP"}

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 PATCH \
-H "Authorization: Bearer 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?updateMask=expire_time"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=expire_time" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Ablauf eines Secrets mithilfe einer Dauer aktualisieren

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • PROJECT_ID: die Google Cloud-Projekt-ID
  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • DURATION: die Ablaufdauer in Sekunden, z. B. 86400s

HTTP-Methode und URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=ttl

JSON-Text der Anfrage:

{"ttl": "DURATION"}

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 PATCH \
-H "Authorization: Bearer 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?updateMask=ttl"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=ttl" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "expireTime": "2024-09-04T09:25:39Z",
  "etag": "\"162143305d282d\""
}

Ablaufdatum eines Secrets entfernen

Sie haben folgende Möglichkeiten, das Ablaufdatum und -uhrzeit des Secrets zu entfernen:

Console

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

    Zu Secret Manager

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

  3. Wenn Sie ein Secret bearbeiten möchten, suchen Sie es in der Liste und klicken Sie dann auf das zugehörige Menü Aktionen. Klicken Sie im Menü Aktionen auf Bearbeiten.

  4. Gehen Sie zum Abschnitt Ablauf. Entfernen Sie das Häkchen neben Ablaufdatum festlegen und klicken Sie dann auf Secret aktualisieren.

gcloud

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

  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • LOCATION: den Speicherort des Geheimnisses in Google Cloud

Führen Sie folgenden Befehl aus:

Linux, macOS oder Cloud Shell

gcloud secrets update SECRET_ID --location=LOCATION \
  --remove-expiration

Windows (PowerShell)

gcloud secrets update SECRET_ID --location=LOCATION `
  --remove-expiration

Windows (cmd.exe)

gcloud secrets update SECRET_ID --location=LOCATION ^
  --remove-expiration

REST

Ersetzen Sie diese Werte in den folgenden Anfragedaten:

  • LOCATION: den Speicherort des Geheimnisses in Google Cloud
  • PROJECT_ID: die Google Cloud-Projekt-ID
  • SECRET_ID: die ID des Secrets oder die voll qualifizierte Kennzeichnung für das Secret
  • TOKEN: Ihr eigenes OAuth2.0-Zugriffstoken

HTTP-Methode und URL:

PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=ttl

JSON-Text der Anfrage:

{}

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 PATCH \
-H "Authorization: Bearer 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?updateMask=ttl"

PowerShell

Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:

$headers = @{ "Authorization" = "Bearer TOKEN" }

Invoke-WebRequest `
-Method PATCH `
-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?updateMask=ttl" | Select-Object -Expand Content

Sie sollten in etwa folgende JSON-Antwort erhalten:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID",
  "createTime": "2024-09-04T03:58:38.200877Z",
  "etag": "\"162143305d282d\""
}

Ablauf-Logging

Cloud-Audit-Logs werden nicht erzeugt, wenn ein Secret automatisch abläuft. Stattdessen schreibt Secret Manager Logs in bestimmten Intervallen bis zum Ablauf eines Secrets in die Secret Manager-Secret-Ressource.

Logzeit Secret-Ereignistyp
30 Tage vor Ablauf EXPIRES_IN_30_DAYS
7 Tage vor Ablauf EXPIRES_IN_7_DAYS
1 Tag vor Ablauf EXPIRES_IN_1_DAY
6 Stunden vor Ablauf EXPIRES_IN_6_HOURS
1 Stunde vor Ablauf EXPIRES_IN_1_HOUR
Beim Ablauf EXPIRED

Informationen zum Aufrufen dieser Logs finden Sie in der Kurzanleitung zum Logging. Sie können logbasierte Messwerte erstellen und damit Benachrichtigungen für bevorstehende Ablaufzeiten erstellen.

Nächste Schritte