IBM Cloud Docs
Almacenamiento de credenciales de usuario

Almacenamiento de credenciales de usuario

Puede utilizar IBM Cloud® Secrets Manager para almacenar un nombre de usuario y una contraseña que puede utilizar para iniciar la sesión y acceder a un servicio protegido dentro o fuera de IBM Cloud.

Las credenciales de usuario constan de valores de nombre de usuario y contraseña que puede utilizar para iniciar sesión o acceder a un servicio o aplicación externo. El secreto se almacena de forma segura en la instancia de servicio de Secrets Manager dedicada. En la instancia, puede gestionar de forma centralizada su ciclo de vida y controlar el lapso de vida del secreto estableciendo una fecha de caducidad, políticas de rotación automática, etc.

En las credenciales de usuario, sólo se puede rotar el valor de la contraseña en el. Una vez establecido el valor del nombre de usuario, no se puede modificar.

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.

Adición de credenciales de usuario en la interfaz de usuario

Para almacenar un nombre de usuario y una contraseña utilizando la interfaz de usuario de Secrets Manager, realice los pasos siguientes.

  1. En la consola, 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 el mosaico Credenciales de usuario.

  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 para ayudarle a buscar secretos similares en la 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. Escriba el nombre de usuario y la contraseña que desea asociar con el secreto.

Si elige generar una contraseña, Secrets Manager sustituye el valor existente por una contraseña de 32 caracteres generada aleatoriamente que contiene letras mayúsculas, minúsculas, dígitos y símbolos. Puede elegir personalizar adicionalmente la contraseña generada configurando su longitud (12-256 caracteres) y si desea incluir números, símbolos y letras mayúsculas.

  1. Opcional: habilite las opciones de caducidad y rotación para controlar la vida útil del secreto.
  2. Para establecer una fecha de caducidad para el secreto, cambie el conmutador de caducidad por .
  3. Para rotar el secreto con un intervalo de 30, 60 o 90 días, active la casilla Rotación automática del secreto.
  4. Pulse Siguiente.
  5. Revise los detalles de su secreto.
  6. Pulse Añadir.

Adición de credenciales de usuario desde la CLI

Antes de empezar, siga las instrucciones de la CLI para configurar el punto final de la API.

Para almacenar un nombre de usuario y una contraseña mediante el plugin de CLI de Secrets Manager, ejecute el mandato ibmcloud secrets-manager secret-create.

ibmcloud secrets-manager secret-create \    
    --secret-prototype='{"name": "example-username-password-secret","description": "Description of my user credentials secret","secret_type": "username_password","secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa","labels": ["dev","us-south"],"username": "example-username","password": "example-password","rotation": {"auto_rotate": true,"interval": 10,"unit": "day"},"custom_metadata": {"metadata_custom_key": "metadata_custom_value"},"version_custom_metadata": {"custom_version_key": "custom_version_value"}}'

Generación de una contraseña aleatoria desde la CLI

Puede elegir personalizar adicionalmente la contraseña generada configurando su longitud (12-256 caracteres) y si desea incluir números, símbolos y letras mayúsculas. Para generar una contraseña aleatoria utilizando el plugin de CLI Secrets Manager, ejecute el mandato ibmcloud secrets-manager secret-create e incluya el campo password_generation_policy.

ibmcloud secrets-manager secret-create \    
    --secret-prototype='{"name": "example-username-password-secret","description": "Description of my user credentials secret","secret_type": "username_password","secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa","labels": ["dev","us-south"],"username": "example-username","password": "example-password","rotation": {"auto_rotate": true,"interval": 10,"unit": "day"},"password_generation_policy": {"length": 24, "include_digits": true, "include_symbols": false, "include_uppercase": true}, "custom_metadata": {"metadata_custom_key": "metadata_custom_value"},"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.

Adición de credenciales de usuario con la API

Puede almacenar un nombre de usuario y una contraseña mediante programación llamando a la API de Secrets Manager.

En el ejemplo siguiente se muestra una consulta que puede utilizar para crear un nombre de usuario y un secreto de contraseña. 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-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "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"

Generación de una contraseña aleatoria con la API

Puede elegir personalizar adicionalmente la contraseña generada configurando su longitud (12-256 caracteres) y si desea incluir números, símbolos y letras mayúsculas. Al llamar a la API Secrets Manager, incluya el campo password_generation_policy.

curl -X POST
    -H "Authorization: Bearer {IAM_token}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -d '{
      "name": "example-username-password-secret",
      "description": "Description of my user credentials secret",
      "secret_type": "username_password",
      "secret_group_id": "bfc0a4a9-3d58-4fda-945b-76756af516aa",
      "labels": [
        "dev",
        "us-south"
      ],
      "username": "example-username",
      "password": "example-password",
      "rotation": {
        "auto_rotate": true,
        "interval": 10,
        "unit": "day"
      },
      "password_generation_policy": {
        "length": 24,
        "include_digits": true,
        "include_symbols": false,
        "include_uppercase": true
      },
      "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"

Adición de credenciales de usuario con Terraform

Puede almacenar un nombre de usuario y una contraseña mediante programación utilizando Terraform para Secrets Manager.

Puede proporcionar una contraseña estableciendo el argumento password opcional en la configuración de Terraform o elegir generar una contraseña aleatoria. Si omite el argumento password, Secrets Manager genera una contraseña aleatoria de 32 caracteres que contiene letras mayúsculas, minúsculas, dígitos y símbolos. Puede elegir personalizar adicionalmente la contraseña generada configurando su longitud (12-256 caracteres) y si desea incluir números, símbolos y letras mayúsculas.

Si configura el secreto con una política de rotación automática, se recomienda omitir el argumento password para que la contraseña inicial también se genere automáticamente. Esto es para evitar una situación de desviación de Terraform, donde después de que se haya producido una rotación automática, Terraform detecta que la contraseña se ha cambiado fuera de Terraform.

El siguiente ejemplo muestra una consulta que puede utilizar para crear un nombre de usuario y una contraseña secreta con una contraseña generada aleatoriamente y la rotación automática activada. Este ejemplo también muestra cómo especificar una política de generación de contraseñas no predeterminada para el secreto.

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        rotation {
            auto_rotate = true
            interval = 10
            unit = "day"
        }
        password_generation_policy {
            length = 24
            include_digits = true
            include_symbols = false
            include_uppercase = true
        }
    }

El siguiente ejemplo muestra una consulta que puede utilizar para crear un nombre de usuario y una contraseña secreta con la contraseña proporcionada en la configuración de Terraform. La rotación automática está inhabilitada en este ejemplo, pero puede rotar la contraseña manualmente modificando el valor del argumento password en la configuración.

    resource "ibm_sm_username_password_secret" "test_username_password_secret" {
        instance_id = local.instance_id
        region = local.region
        secret_group_id = "default"
        name = "test-user-creds-secret"
        username = "sm_username"
        password = "sm_password"
    }

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 el apartado Referencia de API.