Geheime Schlüssel/Wert-Schlüssel mit Vault-API verwalten
Mit IBM Cloud® Secrets Managerkönnen Sie mehrere Versionen pro Schlüssel verwalten und mithilfe der HashiCorp Vault-HTTP-API auf den Verlauf und die Metadaten Ihres Schlüssel/Wert-Schlüssel zugreifen.
Übersicht
Wenn Sie die Vault-API bereits verwenden, können Sie das zugehörige API-Format und die zugehörigen Richtlinien für die Interaktion mit Secrets Managerverwenden. Secrets Manager unterstützt nur KV Version 2. Die Endpunkte für die Schlüsselwertsteuerkomponente für geheime Schlüssel, die in der Vault-Dokumentation definiert sind, sind mit der Befehlszeilenschnittstelle und anderen anwendbaren Tools kompatibel.
Weitere Informationen zur Authentifizierung finden Sie unter Vault API.
Um die Standard-REST-API für Secrets Manager zu verwenden, lesen Sie die Secrets Manager API-Referenz.
Unterschied zwischen KV und Secrets Manager
Die von Secrets Manager verwendete Engine für geheime Schlüssel/Wert-Schlüssel weicht geringfügig von der Vault-Engine für geheime KV-Schlüssel ab.
- Sie können den Pfad nicht vollständig anpassen. Der Pfad zu einem geheimen Schlüssel/Wert-Schlüssel muss wie folgt lauten:
{secret_group_id}/{secret_name}
für geheime Schlüssel, die sich in einer angepassten Gruppe geheimer Schlüssel befinden./{secret_name}
für geheime Schlüssel, die sich in der Standardgruppe befinden.
- Die Methoden, die in Vault zum Konfigurieren der Schlüssel/Wert-Engine und Lesen der Konfiguration verwendet werden, werden nicht unterstützt.
Geheimen Schlüssel/Wert-Schlüssel erstellen oder aktualisieren
Erstellen Sie eine Version eines geheimen Schlüssels mit Schlüsselwert.
Beispielanforderung
curl -X POST 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/data/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-H 'Content-Type: application/json' \
-d '{
"data": {
"key":"value"
}
}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
data |
Erforderlich. Die Daten des geheimen Schlüssels im JSON-Format, die dem geheimen Schlüssel zugewiesen werden sollen. Die maximale Dateigröße beträgt 512 KB. |
Beispielantwort
Eine Anforderung zum Aktualisieren eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "9000000d4-f0000-4c000-000000-800000000f",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"created_time": "2022-02-09T23:41:58.888138788Z",
"deletion_time": "",
"destroyed": false,
"version": 2
},
"wrap_info": null,
"warnings": null,
"auth": null
}
Version eines geheimen Schlüssel/Wert-Schlüssels lesen
Ruft eine Version eines geheimen Schlüssels mit Schlüsselwert ab. Eine erfolgreiche Anforderung gibt die Daten des geheimen Schlüssels zurück, die der angegebenen Version Ihres geheimen Schlüssels zugeordnet sind, zusammen mit anderen Metadaten.
Beispielanforderung
curl -X GET 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/data/{secret_name}?version={version}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
version |
Die Versionen, die Sie lesen möchten |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Abrufen einer Version eines geheimen Schlüssel/Wert-Schlüssels in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "400000-60000-8e000-0ad0-00000bc0000caebe",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"data": {
"key": "value"
},
"metadata": {
"created_time": "2022-01-13T21:31:49.893962888Z",
"deletion_time": "",
"destroyed": false,
"version": 1
}
},
"wrap_info": null,
"warnings": null,
"auth": null
}
Neueste Version eines geheimen Schlüssel/Wert-Schlüssels löschen
Löscht die neueste Version eines geheimen Schlüssels mit Schlüsselwert. Nach dem Löschen der Version können Sie sie nicht mithilfe von list
-oder get
-API-Aufrufen abrufen. Es ist jedoch ein bedingter Löschvorgang und
die zugrunde liegenden Daten werden nicht entfernt. Sie können das Löschen rückgängig machen, indem Sie den API-Endpunkt Wiederherstellen aufrufen.
Beispielanforderung
curl -X DELETE 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/data/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Löschen der neuesten Version eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt eine leere Antwort mit einem Statuscode 204 zurück, um zu bestätigen, dass die letzte
Version gelöscht wurde.
Angegebene Versionen eines geheimen Schlüssels mit Schlüsselwert löschen
Löscht die angegebenen Versionen eines geheimen Schlüssels mit Schlüsselwert. Nachdem Sie die Versionen gelöscht haben, können Sie sie nicht mithilfe von list
-oder get
-API-Aufrufen abrufen. Es ist jedoch ein bedingter
Löschvorgang und die zugrunde liegenden Daten werden nicht entfernt. Sie können das Löschen rückgängig machen, indem Sie den API-Endpunkt Wiederherstellen aufrufen.
Beispielanforderung
curl -X POST 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/delete/test-kv' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-d '{
"versions": [1, 2]
}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
versions |
Die angegebenen Versionen, die gelöscht werden sollen |
Beispielantwort
Eine Anforderung zum Abrufen der angegebenen Versionen eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "43abde16-6a33-971f-1690-469eccc00d91",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": null
}
Löschen eines geheimen Schlüssels mit Schlüsselwert rückgängig machen
Stellt eine zuvor gelöschte Version eines geheimen Schlüssel/Wert-Schlüssels wieder her.
Beispielanforderung
curl -X POST 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/undelete/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-H 'Content-Type: application/json' \
-d '{
"versions": [
1, 2
]
}
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
versions |
Die Versionen des geheimen Schlüssels mit Schlüsselwert, die Sie löschen wollen. |
Beispielantwort
Eine Anforderung zum Wiederherstellen einer Version eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt eine leere Antwort mit einem Statuscode 204 zurück, um zu bestätigen, dass die angegebenen
Versionen wiederhergestellt wurden.
Versionen eines geheimen Schlüssels löschen
Löscht angegebene Versionen eines geheimen Schlüssels mit Schlüsselwert permanent. Um stattdessen Versionen eines geheimen Schlüssels vorläufig zu löschen, verwenden Sie den API-Endpunkt angegebene Versionen löschen .
Beispielanforderung
curl -X POST 'https://{instance_id}.{region}.secrets-manager.test.appdomain.cloud/v1/ibmcloud/kv/destroy/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-H 'Content-Type: application/json' \
-d '{
"versions": [1, 3]
}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
versions |
Die Versionen des geheimen Schlüssel-Wert-Schlüssels, den Sie dauerhaft löschen wollen |
Beispielantwort
Eine Anforderung zum permanenten Löschen von Versionen eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt eine leere Antwort mit einem Statuscode 204 zurück, um zu bestätigen, dass die Versionen
des geheimen Schlüssels gelöscht wurden.
Metadaten für geheime Schlüssel/Wert-Schlüssel erstellen oder aktualisieren
Erstellen oder aktualisieren Sie die Metadaten eines geheimen Schlüssels für Schlüsselwerte, z. B. die maximale Anzahl von Versionen oder andere angepasste Werte. Verwenden Sie zum Aktualisieren des tatsächlichen Inhalts des geheimen Schlüssels die Methode Geheimen Schlüssel erstellen oder aktualisieren .
Beispielanforderung
curl -X POST 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/metadata/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-H 'Content-Type: application/json' \
-d '{
"custom_metadata": {
"meta1": "data1",
"meta2": "data2"
}
}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Aktualisieren der Metadaten eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt eine leere Antwort mit einem Statuscode 204 zurück, um zu bestätigen, dass die Metadaten
des geheimen Schlüssels aktualisiert wurden.
Metadaten des geheimen Schlüssel/Wert-Schlüssels lesen
Rufen Sie die Metadaten eines geheimen Schlüssel/Wert-Schlüssels ab, indem Sie die ID der Version angeben.
Beispielanforderung
curl -X GET 'https://{instance_id}.{region}.secrets-manager.test.appdomain.cloud/v1/ibmcloud/kv/metadata/{secret_name}' \
-H 'Accept: application/json'
-H 'X-Vault-Token: {Vault-Token}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Abrufen der Metadaten eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "400000-60000-8e000-0ad0-00000bc0000caebe",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"cas_required": false,
"created_time": "2022-01-13T21:31:49.893962888Z",
"current_version": 3,
"custom_metadata" : {
"meta1": "data1",
"meta2": "data2"
},
"delete_version_after": "0s",
"max_versions": 0,
"oldest_version": 0,
"updated_time": "2022-02-09T23:54:16.313286558Z",
"versions": {
"1": {
"created_time": "2022-01-13T21:31:49.893962888Z",
"deletion_time": "",
"destroyed": false
},
"2": {
"created_time": "2022-02-09T23:41:58.888138788Z",
"deletion_time": "",
"destroyed": false
},
"3": {
"created_time": "2022-02-09T23:54:16.313286558Z",
"deletion_time": "",
"destroyed": false
}
}
},
"wrap_info": null,
"warnings": null,
"auth": null
}
Metadaten und alle Versionen eines geheimen Schlüssel/Wert-Schlüssels löschen
Löscht die Metadaten und alle Versionsdaten eines angegebenen geheimen Schlüssels mit Schlüsselwert permanent. Bei Verwendung dieses API-Endpunkts wird das gesamte Versionsprotokoll entfernt.
Beispielanforderung
curl -X DELETE 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/metadata/{secret_name}' \
-H 'Accept: application/json'
-H 'X-Vault-Token: {Vault-Token}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Löschen der Metadaten und aller Versionen eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "62b1e2c2-801a-6592-0526-edb38896a546",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": null
}
Schlüsselnamen eines geheimen Schlüssel/Wert-Schlüssels auflisten
Ruft eine Liste der Schlüsselnamen eines geheimen Schlüssels mit Schlüsselwert ab. Verschlüsseln Sie keine sensiblen Informationen in Schlüsselnamen. Mit diesem Befehl kann nicht auf die Werte der Schlüssel zugegriffen werden.
In {sm-short} können Sie das Verb LIST HTTP nicht verwenden, um die Liste der Schlüsselnamen zu erhalten. Dies ist nur in der Vault-KV-API möglich.
Beispielanforderung
curl -X GET "https://{instance_id}.{region}.secrets-manager.test.appdomain.cloud/v1/ibmcloud/kv/metadata/?list=true" \
-H 'Accept: application/json'\
-H 'X-Vault-Token: {Vault-Token}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
Beispielantwort
Eine Anforderung zum Auflisten der Schlüsselnamen eines geheimen Schlüssel/Wert-Schlüssels in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "a21993df-a4b7-21f1-95a9-c1af7be87d1b",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"keys": [
"secret1",
"secret2"
]
},
"wrap_info": null,
"warnings": null,
"auth": null
}
Geheimen Schlüssel/Wert-Schlüssel korrigieren
Aktualisieren Sie einen vorhandenen geheimen Schlüssel/Wert-Schlüssel, indem Sie nur die Details angeben, die Sie ändern wollen. Wenn Sie ein Patch für einen geheimen Schlüssel anwenden, wird eine neue Version erstellt. Alle Daten, die Sie nicht ändern, bleiben genau wie in der vorherigen Version des geheimen Schlüssels.
Beispielanforderung
curl -X PATCH 'https://{instance_id}.{region}.secrets-manager.appdomain.cloud/v1/ibmcloud/kv/data/{secret_name}' \
-H 'Accept: application/json' \
-H 'X-Vault-Token: {Vault-Token}' \
-H 'Content-Type: application/merge-patch+json' \
-d '{
"data": {
"key":"value"
}
}'
Anforderungsparameter | Beschreibung |
---|---|
instance_id |
Die ID der Secrets Manager -Instanz. |
region |
Die Region, in der die Secrets Manager -Instanz erstellt wurde. |
secret_name |
Der Name des geheimen Schlüssels für den Schlüsselwert. |
Vault-Token |
Das Authentifizierungstoken, das aus der Vault abgerufen wird |
data |
Erforderlich. Die geheimen Daten im JSON-Format, mit denen der geheime Schlüssel korrigiert werden soll. Die maximale Dateigröße beträgt 512 KB. |
Beispielantwort
Eine Anforderung zum Aktualisieren eines geheimen Schlüssels mit Schlüsselwert in der Gruppe geheimer Schlüssel default
gibt die folgende Antwort zurück:
{
"request_id": "9000000d4-f0000-4c000-000000-800000000f",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": {
"created_time": "2022-02-09T23:41:58.888138788Z",
"deletion_time": "",
"destroyed": false,
"version": 2
},
"wrap_info": null,
"warnings": null,
"auth": null
}