Gestión de secretos de clave-valor con API de caja fuerte
Con IBM Cloud® Secrets Manager, puede gestionar varias versiones por clave y acceder al historial y metadatos del secreto de clave-valor utilizando la API HTTP de HashiCorp Vault.
Visión general
Si ya utiliza la API de caja fuerte, puede utilizar su formato de API y sus directrices para interactuar con Secrets Manager. Secrets Manager sólo da soporte a la versión 2 de KV. Los puntos finales para el motor de secretos de valor clave definidos en la documentación de Vault son compatibles con la CLI y otras herramientas aplicables.
Para obtener más información sobre la autenticación, consulte Vault API.
Para utilizar la API REST estándar de Secrets Manager, consulte la referencia de la API Secrets Manager.
Diferencia entre KV y Secrets Manager
El motor de secretos de clave-valor que utiliza Secrets Manager difiere ligeramente del motor de secretos de KV de la caja fuerte.
- No puede personalizar la vía de acceso por completo. La vía de acceso a un secreto de clave-valor debe ser:
{secret_group_id}/{secret_name}
para secretos que se encuentran en un grupo de secretos personalizados./{secret_name}
para los secretos que están en el grupo predeterminado.
- Los métodos que se utilizan en Vault para configurar el motor de clave-valor y leer la configuración no están soportados.
Crear o actualizar un secreto de clave-valor
Cree una versión de un secreto de clave-valor.
Solicitud de ejemplo
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"
}
}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
data |
Obligatorio. Los datos de secretos en formato JSON para asignar al secreto. El tamaño máximo de archivo es 512 KB. |
Respuesta de ejemplo
Una solicitud para actualizar un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"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
}
Leer una versión de un secreto de clave-valor
Obtenga una versión de un secreto de clave-valor. Una solicitud satisfactoria devuelve los datos de secretos que están asociados con la versión especificada de su secreto, junto con otros metadatos.
Solicitud de ejemplo
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}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
version |
Las versiones que desea leer. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para obtener una versión de un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"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
}
Suprimir la última versión de un secreto de clave-valor
Suprima la última versión de un secreto de clave-valor. Después de suprimir la versión, no puede recuperarla utilizando las llamadas de API de list
o get
. Sin embargo, es una supresión flexible y los datos subyacentes
no se eliminan. Puede deshacer la supresión llamando al punto final de la API de undelete.
Solicitud de ejemplo
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}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para suprimir la última versión de un secreto de clave-valor en el grupo de secretos de default
devuelve una respuesta en blanco con un código de estado 204 para confirmar que se ha suprimido la última versión.
Suprimir versiones especificadas de un secreto de clave-valor
Suprima las versiones especificadas de un secreto de clave-valor. Después de suprimir las versiones, no puede recuperarlas utilizando llamadas de API de list
o get
. Sin embargo, es una supresión flexible y los datos
subyacentes no se eliminan. Puede deshacer la supresión llamando al punto final de la API de undelete.
Solicitud de ejemplo
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]
}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
versions |
Las versiones especificadas que se van a suprimir. |
Respuesta de ejemplo
Una solicitud para suprimir las versiones especificadas de un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"request_id": "43abde16-6a33-971f-1690-469eccc00d91",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": null
}
Restaurar un secreto de clave-valor
Restaure una versión suprimida anteriormente de un secreto de clave-valor.
Solicitud de ejemplo
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
]
}
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
versions |
Las versiones del secreto de clave-valor que desea suprimir. |
Respuesta de ejemplo
Una solicitud para restaurar una versión de un secreto de clave-valor en el grupo de secretos de default
devuelve una respuesta en blanco con un código de estado 204 para confirmar que se han restaurado las versiones especificadas.
Destruir versiones de un secreto
Destruya las versiones especificadas de un secreto de clave-valor de forma permanente. Para borrar de forma temporal las versiones de un secreto en su lugar, utilice el punto final de la API suprimir versiones especificadas.
Solicitud de ejemplo
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]
}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
versions |
Las versiones del secreto de clave-valor que desea destruir permanentemente. |
Respuesta de ejemplo
Una solicitud para destruir permanentemente versiones de un secreto de clave-valor en el grupo de secretos de default
devuelve una respuesta en blanco con un código de estado de 204 para confirmar que las versiones del secreto
se han destruido.
Crear o actualizar metadatos de secretos de clave-valor
Cree o actualice los metadatos de un secreto de clave-valor, como el número máximo de versiones u otros valores personalizados. Para actualizar el contenido real del secreto, utilice el método Crear o actualizar un secreto.
Solicitud de ejemplo
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"
}
}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para actualizar los metadatos de un secreto de clave-valor en el grupo de secretos de default
devuelve una respuesta en blanco con un código de estado 204 para confirmar que los metadatos del secreto se han actualizado.
Leer metadatos del secreto de clave-valor
Obtenga los metadatos de un secreto de clave-valor especificando el ID de la versión.
Solicitud de ejemplo
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}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para obtener los metadatos de un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"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
}
Suprimir los metadatos y todas las versiones de un secreto de clave-valor
Suprima de forma permanente los metadatos y todos los datos de versión de un secreto de clave-valor especificado. Todo el historial de versiones se elimina cuando se utiliza este punto final de API.
Solicitud de ejemplo
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}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para suprimir los metadatos y todas las versiones de un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"request_id": "62b1e2c2-801a-6592-0526-edb38896a546",
"lease_id": "",
"renewable": false,
"lease_duration": 0,
"data": null,
"wrap_info": null,
"warnings": null,
"auth": null
}
Listar nombres de clave de un secreto de clave-valor
Obtenga una lista de nombres de clave de un secreto de clave-valor. No codifique información confidencial en nombres de claves. No se puede acceder a los valores de las claves utilizando este mandato.
En {sm-short}, no se puede utilizar el verbo LIST HTTP para obtener la lista de nombres de claves. Solo puede hacerlo en la API KV de Vault.
Solicitud de ejemplo
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}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
Respuesta de ejemplo
Una solicitud para listar los nombres de clave de un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"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
}
Aplicar un parche a un secreto de valor de clave
Actualice un secreto de valor de clave existente proporcionando sólo los detalles que desea cambiar. Cuando se aplica un parche a un secreto, se crea una nueva versión. Cualquier dato que no cambie permanece exactamente como está en la versión anterior del secreto.
Solicitud de ejemplo
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"
}
}'
Parámetro de solicitud | Descripción |
---|---|
instance_id |
El ID de la instancia de Secrets Manager. |
region |
La región en la que se ha creado la instancia de Secrets Manager. |
secret_name |
El nombre del secreto de clave-valor. |
Vault-Token |
La señal de autenticación que se recupera de la caja fuerte. |
data |
Obligatorio. Los datos secretos en formato JSON con los que aplicar el parche al secreto. El tamaño máximo de archivo es 512 KB. |
Respuesta de ejemplo
Una solicitud para actualizar un secreto de clave-valor en el grupo de secretos de default
devuelve la siguiente respuesta:
{
"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
}