IBM Cloud Docs
Gestión de secretos de clave-valor con API de caja fuerte

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"
            }
    }'
Crear o actualizar un secreto clave-valor parámetros de la solicitud
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}'
Leer una versión de los parámetros de una solicitud de clave-valor secreto
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}'
Borrar la última versión de los parámetros de una solicitud de secreto clave-valor
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]
            }'
Eliminar las versiones especificadas de los parámetros de una solicitud de clave-valor secreto
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
                ]
            }
Recuperar una versión de los parámetros de una solicitud de clave-valor secreto
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]
            }'
Destruir las versiones de los parámetros de una solicitud de clave-valor secreto
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"
                }
            }'
Actualizar los metadatos de los parámetros de una solicitud de secreto clave-valor
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}'
Leer los metadatos de los parámetros de una solicitud de clave-valor secreto
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}'
Borrar los metadatos de los parámetros de una solicitud de secreto clave-valor
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}'
Enumerar los nombres de las claves de los parámetros de una petición secreta clave-valor
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"
            }
    }'
Crear o actualizar un secreto clave-valor parámetros de la solicitud
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
}