Geheime Schlüssel sperren
Wenn Sie mit IBM Cloud® Secrets Manager arbeiten, können Sie Sperren für Ihre Geheimnisse erstellen, um zu verhindern, dass sie gelöscht oder geändert werden, während sie von Ihren Anwendungen verwendet werden.
Standardmäßig kann ein berechtigter Benutzer oder eine berechtigte Anwendung die geheimen Schlüssel ändern, die Sie in Secrets Manager verwalten. Manchmal, zum Beispiel während einer Sicherheitsprüfung, möchten Sie möglicherweise verhindern, dass jemand in Ihrem Team versehentlich einen geheimen Schlüssel löscht. Oder wenn Sie planen, Ihre geheimen Schlüssel regelmäßig zu wechseln, suchen Sie möglicherweise nach einer Möglichkeit, die neueste Version eines geheimen Schlüssels sicher bereitzustellen, nachdem eine Rotation durchgeführt wurde. Mit Sperren können Sie automatisierte Workflows erstellen, die Sie bei folgenden Aufgaben unterstützen:
- Geben Sie an, dass ein geheimer Schlüssel von einer oder mehreren Anwendungen oder Services verwendet wird.
- Verhindern, dass geheime Daten gelöscht werden, auch wenn ein geheimer Schlüssel abläuft.
- Löschen Sie sicher ältere Versionen von geheimen Schlüsseln, nachdem die neueste Version vollständig in Ihren Anwendungen bereitgestellt wurde.
- Vermeiden Sie unbeabsichtigte Ausfallzeiten in Ihren Anwendungen.
Informationen zu den vorgeschlagenen Richtlinien für die Verwendung von Sperren zur Vermeidung von Anwendungsausfallzeiten finden Sie unter Best practices for rotation and locking secrets.
Vorbereitende Schritte
Bevor Sie beginnen, müssen Sie prüfen, ob Sie über die erforderliche Zugriffsebene verfügen. Zum Verwalten von Sperren für Ihre geheimen Schlüssel benötigen Sie die Servicerolle Manager.
Geheime Schlüssel sperren
Das Sperren eines geheimen Schlüssels verhindert jede Operation, die dazu führen kann, dass die Daten des geheimen Schlüssels geändert oder gelöscht werden. Um einen geheimen Schlüssel zu sperren, hängen Sie eine oder mehrere Sperren an die aktuelle oder vorherige Version an.
Wenn Sie versuchen, ein Geheimnis zu ändern oder zu löschen, während es gesperrt ist, verweigert Secrets Manager die Anfrage mit einer Antwort HTTP 412 Precondition Failed. Es wird eine Fehlermeldung angezeigt, die dem folgenden
Beispiel ähnelt:
The requested action can't be completed because the secret version is locked.
Wenn Sie mit dynamischen geheimen SchlüsselnEin eindeutiger Wert, beispielsweise ein Kennwort oder ein API-Schlüssel, der dynamisch erstellt und per Leasing einer Anwendung zur Verfügung gestellt wird, die Zugriff auf eine geschützte Ressource benötigt. Nachdem ein dynamischer geheimer Schlüssel das Ende des Leasingzeitraums erreicht hat, wird die Zugriffsberechtigung für die geschützte Ressource widerrufen und der geheime Schlüssel wird automatisch gelöscht., wie z. B. IAM-Berechtigungsnachweisen, arbeiten, bedeutet das Sperren Ihrer geheimen Schlüssel auch, dass diese geheimen Schlüssel standardmäßig nicht gelesen und nicht aufgerufen werden können. Weitere Informationen finden Sie unter Warum kann ich einen geheimen IAM-Berechtigungsnachweis nicht lesen?
Ein benutzerdefinierter Berechtigungsnachweis kann erst gesperrt werden, wenn alle Aufgaben abgeschlossen sind.
Wenn ein gesperrter geheimer Schlüssel sein Ablaufdatum erreicht, bleibt er im Status Aktiv und Ihre Anwendungen können auf seine Daten zugreifen. Secrets Manager versetzt den geheimen Schlüssel in den Status Zerstört und löscht die abgelaufenen Daten des geheimen Schlüssels erst permanent, nachdem alle Sperren für den geheimen Schlüssel entfernt wurden.
SSL / TLS Zertifikate erreichen dennoch ihr definiertes Ablaufdatum und gehen in den Zustand "Zerstört" über, auch wenn sie gesperrt sind. Weitere Informationen finden Sie unter Warum wurde mein gesperrtes Zertifikat in den Status 'Gelöscht' versetzt?
- Wenn Sie versuchen, einen geheimen Schlüssel zu rotieren, während seine aktuelle Version gesperrt und die vorherige Version entsperrt ist (oder wenn eine automatische Rotation geplant ist), ist die Anforderung zum Rotieren des geheimen Schlüssels zulässig. Die aktuelle Version des geheimen Schlüssels wird zur neuen Vorgängerversion und behält die vorhandenen Sperren bei. Eine neue aktuelle Version wird ohne Sperren erstellt.
- Wenn Sie versuchen, einen geheimen Schlüssel zu rotieren, während seine vorherige Version gesperrt ist (oder wenn eine automatische Rotation geplant ist), wird Ihre Anforderung zum Rotieren des geheimen Schlüssels verweigert. Die Rotation ist nur zulässig, sobald alle Sperren für die vorherige Version des geheimen Schlüssels entfernt wurden.
Sperren in der Benutzeroberfläche erstellen
Sie können bis zu 1.000 Sperren für einen geheimen Schlüssel erstellen, indem Sie die Benutzerschnittstelle von Secrets Manager verwenden. Jede Sperre kann verwendet werden, um eine einzelne Anwendung oder einen Service darzustellen, die bzw. der Ihren geheimen Schlüssel verwendet.
Ein geheimer Schlüssel gilt als gesperrt, wenn Sie ihm mindestens eine Sperre zuordnen. Eine Sperre kann nur auf eine geheime Version angewendet werden, die aktive Nutzdaten oder geheime Daten enthält.
Als Unterstützung beim Erstellen einer neuen Sperre und beim Entfernen älterer Sperren in einer einzigen Operation können Sie auch einen optionalen Modus bei der Erstellung der Sperre angeben.
| Modus | Beschreibung |
|---|---|
| Vorherige Sperren entfernen | Entfernt alle anderen Sperren, die mit dem angegebenen Namen übereinstimmen. Wenn in der Vorgängerversion des geheimen Schlüssels übereinstimmende Sperren gefunden werden, werden diese Sperren gelöscht, wenn die neue Sperre erstellt
wird.
Nehmen wir zum Beispiel an, die vorherige Version Ihres Geheimnisses enthält eine Sperre: |
| Vorherige Sperren entfernen und Daten der vorherigen Version löschen | Wie die vorherige Option, löscht jedoch zusätzlich dauerhaft die Daten der vorherigen Geheimnishinweis-Version, sofern keine Sperren damit verknüpft sind.
Angenommen, die vorherige Version Ihres Geheimnisses enthält eine Sperre |
Eine Sperre für die aktuelle Version des Geheimnisses erstellen
Sie können die aktuelle Version eines geheimen Schlüssels über die Benutzerschnittstelle von Secrets Manager sperren. Eine erfolgreiche Anforderung hängt eine neue Sperre an die aktuelle Version Ihres ausgewählten geheimen Schlüssels an oder ersetzt eine Sperre mit demselben Namen, sofern sie bereits vorhanden ist.
- Klicken Sie in der Konsole auf das Symbol Menü
> Ressourcenliste.
- Wählen Sie in der Liste der Services Ihre Instanz von Secrets Manager aus.
- Wechseln Sie in der Benutzerschnittstelle von Secrets Manager zur Liste Geheime Schlüssel.
- Klicken Sie in der Zeile des Geheimnisses, das Sie sperren möchten, auf das Menü „ Aktionen “
> Sperren > Sperre erstellen.
- Fügen Sie einen Namen und eine Beschreibung hinzu, um das Schloss leicht identifizieren zu können.
- Wählen Sie in der Liste der zu sperrenden Versionen Aktuell aus.
- Optional: Ordnen Sie Ihrer Sperre JSON-Attribute zu. Sie können ein JSON-Objekt mit jeder Sperre einschließen, um alle Informationen zu speichern, die Sie für einen automatisierten Ablauf benötigen. Beispiel: Ein Schlüssel/Wert-Paar, das die Ressource angibt, die Sie dieser Sperre zuordnen wollen.
- Optional: Machen Sie die Sperre exklusiv. Wählen Sie diese Option aus, um alle anderen Sperren zu entfernen, die mit dem angegebenen Namen übereinstimmen. Wenn in der Vorgängerversion des geheimen Schlüssels übereinstimmende Sperren gefunden werden, werden diese Sperren gelöscht, wenn die neue Sperre erstellt wird.
- Optional: Daten der vorherigen Version löschen. Wählen Sie diese Option aus, um auch die Daten der vorherigen Version des geheimen Schlüssels permanent zu löschen, wenn ihr keine Sperren zugeordnet sind.
- Klicken Sie auf Erstellen. Für die ausgewählte Version des geheimen Schlüssels wird eine neue Sperre erstellt.
Sperre für die vorherige Version des geheimen Schlüssels erstellen
Sie können die Vorgängerversion eines geheimen Schlüssels über die Benutzerschnittstelle von Secrets Manager sperren. Eine erfolgreiche Anforderung ordnet der vorherigen Version Ihres ausgewählten geheimen Schlüssels eine neue Sperre zu oder ersetzt eine Sperre mit demselben Namen, wenn sie bereits vorhanden ist.
- Wechseln Sie in der Benutzerschnittstelle von Secrets Manager zur Liste Geheime Schlüssel.
- Klicken Sie in der Zeile des Geheimnisses, das Sie sperren möchten, auf das Menü „ Aktionen “
> Sperren > Sperre erstellen.
- Fügen Sie einen Namen und eine Beschreibung hinzu, um das Schloss leicht identifizieren zu können.
- Wählen Sie in der Liste der zu sperrenden Versionen Zurück aus.
- Optional: Ordnen Sie Ihrer Sperre JSON-Attribute zu. Sie können ein JSON-Objekt mit jeder Sperre einschließen, um alle Informationen zu speichern, die Sie für einen automatisierten Ablauf benötigen. Beispiel: Ein Schlüssel/Wert-Paar, das die Ressource angibt, die Sie dieser Sperre zuordnen wollen.
- Klicken Sie auf Erstellen. Für die ausgewählte Version des geheimen Schlüssels wird eine neue Sperre erstellt.
Erstellen von Sperren über die Befehlszeile
Sie können bis zu 1000 Sperren für einen geheimen Schlüssel erstellen, indem Sie die Befehlszeilenschnittstelle Secrets Manager verwenden. Jede Sperre kann verwendet werden, um eine einzelne Anwendung oder einen Service darzustellen, die bzw. der Ihren geheimen Schlüssel verwendet.
Ein geheimer Schlüssel gilt als gesperrt, wenn Sie ihm mindestens eine Sperre zuordnen. Eine Sperre kann nur auf eine geheime Version angewendet werden, die aktive Nutzdaten oder geheime Daten enthält.
Als Unterstützung beim Erstellen einer neuen Sperre und beim Entfernen älterer Sperren in einer einzigen Operation können Sie auch einen optionalen Modus bei der Erstellung der Sperre angeben.
| Modus | Beschreibung |
|---|---|
| Vorherige Sperren entfernen | Entfernt alle anderen Sperren, die mit dem angegebenen Namen übereinstimmen. Wenn in der Vorgängerversion des geheimen Schlüssels übereinstimmende Sperren gefunden werden, werden diese Sperren gelöscht, wenn die neue Sperre erstellt
wird.
Nehmen wir zum Beispiel an, die vorherige Version Ihres Geheimnisses enthält eine Sperre: |
| Vorherige Sperren entfernen und Daten der vorherigen Version löschen | Wie die vorherige Option, löscht jedoch zusätzlich dauerhaft die Daten der vorherigen Geheimnishinweis-Version, sofern keine Sperren damit verknüpft sind.
Angenommen, die vorherige Version Ihres Geheimnisses enthält eine Sperre |
Eine Sperre für die aktuelle Version des Geheimnisses erstellen
Sie können die aktuelle Version eines geheimen Schlüssels über die Befehlszeilenschnittstelle von Secrets Manager sperren. Eine erfolgreiche Anforderung hängt eine neue Sperre an die aktuelle Version Ihres ausgewählten geheimen Schlüssels an oder ersetzt eine Sperre mit demselben Namen, sofern sie bereits vorhanden ist.
Führen Sie den Befehl ibmcloud secrets-manager secret-locks-bulk-create aus,
um eine Sperre für die aktuelle Version eines geheimen Schlüssels mit dem CLI-Plug-in Secrets Manager zu erstellen. Sie können den Typ des geheimen Schlüssels, die ID des geheimen Schlüssels und den Modus angeben.
ibmcloud secrets-manager secret-locks-bulk-create \
--id=exampleString \
--locks='[{"name": "lock-example-1", "description": "lock for consumer 1", "attributes": {"anyKey": "anyValue"}}]' \
--mode=remove_previous
Sperren mit der API erstellen
Sie können bis zu 1.000 Sperren für einen geheimen Schlüssel mithilfe der API Secrets Manager erstellen. Jede Sperre kann verwendet werden, um eine einzelne Anwendung oder einen Konsumenten darzustellen, die bzw. der Ihren geheimen Schlüssel verwendet. Eine erfolgreiche Anforderung ordnet Ihrem geheimen Schlüssel eine neue Sperre zu oder ersetzt eine Sperre mit demselben Namen, wenn sie bereits vorhanden ist.
Ein geheimer Schlüssel gilt als gesperrt, wenn Sie ihm mindestens eine Sperre zuordnen. Eine Sperre kann nur auf eine geheime Version angewendet werden, die aktive Nutzdaten oder geheime Daten enthält.
Als Unterstützung beim Erstellen einer neuen Sperre und beim Entfernen älterer Sperren in einer einzigen Operation können Sie auch einen optionalen Modus bei der Erstellung der Sperre angeben.
| Modus | Abfrageparameter | Beschreibung |
|---|---|---|
| Vorherige Sperren entfernen | mode=remove_previous |
Entfernt alle anderen Sperren, die mit dem angegebenen Namen übereinstimmen. Wenn in der Vorgängerversion des geheimen Schlüssels übereinstimmende Sperren gefunden werden, werden diese Sperren gelöscht, wenn die neue Sperre erstellt
wird.
Nehmen wir zum Beispiel an, die vorherige Version Ihres Geheimnisses enthält eine Sperre: |
| Vorherige Sperren entfernen | mode=remove_previous_and_delete |
Entspricht der Option „ remove_previous “, löscht jedoch zusätzlich dauerhaft die Daten der vorherigen Secret-Version, sofern keine Sperren damit verknüpft sind.
Angenommen, die vorherige Version Ihres Geheimnisses enthält eine Sperre |
Sperren für die aktuelle Version des geheimen Schlüssels erstellen
Die folgende Anforderung erstellt zwei Sperren für die aktuelle Version eines geheimen Schlüssels. Wenn Sie die API aufrufen, müssen Sie die ID-Variablen und das IAM-Token durch die Werte ersetzen, die für Ihre Secrets Manager-Instanz spezifisch sind.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"locks": [
{
"name": "lock-1",
"description": "Lock for consumer 1.",
"attributes": {
"key": "value"
}
},
{
"name": "lock-2",
"description": "Lock for consumer 2.",
"attributes": {
"key": "value"
}
}
]
}' \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/locks_bulk"
Wenn Sie einen automatisierten Ablauf erstellen, können Sie das Objekt attributes verwenden, um Schlüsselwertdaten mit jeder Sperre für Ihren geheimen Schlüssel anzugeben. Sie können beispielsweise eine Ressourcenkennung, wie
eine ID oder einen Cloud Resource Name (CRN), angeben.
Eine erfolgreiche Antwort gibt Details zu den neuen Sperren sowie weitere Metadaten zurück.
{
"secret_id": "0cf4addb-7a90-410b-a3a7-a15bbe2b7909",
"secret_group_id": "d8371728-95c8-4c12-b2af-1af98adb9e41",
"versions": [
{
"version_id": "7bf3814d-58f8-4df8-9cbd-f6860e4ca973",
"version_alias": "current",
"locks": [
"lock-3",
"lock-4"
],
"payload_available": true
},
{
"version_id": "5bf89b0c-df55-c8d5-7ad6-8816951c6784",
"version_alias": "previous",
"locks": [
"lock-1",
"lock-2"
],
"payload_available": true
}
]
}
Weitere Informationen zu den erforderlichen und optionalen Anforderungsparametern finden Sie in der API-Referenz.
Sperren für die vorherige Version des geheimen Schlüssels erstellen
Die folgende Anforderung erstellt zwei Sperren für die vorherige Version eines geheimen Schlüssels. Wenn Sie die API aufrufen, müssen Sie die ID-Variablen und das IAM-Token durch die Werte ersetzen, die für Ihre Secrets Manager-Instanz spezifisch sind.
curl -X POST
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"locks": [
{
"name": "lock-1",
"description": "Lock for consumer 1.",
"attributes": {
"key": "value"
}
},
{
"name": "lock-2",
"description": "Lock for consumer 2.",
"attributes": {
"key": "value"
}
}
]
}' \ "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{id}/versions/{version_id}/locks_bulk"
Eine erfolgreiche Antwort gibt Details zu den neuen Sperren sowie weitere Metadaten zurück.
{
"secret_id": "0cf4addb-7a90-410b-a3a7-a15bbe2b7909",
"secret_group_id": "d8371728-95c8-4c12-b2af-1af98adb9e41",
"versions": [
{
"version_id": "7bf3814d-58f8-4df8-9cbd-f6860e4ca973",
"version_alias": "current",
"locks": [
"lock-3",
"lock-4"
],
"payload_available": true
},
{
"version_id": "5bf89b0c-df55-c8d5-7ad6-8816951c6784",
"version_alias": "previous",
"locks": [
"lock-1",
"lock-2"
],
"payload_available": true
}
]
}
Weitere Informationen zu den erforderlichen und optionalen Anforderungsparametern finden Sie in der API-Referenz.
Geheime Schlüssel entsperren
Ein Geheimnis gilt erst dann als entsperrt und kann geändert oder gelöscht werden, wenn alle zugehörigen Sperren entfernt wurden. Sie können die Benutzerschnittstelle von Secrets Manager oder APIs verwenden, um Sperren zu löschen, die einem geheimen Schlüssel zugeordnet sind.
Sperren in der Benutzeroberfläche löschen
Sie können eine Sperre, die einem vorhandenen geheimen Schlüssel zugeordnet ist, über die Benutzerschnittstelle von Secrets Manager löschen.
- Klicken Sie in der Konsole auf das Symbol Menü
> Ressourcenliste.
- Wählen Sie in der Liste der Services Ihre Instanz von Secrets Manager aus.
- Wechseln Sie in der Benutzerschnittstelle von Secrets Manager zur Liste Geheime Schlüssel.
- Klicken Sie in der Zeile des Geheimnisses, das Sie aktualisieren möchten, auf
im Menü „Aktionen“ > „Sperren “.
- Klicken Sie in der Zeile der Sperre, die Sie löschen möchten, auf das Menü „ Aktionen “
> Löschen.
- Geben Sie den Namen des geheimen Schlüssels ein, um das Löschen zu bestätigen. Klicken Sie auf Löschen.
Ihre Sperre ist jetzt gelöscht. Um den geheimen Schlüssel vollständig zu entsperren, können Sie alle vorhandenen Sperren entfernen.
Sperren über die API löschen
Sie können die API Secrets Manager verwenden, um mindestens eine Sperre zu löschen, die der bestimmten Version des geheimen Schlüssels zugeordnet ist.
Eine erfolgreiche Anforderung löscht die von Ihnen angegebenen Sperren. Um alle Sperren zu entfernen, können Sie {"locks": ["*"]} im Anforderungshauptteil übergeben. Geben Sie andernfalls die Namen der Sperren
an, die Sie löschen wollen. Beispiel: {"locks": ["lock-1", "lock-2"]}.
Um zu verstehen, ob ein geheimer Schlüssel Sperren enthält, überprüfen Sie das Feld locks_total, das als Teil der Metadaten Ihres geheimen Schlüssels zurückgegeben wird.
curl -X DELETE
-H "Authorization: Bearer {iam_token}" \
-H "Accept: application/json" \
"https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets/{secret_id}/versions/{id}/locks_bulk?name=[ "lock-example-1" ]"
Weitere Informationen zu den erforderlichen und optionalen Anforderungsparametern finden Sie in der API-Referenz.