Almacenamiento de secretos clave-valor

Puede utilizar IBM Cloud® Secrets Manager para almacenar y gestionar secretos de clave-valor, incluidos documentos JSON complejos, que se utilizan para acceder a sistemas protegidos que están dentro o fuera de IBM Cloud.

Un secreto de clave-valor es un tipo de secreto de aplicación que se puede utilizar para contener datos sensibles y que está estructurado como un objeto JSON. Después de crear el secreto, puede utilizarlo para conectar la aplicación a un recurso protegido, como por ejemplo una base de datos o una app de terceros. Su secreto se almacena de forma segura en la instancia de servicio dedicada de Secrets Manager, donde puede gestionar de forma centralizada su ciclo de vida.

Puede almacenar varias versiones por clave y acceder a la historia y los metadatos de su secreto de clave-valor con Secrets Manager. Para obtener más información, consulte Gestión de secretos de valor de clave con Vault.

Para obtener más información sobre los tipos de secretos que puede gestionar en Secrets Manager, consulte ¿Qué es un secreto?

Antes de empezar

Antes de empezar, asegúrese de que tiene el nivel de acceso necesario. Para crear o añadir secretos, necesita el rol de servicio Escritor o superior.

Creación de secretos clave-valor en la interfaz de usuario

Para añadir un secreto de clave-valor utilizando la interfaz de usuario de Secrets Manager, siga los pasos siguientes.

  1. En la consola de IBM Cloud, pulse el icono Menú Icono de menú > Lista de recursos.

  2. En la lista de servicios, seleccione la instancia de Secrets Manager.

  3. En la tabla Secretos, pulse Añadir.

  4. En la lista de tipos de secreto, seleccione la ficha Clave-valor.

  5. Pulse Siguiente.

  6. Añada un nombre y una descripción para identificar fácilmente su secreto.

  7. Seleccione el grupoEl entorno y las restricciones a los que se deben ajustar los secretos contenidos en una instancia. Se puede asociar un usuario con un grupo de secretos para permitir el acceso y la colaboración. secreto que desea asignar al secreto.

    ¿No tiene ningún grupo de secretos? En el campo Grupo de secretos, puede pulsar Crear para proporcionar un nombre y una descripción para un grupo nuevo. Su secreto se añade automáticamente al nuevo grupo. Para obtener más información sobre grupos de secretos, consulte Organización de los secretos.

  8. Opcional: añada etiquetas como ayuda para buscar secretos similares en su instancia.

  9. Opcional: añada metadatos a su secreto o a una versión específica de su secreto.

    1. Cargue un archivo o especifique los metadatos y los metadatos de versión en formato JSON.
  10. Pulse Siguiente.

  11. Seleccione un archivo o especifique el valor de secreto que desea asociar al secreto.

Debe especificar los datos de clave-valor como un objeto JSON. El tamaño máximo de archivo es 512 KB.

  1. Pulse Siguiente.
  2. Revise los detalles de su secreto.
  3. Pulse Añadir.

Creación de secretos de clave-valor desde la CLI

Para crear un secreto de clave-valor utilizando el plug-in de CLI de Secrets Manager, ejecute el mandato ibmcloud secrets-manager secret-create. Por ejemplo, el siguiente comando crea un secreto clave-valor y almacena {"key1":"value1"} como su valor.

ibmcloud secrets-manager secret-create \
  --secret-name="example-kv-secret" \
  --secret-description="Description of my key-value secret." \
  --secret-type="kv" \
  --secret-group-id="67d025e1-0248-418f-83ba-deb0ebfb9b4a" \
  --secret-labels='["dev","us-south"]' \
  --kv-data='{"key1": "val1","key2": "val2"}' \
  --secret-custom-metadata='{"metadata_custom_key": "metadata_custom_value"}' \
  --secret-version-custom_metadata='{"custom_version_key": "custom_version_value"}'

El mandato genera el valor de ID del secreto, junto con otros metadatos. Para obtener más información sobre las opciones de mandato, consulte ibmcloud secrets-manager secret-create.

Creación de secretos clave-valor con la API

Puede crear secretos clave-valor mediante programación utilizando la API de Secrets Manager.

El ejemplo siguiente muestra una consulta que puede utilizar para crear y almacenar un secreto clave-valor. Cuando llame a la API, sustituya las variables de ID y la señal de IAM por los valores que son específicos de la instancia de Secrets Manager.

Puede almacenar metadatos que sean relevantes para las necesidades de su organización con los parámetros de solicitud custom_metadata y version_custom_metadata. Los valores de version_custom_metadata sólo se devuelven para las versiones de un secreto. Los metadatos personalizados del secreto se almacenan como todos los demás metadatos, para un máximo de 50 versiones, y no debe incluir datos confidenciales.

curl -X POST
    -H "Authorization: Bearer {iam_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
          "name": "example-kv-secret",
          "description": "Description of my kv secret.",
          "secret_type": "kv",
          "secret_group_id": "67d025e1-0248-418f-83ba-deb0ebfb9b4a",
          "labels": [
            "dev",
            "us-south"
          ],
          "data": {
            "key1": "val1",
            "key2": "val2"
          },
          "custom_metadata": {
            "metadata_custom_key": "metadata_custom_value"
          },
          "version_custom_metadata": {
            "custom_version_key": "custom_version_value"
          }
        }' \
      "https://{instance_ID}.{region}.secrets-manager.appdomain.cloud/api/v2/secrets"

Una respuesta correcta devuelve el valor de ID del secreto, junto con otros metadatos. Para obtener más información sobre los parámetros de solicitud obligatorios y opcionales, consulte Crear un secreto.

Creación de secretos de valor clave con Terraform

Puede crear secretos de valor de clave mediante programación utilizando Terraform para Secrets Manager.

Siga las prácticas recomendadas de Terraform para proteger variables de entrada confidenciales como, por ejemplo, credenciales secretas. Para obtener más información, consulte Proteger variables de entrada sensibles.

El ejemplo siguiente muestra una configuración que puede utilizar para crear un secreto de valor de clave estableciendo valores confidenciales en un archivo terraform.tfvars.

  1. Defina una variable de entrada para los datos secretos de valor de clave en un archivo variables.tf.
    variable "kv_secret_data" {
        description = "KV secret data"
        type        = map(any)
        sensitive   = true
    }
  1. Asigne un valor a la variable kv_secret_data en un archivo terraform.tfvars.

    Al establecer valores con un archivo .tfvars, puede separar los valores confidenciales del resto de los valores de las variables y asegurarse de que los usuarios que trabajan con la configuración saben qué valores son confidenciales. Por motivos de seguridad, debe mantener y compartir el archivo .tfvars sólo con los usuarios que tengan el acceso adecuado. También debe tener cuidado de no almacenar los archivos .tfvars con valores confidenciales en el control de versiones como, por ejemplo, Github, en texto simple.

    kv_secret_data = {
        "key1" : "value1"
    }
    
  2. Cree el secreto de valor de clave en el archivo main.tf.

El siguiente ejemplo muestra una configuración que puede utilizar para crear un secreto clave-valor.

    resource "ibm_sm_kv_secret" "sm_kv_secret"{
        instance_id = local.instance_id
        region = local.region
        name = "kv-secret-example"
        description = "Extended description for this key-value secret."
        labels = ["my-label"]
        secret_group_id = ibm_sm_secret_group.sm_secret_group_test.secret_group_id
        data = var.kv_secret_data
    }

Almacene y gestione pares clave-valor mediante programación utilizando Terraform IBM Modules (TIM) para Secrets Manager Secret. Descubra más en Terraform IBM Modules.