IBM Cloud Docs
Trabajar con secretos

Trabajar con secretos

Aprenda a trabajar con secretos en Code Engine. En Code Engine, puede almacenar su información como pares clave-valor en secretos que pueden ser consumidos por su función, trabajo o aplicación mediante el uso de variables de entorno.

¿Qué son los secretos y por qué debería utilizarlos?

En Code Engine, los secretos (y configmaps) son una colección de pares de clave-valor. Cuando se correlacionan con variables de entorno, las relaciones NAME=VALUE se establecen de tal forma que el nombre de la variable de entorno corresponde a la "clave" de cada entrada de esos mapas, y el valor de la variable de entorno es el "valor" de esa clave.

Un secreto proporciona un método para incluir información de configuración confidencial, como contraseñas o claves SSH, en el despliegue. Al hacer referencia a los valores de su secreto, puede desacoplar la información confidencial de su despliegue para mantener su aplicación, función o trabajo portátil. Cualquiera que tenga autorización sobre su proyecto también puede ver sus secretos; asegúrese de que se puede compartir la información secreta con dichos usuarios. Los secretos contienen información en pares de clave-valor.

Dado que los secretos y los configmaps son entidades similares (excepto que los secretos se almacenan de forma más segura), la forma de interactuar y trabajar con secretos y configmaps también es similar. Para obtener más información sobre los mapas de configuración, consulte Trabajar con mapas de configuración.

¿Qué tipo de secretos puedo crear en Code Engine?

Code Engine da soporte a diversos secretos y proporciona opciones para crear y trabajar con secretos.

La tabla siguiente resume los secretos soportados en Code Engine.

Secretos en Code Engine
Nombre Descripción
Autenticación básica Un secreto que contiene una clave username y password.
Utilice secretos de autenticación básica cuando acceda a un servicio que requiera autenticación básica HTTP.
Genérico Un secreto que almacena pares de clave-valor simples y Code Engine no hace suposiciones sobre los pares de clave-valor definidos ni sobre el uso previsto del secreto.
Utilice secretos genéricos cuando desee definir sus propios pares de clave-valor para acceder a un servicio.
HMAC Un secreto que contiene un access_key_id y una clave secret_access_key.
Utilice credenciales HMAC para utilizar herramientas y bibliotecas de S3-compatible que requieran autenticación pero no admitan claves de API de IBM Cloud® Identity and Access Management.
Registry Un secreto que almacena credenciales para acceder a un registro de contenedor.
Utilice secretos de registro cuando trabaje con Code Engine apps o trabajos para acceder a una imagen de contenedor. O bien, utilice Code Engine para crear una imagen de contenedor y el secreto de registro lo utiliza Code Engine para acceder al registro para almacenar la imagen de contenedor compilada.
Este secreto también se conoce como Registry access secret en la CLI.
Acceso de servicio Un secreto que almacena credenciales para acceder a una instancia de servicio de IBM Cloud.
Utilice secretos de acceso a servicios cuando trabaje con enlaces a servicios en Code Engine. Code Engine puede generar automáticamente este secreto o puede crear su propio secreto de acceso a servicios personalizado.
SSH Un secreto que almacena credenciales para autenticarse en un servicio con una clave SSH, como por ejemplo autenticarse en un repositorio Git, como por ejemplo GitHub o GitLab.
Utilice secretos SSH cuando desee que Code Engine cree una imagen de contenedor para usted. Code Engine utiliza este secreto para acceder al código fuente en un repositorio de código. Por ejemplo, utilice este secreto con ejecuciones de compilación para acceder al código fuente en un repositorio, como por ejemplo GitHub o GitLab.
Este secreto también se utiliza como Git repository access secret en la CLI y como Code repo access en la consola.
Seguridad de la capa de transporte (TLS) Un secreto que contiene un certificado TLS firmado, incluidos todos sus certificados intermedios, y su clave privada correspondiente de una entidad emisora de certificados (CA).
Utilice secretos TLS cuando trabaje con correlaciones de dominio personalizadas en Code Engine.

Creación de secretos

Utiliza secretos para proporcionar información sensible a tus aplicaciones, trabajos o funciones. Los secretos se definen en pares de clave-valor y los datos almacenados en secretos están codificados.

Creación de un secreto desde la consola

Aprenda a crear secretos desde la consola de Code Engine.

Aprenda a crear los siguientes tipos de secretos desde la consola.

Crear un secreto genérico desde la consola

Aprenda a crear secretos genéricos desde la consola Code Engine que pueden ser consumidos por funciones, trabajos o aplicaciones como variables de entorno.

Antes de empezar, cree un proyecto.

  1. Una vez que su proyecto esté en estado Activo, haga clic en el nombre de su proyecto en la página Code Engine Projects.
  2. En la página Componentes, pulse Secretos y mapas de configuración.
  3. En la página Secretos y mapas de configuración, pulse Crear para crear el secreto.
  4. En la página Crear secreto o configmap, realice los pasos siguientes:
    1. Seleccione Secreto genérico y pulse Siguiente.
    2. Proporcione un nombre; por ejemplo, mysecret-generic.
    3. Pulse Añadir par de clave-valor. Especifique uno o más pares de clave-valor para este secreto. Por ejemplo, especifique una clave como secret1 con el valor mysecret1 y especifique otra clave como secret2 con el valor target-secret. El nombre que elija para la clave no necesita ser el mismo que el nombre de la variable de entorno. Observe que el valor de la clave está oculto, pero se puede ver si es necesario.
    4. Pulse Crear para crear el secreto.

Ahora que su secreto está creado desde la consola, vaya a la página Secretos y configmaps para ver una lista de los secretos y configmaps definidos. Puede aplicar filtros para personalizar la lista para que se ajuste a sus necesidades.

Crear un secreto HMAC desde la consola

Aprenda a crear secretos HMAC desde la consola Code Engine que pueden ser consumidos por funciones, trabajos o aplicaciones como variables de entorno. Se utilizan con herramientas y bibliotecas de S3-compatible que requieren autenticación pero no admiten claves de API de IBM Cloud® Identity and Access Management.

Antes de empezar, cree un proyecto.

  1. Una vez que su proyecto esté en estado Activo, haga clic en el nombre de su proyecto en la página Code Engine Projects.
  2. En la página Componentes, pulse Secretos y mapas de configuración.
  3. En la página Secretos y mapas de configuración, pulse Crear para crear el secreto.
  4. En la página Crear secreto o configmap, realice los pasos siguientes:
    1. Seleccione Secreto HMAC y haga clic en Siguiente.
    2. Proporcione un nombre; por ejemplo, mysecret-hmac.
    3. Especifique el ID de la clave de acceso.
    4. Especifique la clave de acceso Secreto. Observe que el valor de la clave está oculto, pero se puede ver si es necesario.
    5. Pulse Crear para crear el secreto.

Ahora que su secreto está creado desde la consola, vaya a la página Secretos y configmaps para ver una lista de los secretos y configmaps definidos. Puede aplicar filtros para personalizar la lista para que se ajuste a sus necesidades.

Para más información sobre los secretos HMAC, consulte IBM Cloud Object Storage- API Key vs HMAC.

Crear un secreto de registro desde la consola

Aprenda a crear secretos de registro desde la consola de Code Engine que las funciones, trabajos, apps o compilaciones pueden consumir para acceder a la extracción o envío por push de una imagen de contenedor.

Antes de empezar, cree un proyecto.

  1. Una vez que su proyecto esté en estado Activo, haga clic en el nombre de su proyecto en la página Code Engine Projects.
  2. En la página Componentes, pulse Secretos y mapas de configuración.
  3. En la página Secretos y mapas de configuración, pulse Crear para crear el secreto.
  4. En la página Crear secreto o configmap, realice los pasos siguientes:
    1. Seleccione Secreto de registro y pulse Siguiente.
    2. Proporcione un nombre; por ejemplo, mysecret-registry.
    3. Especifique el registro de destino para este secreto, como por ejemplo IBM Cloud Container Registry o Docker Hub.
    4. Especifique la ubicación del registro.
    5. Especifique un nombre de usuario. Si este secreto es para IBM Cloud Container Registry, el nombre de usuario es iamapikey. Si este secreto es para Docker Hub, es su ID de Docker.
    6. Especifique las credenciales para el nombre de usuario. Para IBM Cloud Container Registry, utilice la clave de API de IAM. Para Docker Hub, puede utilizar la contraseña de Docker Hub o una señal de acceso. Para otros registros de destino, especifique la contraseña o la clave de API para el nombre de usuario.
    7. Pulse Crear para crear el secreto.

Ahora que su secreto está creado desde la consola, vaya a la página Secretos y configmaps para ver una lista de los secretos y configmaps definidos. Puede aplicar filtros para personalizar la lista para que se ajuste a sus necesidades.

Para obtener más información sobre cómo trabajar con registros de imágenes, consulte Acceso a registros de contenedor.

Creación de un secreto SSH desde la consola

Aprenda a crear un secreto SSH desde la consola que pueden consumir las compilaciones para acceder a repositorios de código fuente privado. Un secreto SSH almacena credenciales para autenticarse en un servicio con una clave SSH, como por ejemplo autenticarse en un repositorio Git, como por ejemplo GitHub o GitLab.

Antes de empezar, cree un proyecto.

  1. Una vez que su proyecto esté en estado Activo, haga clic en el nombre de su proyecto en la página Code Engine Projects.
  2. En la página Componentes, pulse Secretos y mapas de configuración.
  3. En la página Secretos y mapas de configuración, pulse Crear para crear el secreto.
  4. En la página Crear secreto o configmap, realice los pasos siguientes:
    1. Seleccione Secreto SSH y pulse Siguiente.
    2. Proporcione un nombre; por ejemplo, mysecret-ssh.
    3. Añada la clave privada SSH para este secreto.
    4. Pulse Crear para crear el secreto.

Ahora que su secreto está creado desde la consola, vaya a la página Secretos y configmaps para ver una lista de los secretos y configmaps definidos. Puede aplicar filtros para personalizar la lista para que se ajuste a sus necesidades.

Utilice el secreto SSH al trabajar con repositorios de código privado, como por ejemplo repositorios Git. Consulte Acceso a repositorios de código privado.

Crear un secreto TLS desde la consola

Aprenda a crear un secreto TLS desde la consola que pueden consumir las apps cuando trabaje con correlaciones de dominio personalizadas en Code Engine. Un secreto de seguridad de la capa de transporte (TLS) contiene un certificado TLS firmado, incluidos todos sus certificados intermedios, y su clave privada correspondiente de una entidad emisora de certificados (CA).

Antes de empezar, cree un proyecto.

  1. Una vez que su proyecto esté en estado Activo, haga clic en el nombre de su proyecto en la página Code Engine Projects.
  2. En la página Componentes, pulse Secretos y mapas de configuración.
  3. En la página Secretos y mapas de configuración, pulse Crear para crear el secreto.
  4. En la página Crear secreto o configmap, realice los pasos siguientes:
    1. Seleccione Secreto TLS y pulse Siguiente.
    2. Proporcione un nombre; por ejemplo, mysecret-tls.
    3. Añada la cadena de certificados y su clave privada. Tenga en cuenta que puede concatenar los certificados comenzando cada uno en una nueva línea. Puede proporcionar esta información en un archivo.
    4. Pulse Crear para crear el secreto.

Ahora que su secreto está creado desde la consola, vaya a la página Secretos y configmaps para ver una lista de los secretos y configmaps definidos. Puede aplicar filtros para personalizar la lista para que se ajuste a sus necesidades.

Utilice el secreto TLS al trabajar con correlaciones de dominio personalizadas en Code Engine.

Creación de secretos con la CLI

Aprenda a crear secretos con la CLI Code Engine que pueden ser consumidos por aplicaciones, trabajos o funciones como variables de entorno.

Antes de empezar

A partir de la versión de la CLI 1.42.0, la definición y el trabajo con secretos en la CLI se unifican bajo el grupo de comandos secret grupo de comandos. Consulte los mandatos ibmcloud ce secret. Utilice la opción --format para especificar la categoría del secreto, como basic_auth, generic, hmac, ssh, tls o registry. El valor por defecto de la opción --format es generic.

Utilizando el mandato secret create, puede crear y gestionar diversos formatos de secreto. Para obtener descripciones de los distintos formatos secretos, consulte ¿Qué tipo de secretos puedo crear en Code Engine?

Aprenda a crear los siguientes tipos de secretos con la CLI,

Creación de un secreto de autenticación básica con la CLI

Un secreto de autenticación básica contiene una clave de usuario y contraseña y se utiliza para acceder a un servicio que requiere autenticación básica HTTP. El ejemplo siguiente crea un secreto de autenticación básico con credenciales para myusername y la contraseña asociada se proporciona en un archivo en la estación de trabajo local

ibmcloud ce secret create --name mysecret-basicauth --format basic_auth --username myusername --password-from-file ./password.txt

Para visualizar los detalles de este secreto,

ibmcloud ce secret get --name mysecret-basicauth

Salida de ejemplo

Getting secret 'mysecret-basicauth'...
OK

Name:          mysecret-basicauth
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        basic_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2021-03-10T18:44:18-05:00

Data:    
---
password: REDACTED
username: bXl1c2VybmFtZQ==

Tenga en cuenta que el valor de la clave username para este secreto de autenticación básica está codificado y que el valor de password está redactado. Para visualizar los datos secretos como decodificados, utilice la opción --decode con el mandato secret get.

Creación de un secreto genérico con la CLI

Un secreto genérico almacena pares clave-valor simples y Code Engine no hace suposiciones sobre los pares clave-valor definidos ni sobre el uso previsto del secreto.

Puede crear un secreto genérico con el comando secret create de una de las siguientes maneras. De forma predeterminada, se crea un secreto genérico cuando no se especifica la opción --format.

  • Cree un secreto directamente desde la línea de mandatos utilizando la opción --from-literal en el formato KEY=VALUE. Por ejemplo:

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My literal secret"
    
  • Cree un secreto utilizando la opción --from-file para apuntar a un archivo. Utilizando esta opción, todo el contenido del archivo pasa a ser el valor del par clave-valor. En este ejemplo, utilizamos un archivo denominado secrets.txt que contiene my little secret1.

    • En el ejemplo siguiente se utiliza el formato --from-file KEY=FILE con el mandato secret create:

      ibmcloud ce secret create --name mysecretmsg1 --from-file TARGET=secrets.txt
      
    • En el ejemplo siguiente se utiliza el formato --from-file FILE con el mandato secret create. En este ejemplo, TARGET (sin extensión) es el nombre del archivo, que es el mismo que el nombre de la variable de entorno que se conoce en el trabajo.

      ibmcloud ce secret create --name mysecretmsg2  --from-file TARGET
      
  • Cree un secreto utilizando la opción --from-env-file para apuntar a un archivo que contiene una o más líneas que coincidan con el formato KEY=VALUE. Cada línea del archivo especificado se añade como un par de clave-valor. Las líneas del archivo especificado que están vacías o empiezan por # se ignoran. En este ejemplo, utilice un archivo llamado secrets_multi.txt que contiene los pares clave-valor: sec1=mysec1, sec2=mysec2 y sec3=mysec3.

    ibmcloud ce secret create --name mysecretmulti --from-env-file secrets_multi.txt
    

Si desea crear (o actualizar) un secreto genérico a partir de un archivo, utilice la opción --from-file con uno de los formatos siguientes: --from-file FILE o --from-file KEY=FILE En Code Engine, cuando utilice la opción --from-file para especificar valores secretos, todo el contenido del archivo es el valor del par de clave-valor. Cuando se utiliza el formato de opción de --from-file KEY=FILE, el KEY es el nombre de la variable de entorno que se conoce a su trabajo, función o aplicación. Cuando utiliza el formato de opción --from-file FILE, FILE es el nombre de la variable de entorno que conoce su trabajo, función o aplicación. Si el archivo contiene una o más pares de clave-valor, utilice la opción --from-env-file para añadir una variable de entorno para cada par de clave-valor en el archivo especificado. Se ignoran todas las líneas del archivo especificado que estén vacías o empiecen por #.

Para visualizar los detalles del secreto genérico, myliteralsecret,

ibmcloud ce secret get --name myliteralsecret

Salida de ejemplo

Getting secret 'myliteralsecret'...
OK

Name:          myliteralsecret
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        generic
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 21:06:34 +0000 UTC  

Data:    
---
TARGET: TXkgbGl0ZXJhbCBzZWNyZXQ=

Observe que el valor de la clave TARGET para este secreto genérico está codificado. Para visualizar los datos secretos como decodificados, utilice la opción --decode con el mandato secret get.

Creación de un secreto HMAC con la CLI

Un secreto HMAC contiene una access_key_id y una secret_access_key clave y se utiliza con S3-compatible herramientas y bibliotecas que requieren autenticación pero no soportan IBM Cloud® Identity and Access Management claves API. Consulte IBM Cloud Object Storage- API Key vs HMAC cuándo utilizar IBM Cloud® Identity and Access Management API Keys o credenciales HMAC. El siguiente ejemplo crea un secreto HMAC con credenciales de muestra, que se proporcionarán cuando se soliciten.

ibmcloud ce secret create --name mysecret-hmac --format hmac --access-key-id-prompt --secret-access-key-prompt

Para visualizar los detalles de este secreto,

ibmcloud ce secret get --name mysecret-hmac

Salida de ejemplo

Getting secret 'mysecret-hmac'...
OK

Name:          mysecret-hmac
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        hmac_auth
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           86s
Created:       2025-05-15T12:41:15-05:00

Data:
---
access_key_id: MWEyYjNjNGQ1ZTZmMWEyYjNjNGQ1ZTZmMWEyYjNjNGQK
secret_access_key: REDACTED

Observa que el valor de la clave access_key_id para este secreto HMAC está codificado, y el valor de secret_access_key está redactado. Para visualizar los datos secretos como decodificados, utilice la opción --decode con el mandato secret get.

Creación de un secreto de registro con la CLI

Un secreto de registro almacena credenciales para acceder a un registro de contenedor.

El ejemplo siguiente crea un secreto de registro que se denomina mysecret-registry para acceder a una instancia de IBM Cloud Container Registry que está en el servidor de registro de us.icr.io y especifica las credenciales para username y password.

ibmcloud ce secret create --name mysecret-registry --format registry --server us.icr.io --username iamapikey --password API_KEY

Para visualizar los detalles de este secreto,

ibmcloud ce secret get --name mysecret-registry

Salida de ejemplo

Getting secret 'mysecret-registry'...
OK

Name:          mysecret-registry
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        registry
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 20:00:45 +0000 UTC  

Data:    
---
email: ""
password: REDACTED
server: dXMuaWNyLmlv
username: aWFtYXBpa2V5

Tenga en cuenta que el valor de las claves username y server para este secreto de registro está codificado y el valor de password está redactado. Para visualizar los datos secretos como decodificados, utilice la opción --decode con el mandato secret get.

Creación de un secreto SSH con la CLI

Un secreto SSH almacena credenciales para autenticarse en un servicio con una clave SSH; por ejemplo, autenticarse en un repositorio Git, como GitHub o GitLab.

El ejemplo siguiente crea un secreto SSH que se denomina mysecret-ssh para acceder a un host que se incluye en el archivo known_hosts autenticándose con un archivo de clave privada SSH no cifrado que se encuentra en /<filepath>/.ssh/<key_name>, donde <filepath> es la vía de acceso de la estación de trabajo local. Este mandato requiere un nombre y una vía de acceso de clave, y también permite otros argumentos opcionales como, por ejemplo, la vía de acceso al archivo de hosts conocidos.

ibmcloud ce secret create --name mysecret-ssh --format ssh --key-path ~/.ssh/<key_name> --known-hosts-path  ~/.ssh/known_hosts

Para visualizar los detalles de este secreto,

ibmcloud ce secret get --name mysecret-ssh

Salida de ejemplo

Getting secret 'mysecret-ssh'...
OK

Name:          mysecret-ssh'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        ssh
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 19:19:59 +0000 UTC  

Data:    
---
known_hosts: fDF8bGh0ekpiSFVXdXRxZWg1NUlrWTk4RjdOdjJZPXxsUmhZd0txVmIwd3dSV2xzcjEySFdoWURUTG89IHNzaC1yc2EgQUFBQUIzTnphQzF5YzJFQUFBQUJJd0FBQVFFQXEyQTdoUkdtZG5tOXRVRGJPOUlEU3dCSzZUYlFhK1BYWVBDUHk2cmJUclR0dzdQSGtjY0tycHAweVZocDVIZEVJY0tyNnBMbFZEQmZPTFg5UVVzeUNPVjB3emZqSUpObEdFWXNkbExKaXpIaGJuMm1VanZTQUhRcVpFVFlQODFlRnpMUU5uUEh0NEVWVlVoN1ZmREVTVTg0S2V6bUQ1UWxXcFhMbXZVMzEveU1mK1NlOHhoSFR2S1NDWklGSW1Xd29HNm1iVW9XZjluenBJb2FTakIrd2VxcVVVbXBhYWFzWFZhbDcySitVWDJCKzJSUFczUmNUMGVPelFncWxKTDNSS3JUSnZkc2pFM0pFQXZHcTNsR0hTWlh5MjhHM3NrdWEyU21WaS93NHlDRTZnYk9EcW5UV2xnNyt3QzYwNHlkR1hBOFZKaVM1YXA0M0pYaVVGRkFhUT09CnwxfEpUSjI4MCt0RkFSMGcxZ3VrZW56U3ZBYm5sQT18RDlSUWppenZlR3UxS0FnNjhNeisrUHM3RmZrPSBlY2RzYS1zaGEyLW5pc3RwMjU2IEFBQUFFMlZqWkhOaExYTm9ZVEl0Ym1semRIQXlOVFlBQUFBSWJtbHpkSEF5TlRZQUFBQkJCRW1LU0VOalFFZXpPbXhrWk15N29wS2d3RkI5bmt0NVlScllNak51RzVOODd1UmdnNkNMcmJvNXdBZFQveTZ2MG1LVjBVMncwV1oyWUIvKytUcG9ja2c9CnwxfDhIOXpNb0VORklZVDNPeVZYWlQrY25wb0srND18dVdhVThFV1FPc0ttSDMzREVVd0xnNUtiUk44PSBzc2gtZWQyNTUxOSBBQUFBQzNOemFDMWxaREkxTlRFNUFBQUFJT01xcW5rVnpybTBTZEc2VU9vcUtMc2FiZ0g1Qzlva1dpMGRoMmw5R0tKbAo=
ssh-privatekey: REDACTED

Tenga en cuenta que el valor de la clave known_hosts para este secreto SSH está codificado y que el valor de ssh-privatekey está redactado. Para visualizar los datos secretos como decodificados, utilice la opción --decode con el mandato secret get.

Creación de un secreto TLS con la CLI

Un secreto de seguridad de la capa de transporte (TLS) contiene un certificado TLS firmado, incluidos todos sus certificados intermedios, y su clave privada correspondiente de una entidad emisora de certificados (CA). Utilice secretos TLS cuando trabaje con correlaciones de dominio personalizadas.

El ejemplo siguiente crea un secreto TLS que se denomina mysecret-tls. La cadena de certificados que corresponde al dominio personalizado está contenida en el archivo certificate.txt y el archivo de clave privada coincidente está contenido en el archivo privatekey.txt. En este ejemplo, ambos archivos se encuentran en el directorio raíz de la estación de trabajo local.

ibmcloud ce secret create --name mysecret-tls  --format tls  --cert-chain-file certificate.txt --private-key-file privatekey.txt

Para visualizar los detalles de este secreto,

ibmcloud ce secret get --name mysecret-tls

Salida de ejemplo

Getting secret 'mysecret-tls'...
OK

Name:          mysecret-tls'
ID:            abcdefgh-abcd-abcd-abcd-1a2b3c4d5e6f
Format:        tls
Project Name:  myproject
Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
Age:           66s
Created:       2023-03-07 16:14:46 +0000 UTC  

Data:    
---
tls.crt: REDACTED
tls.key: REDACTED

Listado de secretos con la CLI

Una vez creados los secretos, utilice el mandato secret list para listar todos los secretos del proyecto. Por ejemplo:

ibmcloud ce secret list

Salida de ejemplo

Listing secrets...
OK

Name                          Format          Data  Age  
ce-auto-icr-private-us-south  registry        4     333d  
ce-auto-private-icr-us-south  registry        4     335d  
myregistry-seccmd             registry        4     3h31m  
mysecret-basicauth            basic_auth      2     7m37s  
mysecret-generic              generic         1     7m7s  
mysecret-genericfromfile      generic         2     2m29s  
mysecret-hmac                 hmac_auth       2     21m
mysecret-registry             registry        4     111s  
mysecret-ssh                  ssh_auth        2     42m  
mysecret-tls                  tls             2     3h47m

Actualización de secretos

Puede cambiar pares de clave-valor para los secretos existentes.

Actualización de secretos desde la consola

Puede actualizar pares de clave-valor para los secretos definidos desde la consola.

  1. Puede actualizar pares de clave-valor para los secretos definidos desde la consola de una de las maneras siguientes.

    • Vaya a la página Secretos y mapas de configuración para el proyecto y localice el secreto que desea actualizar. Pulse el nombre del secreto que desea actualizar para abrirlo.
    • Si una aplicación, trabajo o función hace referencia a tu secreto, utiliza los enlaces de la tabla de variables de entorno en la pestaña Variables de entorno de tu aplicación, trabajo o función. Estos enlaces le llevan directamente a su secreto. De forma alternativa, también puede ir a la página Secretos y mapas de configuración para el proyecto y localizar el secreto que desea actualizar. Pulse el nombre del secreto que desea actualizar para abrirlo.
  2. Pulse Editar y realice las actualizaciones para su secreto.

  3. Pulse Guardar para guardar los cambios en su secreto.

Si un trabajo, función o aplicación hace referencia a tu secreto actualizado, deberás reiniciar el trabajo, función o aplicación para que los nuevos datos surtan efecto.

  • Apps - En la página de la app, pulse Nueva revisión y luego Guardar y desplegar. De forma alternativa, puede esperar a que su app reduzca sus instancias a cero y cuando la app aumenta, la app utiliza el secreto actualizado.
  • Trabajos - En la página del trabajo, pulse Enviar trabajo para ejecutar el trabajo, o puede volver a ejecutar un trabajo. Esta nueva ejecución de trabajo utiliza el secreto actualizado.
  • Funciones-En la página de la función, pulse Probar función. Si tiene un navegador abierto a la función URL, actualice el navegador.

Actualización de secretos con la CLI

Puede actualizar un secreto existente y sus pares de clave-valor con la CLI.

  1. Para cambiar el valor de un par de clave-valor de un secreto definido, utilice el mandato secret update. Vamos a actualizar el secreto de mysecret-registry para utilizar un servidor diferente.

    ibmcloud ce secret update --name mysecret-registry --format registry --server <new_server> --username <new_username> --password <password>
    
  2. Ahora que su secreto está actualizado, utilice el mandato secret get para visualizar detalles sobre un secreto específico. Si es necesario, utilice la opción --decode para visualizar los datos secretos como descodificados. Por ejemplo:

    ibmcloud ce secret get --name mysecret-registry --decode
    

    Salida de ejemplo

    Getting generic secret 'mysecret-registry'...
    OK
    
    Name:          mysecret-registry
    ID:            abcdefgh-abcd-abcd-abcd-c88e2775388e
    Project Name:  myproject
    Project ID:    01234567-abcd-abcd-abcd-abcdabcd1111
    Age:           21m
    Created:       2023-03-07 20:00:45 +0000 UTC  
    
    Data:    
    ---
    email: ""
    password: REDACTED
    server: newserver
    username: newuser
    

Cómo hacer referencia a secretos

Su trabajo, función o aplicación puede consumir y utilizar la información que se almacena en un secreto mediante el uso de variables de entorno.

Cómo hacer referencia a secretos desde la consola

Puedes utilizar la consola para crear variables de entorno para tus aplicaciones, trabajos y funciones que hagan referencia completa a un secreto o a claves individuales de un secreto.

Para poder hacer referencia a un secreto, éste debe existir. Consulte crear un secreto. Para este ejemplo, cree un secreto denominado target-secret con el par de clave-valor de TARGET=Sunshine.

  1. Para hacer referencia a un secreto definido desde sus apps, trabajos y funciones, cree una variable de entorno. La variable de entorno puede hacer referencia completa a un secreto existente o hacer referencia a una clave individual en un secreto existente. Si hace referencia a un secreto (o un mapa de configuración), puede especificar opcionalmente un prefix. Por ejemplo, si hace referencia completa al secreto de mysecret desde la aplicación myapp y utiliza el prefijo mysecret_, cada clave del secreto tiene como prefijo mysecret_.

  2. Después de crear las variables de entorno, debes reiniciar tus aplicaciones, trabajos y funciones para que los cambios surtan efecto. Para las apps, guarde y despliegue su app para actualizar la app con las variables de entorno que ha definido. Para trabajos, someta el trabajo para actualizar el trabajo con las variables de entorno que ha definido.

  3. Después de que el estado de las aplicaciones, trabajos y funciones cambie a Preparado, puede probar la aplicación o función, o ejecutar el trabajo. Para una aplicación, pulse Probar aplicación y, a continuación, pulse Enviar solicitud en el panel Probar aplicación. Para abrir la aplicación en una página web, pulse URL de aplicación. En el ejemplo de myapp, dado que se especificó un prefijo para el secreto completamente referenciado mysecret, todas las claves de este secreto se referencian como variables de entorno y llevan el prefijo mysecret_. Por ejemplo, estas variables de entorno se muestran como mysecret_secret1=mysecret1 y mysecret_secret2=mysecret2.

Para actualizar una variable de entorno que haga referencia a un secreto, consulte Actualización de variables de entorno y Consideraciones para actualizar las variables de entorno.

Para eliminar una variable de entorno que haga referencia a secreto, consulte supresión de variables de entorno.

Por ejemplo, utilice el secreto mysecret definido anteriormente que ha definido desde la consola con un trabajo y haga referencia completa a este secreto con una variable de entorno.

  1. Cree y ejecute un trabajo. Para este ejemplo, cree un trabajo de Code Engine que utilice la imagen icr.io/codeengine/codeengine y, a continuación, ejecute el trabajo. Cuando se envía una solicitud a este trabajo de ejemplo, el trabajo lee la variable de entorno TARGET, y el trabajo imprime Hello ${TARGET} from Code Engine e imprime una lista de variables de entorno. Si la variable de entorno TARGET está vacía, se devuelve Hello World from Code Engine.

    Desde la página Trabajos,

    1. Cree un trabajo; por ejemplo, myjob.
    2. Especifique icr.io/codeengine/codeengine como referencia de imagen.
    3. Pulse Crear para crear el trabajo.

    Si la carga de trabajo que desea utilizar con el secreto ya está definida en Code Engine, vaya a la página Aplicaciones, trabajos o funciones y haga clic en el nombre de su aplicación, trabajo o función para abrir el componente.

  2. Cuando se cree el trabajo, en la página Trabajos, pulse el nombre del trabajo para abrirlo.

  3. Actualice el trabajo para añadir un secreto como una variable de entorno. Pulse Variables de entorno para abrir el separador y pulse Añadir para añadir la variable de entorno.

  4. En la página Añadir variable de entorno,

    1. Para utilizar el secreto definido anteriormente, seleccione Hacer referencia completa a secreto.
    2. En el menú, seleccione el nombre del secreto que desee, por ejemplo, target-secret.
    3. Pulse Añadir para añadir la variable de entorno.
    4. Pulse Guardar para guardar los cambios en el trabajo.
  5. Para ejecutar el trabajo con la variable de entorno que hace referencia a un secreto, pulse Enviar trabajo. Para este ejemplo, los registros de la ejecución del trabajo myjob muestran Hello Sunshine from Code Engine e imprime las variables de entorno, incluidos los valores de los secretos a los que se hace referencia con las variables de entorno.

Hacer referencia a secretos con la CLI

Para utilizar secretos con aplicaciones, trabajos y funciones, puede establecer variables de entorno que hagan referencia completa a un secreto o a claves individuales de un secreto con la CLI.

Hacer referencia a los secretos existentes con la CLI

Los ejemplos siguientes hacen referencia a un secreto genérico, que es el secreto predeterminado cuando no se especifica la opción --format. Utilice la opción --format para especificar la categoría del secreto, como basic_auth, generic, ssh, tls o registry.

Para utilizar un secreto con una carga de trabajo con la CLI, especifique la opción --env-from-secret en los mandatos siguientes.

El siguiente ejemplo describe cómo hacer referencia a un secreto genérico existente con un trabajo utilizando la CLI.

  1. Utilice el comando secret create para crear los siguientes dos secretos genéricos para este escenario. De forma predeterminada, se crea un secreto genérico cuando no se especifica la opción --format.

    ibmcloud ce secret create --name myliteralsecret --from-literal "TARGET=My big literal secret"
    
    ibmcloud ce secret create --name myliteralsecret2 --from-literal "TARGET=My little literal secret"
    
  2. Cree un trabajo y haga referencia al secreto myliteralsecret. Para este ejemplo, cree un trabajo de Code Engine que utilice la imagen icr.io/codeengine/codeengine y, a continuación, ejecute el trabajo. Cuando se envía una solicitud a este trabajo de ejemplo, el trabajo lee la variable de entorno TARGET, y el trabajo imprime Hello ${TARGET} from Code Engine e imprime una lista de variables de entorno. Si la variable de entorno TARGET está vacía, se devuelve Hello World from Code Engine.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine --array-indices 2-3 --env-from-secret myliteralsecret
    
  3. Ejecute el trabajo myjob.

    ibmcloud ce jobrun submit --name myjobrun --job myjob
    
  4. Utilice el mandato jobrun get para visualizar detalles de la ejecución del trabajo, incluidas las instancias de la ejecución del trabajo.

    ibmcloud ce jobrun get --name myjobrun
    

    Salida de ejemplo

    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    Getting events of jobrun 'myjobrun'...
    Run 'ibmcloud ce jobrun events -n myjobrun' to get the system events of the job run instances.
    Run 'ibmcloud ce jobrun logs -f -n myjobrun' to follow the logs of the job run instances.
    OK
    
    Name:               myjobrun
    [...]
    Job Ref:                myjob
    Environment Variables:
        Type                   Name          Value
        Secret full reference  myliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          9s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    13s         13s
            Running   True    9s          9s
            Complete  True    9s          9s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    10s (x4 over 14s)  batch-job-controller  Updated JobRun "myjobrun"
        Normal  Completed  10s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name          Running  Status     Restarts  Age
        myjobrun-2-0  0/1      Succeeded  0         14s
        myjobrun-3-0  0/1      Succeeded  0         14s
    
  5. Visualice los registros de la ejecución del trabajo myjobrun. Puede visualizar registros de todas las instancias de una ejecución de trabajo o visualizar registros de una instancia específica de una ejecución de trabajo. Esta vez, visualice los registros de todas las instancias de la ejecución del trabajo. El registro muestra Hello my big literal secret!, que se ha especificado utilizando una variable de entorno con un secreto. Observe que para este trabajo que está definido con la imagen icr.io/codeengine/codeengine, la salida de la ejecución del trabajo imprime las variables de entorno, incluidos los valores de secretos a los que se hace referencia con las variables de entorno.

    ibmcloud ce jobrun logs --jobrun myjobrun
    

    Salida de ejemplo

    Getting logs for all instances of job run 'myjobrun'...
    Getting jobrun 'myjobrun'...
    Getting instances of jobrun 'myjobrun'...
    OK
    
    myjobrun-2-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 2
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-2-0
    JOB_INDEX=2
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
    myjobrun-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My big literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrun-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My big literal secret
    
  6. Vuelva a enviar la ejecución del trabajo y especifique utilizar el secreto myliteralsecret2 para esta ejecución de trabajo.

    ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit  --env-from-secret myliteralsecret2
    

    Cuando actualizas un trabajo, aplicación o función con una variable de entorno que hace referencia completa a un secreto para hacer referencia completa a un secreto diferente, las referencias completas anulan otras referencias completas en el orden en que se establecen (el último conjunto referenciado anula el primer conjunto).

  7. Utilice el mandato jobrun get para visualizar detalles de la ejecución del trabajo, incluidas las instancias de la ejecución del trabajo. Observe que la ejecución del trabajo hace referencia a los secretos myliteralsecret y myliteralsecret2.

    ibmcloud ce jobrun get --name myjobrunresubmit
    

    Salida de ejemplo

    Getting jobrun 'myjobrunresubmit'...
    Getting instances of jobrun 'myjobrunresubmit'...
    Getting events of jobrun 'myjobrunresubmit'...
    [...]
    
    Name:          myjobrunresubmit
    ID:            79f01367-932b-4a76-be18-b1e68790a85b
    Project Name:  myproject
    Project ID:    841f0f38-420d-4388-b5d8-f230657d7dc6
    Age:           14s
    Created:       2021-06-15T21:15:37-04:00
    
    Job Ref:                myjob
        Environment Variables:
        Type                   Name              Value
        Secret full reference  myliteralsecret
        Secret full reference  myliteralsecret2
    Image:                  icr.io/codeengine/codeengine
        Resource Allocation:
        CPU:                1
        Ephemeral Storage:  4G
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         2-3
        Array Size:            2
        JOP_ARRAY_SIZE Value:  2
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Completed:          11s
        Instance Statuses:
            Succeeded:  2
        Conditions:
            Type      Status  Last Probe  Last Transition
            Pending   True    14s         14s
            Running   True    12s         12s
            Complete  True    11s         11s
    
    Events:
        Type    Reason     Age                Source                Messages
        Normal  Updated    13s (x4 over 16s)  batch-job-controller  Updated JobRun "myjobrunresubmit"
        Normal  Completed  13s                batch-job-controller  JobRun completed successfully
    
    Instances:
        Name                  Running  Status     Restarts  Age
        myjobrunresubmit-2-0  0/1      Succeeded  0         16s
        myjobrunresubmit-3-0  0/1      Succeeded  0         16s
    
  8. Visualice los registros de ejecución de trabajo de una instancia de la ejecución de trabajo myjobrunresubmit. Esta vez, visualice los registros de la instancia myjobrunresubmit-3-0. El registro muestra Hello My little literal secret!, que es el valor que se especifica en el secreto myliteralsecret2. Utilice el mandato jobrun get para visualizar los detalles de la ejecución del trabajo, incluidas las instancias en ejecución de la ejecución del trabajo.

    ibmcloud ce jobrun logs --instance myjobrunresubmit-3-0
    

    Salida de ejemplo

    Getting logs for job run instance 'myjobrunresubmit-3-0'...
    OK
    
    myjobrunresubmit-3-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 3
    
    Hello My little literal secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit-3-0
    JOB_INDEX=3
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=My little literal secret
    
  9. Para cambiar el valor del par clave-valor de un secreto, utilice el mandato secret update. Actualicemos el secreto myliteralsecret para cambiar el valor de la clave TARGET de My big literal secret a My new big literal secret.

    ibmcloud ce secret update --name myliteralsecret --from-literal "TARGET=My new big literal secret"
    
  10. Para que los nuevos datos entren en vigor, vuelva a ejecutar el trabajo. Vuelva a enviar la ejecución del trabajo y especifique que se debe utilizar el secreto myliteralsecret para esta ejecución del trabajo.

ibmcloud ce jobrun resubmit  --jobrun myjobrun  --name myjobrunresubmit2 --env-from-secret myliteralsecret
  1. Visualice los registros de la ejecución del trabajo myjobrunresubmit2. Esta vez, el registro de trabajo muestra Hello My new big literal secret!, que es el valor del secreto myliteralsecret actualizado. Puede utilizar el mandato jobrun get para visualizar los detalles de la ejecución del trabajo, incluidas las instancias en ejecución de la ejecución del trabajo. Visualice los registros de la instancia en ejecución que desee de la ejecución del trabajo.
ibmcloud ce jobrun logs --instance myjobrunresubmit2-2-0

Salida de ejemplo

Getting logs for job run instance 'myjobrunresubmit2-2-0'...
OK

myjobrunresubmit2-2-0/myjob:
Hello from helloworld! I'm a batch job! Index: 2

Hello My new big literal secret from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

Some Env Vars:
--------------
HOME=/root
HOSTNAME=myjobrunresubmit2-2-0
JOB_INDEX=2
KUBERNETES_PORT=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
KUBERNETES_PORT_443_TCP_PORT=443
KUBERNETES_PORT_443_TCP_PROTO=tcp
KUBERNETES_SERVICE_HOST=172.21.0.1
KUBERNETES_SERVICE_PORT=443
KUBERNETES_SERVICE_PORT_HTTPS=443
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
SHLVL=1
TARGET=My new big literal secret

Para resumir, ha completado los escenarios básicos para demostrar cómo utilizar secretos con un trabajo haciendo referencia a un secreto completo existente y actualizando las claves dentro de un secreto.

Hacer referencia a secretos que aún no están definidos con la CLI

Si un secreto no existe antes de ser referenciado, una aplicación no se desplegará correctamente, y un trabajo o función no se ejecutará correctamente hasta que el secreto referenciado sea creado.

Si está trabajando con una aplicación, trabajo o función y el secreto referenciado aún no está definido, utilice la opción --force para evitar la verificación de la existencia del secreto referenciado. La opción --force se puede utilizar con los mandatos siguientes.

Cuando se utiliza la opción --force con estos comandos, se completa la acción de crear, actualizar o ejecutar la aplicación, el trabajo o la función. Sin embargo, la aplicación, el trabajo o la función no se ejecutarán correctamente hasta que exista el secreto al que se hace referencia. Si añade la opción --no-wait además de la opción --force al comando, el sistema completa la acción y no espera a que la aplicación, el trabajo o la función se ejecuten correctamente.

El ejemplo siguiente describe cómo hacer referencia a un secreto que todavía no está definido con un trabajo utilizando la CLI.

  1. Cree un trabajo. Para este ejemplo, cree un trabajo de Code Engine que utilice la imagen icr.io/codeengine/codeengine y, a continuación, ejecute el trabajo. Cuando se envía una solicitud a este trabajo de ejemplo, el trabajo lee la variable de entorno TARGET, y el trabajo imprime Hello ${TARGET} from Code Engine e imprime una lista de variables de entorno. Si la variable de entorno TARGET está vacía, se devuelve Hello World from Code Engine.

    ibmcloud ce job create --name myjob --image icr.io/codeengine/codeengine
    
  2. Utilice el mandato jobrun submit para ejecutar el trabajo myjob. Tenga en cuenta que mynewliteralsecret no existe. Utilizando la opción --no-wait con el mandato jobrun submit, la ejecución del trabajo se envía y no espera a que se completen las instancias de este trabajo.

    ibmcloud ce jobrun submit --name myjobrun1 --job myjob --env-from-secret mynewliteralsecret --force --no-wait
    
  3. Utilice el mandato jobrun get para visualizar detalles de la ejecución del trabajo, incluida la información de la variable de entorno. Observe que la ejecución del trabajo está en estado pending.

    ibmcloud ce jobrun get --name myjobrun1
    

    Salida de ejemplo

    Getting jobrun 'myjobrun1'...
    Getting instances of jobrun 'myjobrun1'...
    Getting events of jobrun 'myjobrun1'...
    [...]
    
    Name:          myjobrun1
    [...]
    
    Job Ref:                myjob
    Environment Variables:
        Type                   Name                Value
        Secret full reference  mynewliteralsecret
    Image:                  icr.io/codeengine/codeengine
    Resource Allocation:
        CPU:                1
        Ephemeral Storage:  400M
        Memory:             4G
    
    Runtime:
        Mode:                  task
        Array Indices:         0
        Array Size:            1
        JOP_ARRAY_SIZE Value:  1
        Max Execution Time:    7200
        Retry Limit:           3
    
    Status:
        Instance Statuses:
            Pending:  1
        Conditions:
            Type     Status  Last Probe  Last Transition
            Pending  True    100s        100s
    
    Events:
        Type    Reason   Age                   Source                Messages
        Normal  Updated  108s (x5 over 2m29s)  batch-job-controller  Updated JobRun "myjobrun1"
    
    Instances:
        Name           Running  Status   Restarts  Age
        myjobrun1-0-0  0/1      Pending  0         2m29s
    
  4. Cree el secreto:

    ibmcloud ce secret create --name mynewliteralsecret --from-literal "TARGET=Fun secret"
    
  5. Ejecute de nuevo la ejecución de trabajo myjobrun1.

    ibmcloud ce jobrun resubmit --jobrun myjobrun1 --name myjobrunresubmit1
    

    Ejecute el mandato ibmcloud ce jobrun get -n myjobrunresubmit1 para comprobar el estado de esta ejecución de trabajo.

  6. Visualice los registros de la ejecución del trabajo myjobrunresubmit1. Los registros muestran Hello Fun secret from Code Engine, que confirma que la ejecución de trabajo hace referencia al secreto myliteralsecret.

    ibmcloud ce jobrun logs --jobrun myjobrunresubmit1
    

    Salida de ejemplo

    Getting logs for all instances of job run 'myjobrunresubmit1'...
    Getting jobrun 'myjobrunresubmit1'...
    Getting instances of jobrun 'myjobrunresubmit1'...
    OK
    
    myjobrunresubmit1-0-0/myjob:
    Hello from helloworld! I'm a batch job! Index: 0
    
    Hello Fun secret from:
    . ___  __  ____  ____
    ./ __)/  \(    \(  __)
    ( (__(  O )) D ( ) _)
    .\___)\__/(____/(____)
    .____  __ _   ___  __  __ _  ____
    (  __)(  ( \ / __)(  )(  ( \(  __)
    .) _) /    /( (_ \ )( /    / ) _)
    (____)\_)__) \___/(__)\_)__)(____)
    
    Some Env Vars:
    --------------
    HOME=/root
    HOSTNAME=myjobrunresubmit1-0-0
    JOB_INDEX=0
    KUBERNETES_PORT=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP=tcp://172.21.0.1:443
    KUBERNETES_PORT_443_TCP_ADDR=172.21.0.1
    KUBERNETES_PORT_443_TCP_PORT=443
    KUBERNETES_PORT_443_TCP_PROTO=tcp
    KUBERNETES_SERVICE_HOST=172.21.0.1
    KUBERNETES_SERVICE_PORT=443
    KUBERNETES_SERVICE_PORT_HTTPS=443
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    PWD=/
    SHLVL=1
    TARGET=Fun secret
    

Para ver casos de ejemplo más detallados sobre cómo hacer referencia a los secretos completos y los mapas de configuración como variables de entorno y cómo sustituir referencias y eliminar referencias en la CLI, consulte Cómo hacer referencia a secretos y a mapas de configuración.

Supresión de secretos

Cuando ya no necesites un secreto, puedes borrarlo.

Borrar secretos de la consola

  1. Para borrar un secreto desde la consola,
    1. Vaya a la página Secretos y mapas de configuración desde su página Code Engine Projects.
    2. Haz clic en el secreto que quieras eliminar para abrir su página.
    3. En la página del secreto específico, pulse Acciones > Suprimir secreto.
  2. Para eliminar un par clave-valor de un secreto específico de la consola,
    1. Vaya a la página Secretos y mapas de configuración desde su página Code Engine Projects.
    2. Haz clic en el secreto que quieras cambiar para abrir su página.
    3. En la página del secreto en cuestión, elimine el par clave-valor que desea eliminar.

También puede suprimir las variables de entorno definidas que hacen referencia a los secretos y los mapas de configuración. Para eliminar una variable de entorno definida, desde la pestaña Variables de entorno de tu app, trabajo o función y elimina la variable de entorno que quieras eliminar. Después de eliminar una variable de entorno definida, asegúrese de hacer clic en Guardar para guardar los cambios en su aplicación, trabajo o función. Para obtener más información, consulte suprimir una variable de entorno.

Borrado de secretos con la CLI

Para suprimir un secreto con la CLI, utilice el mandato secret delete; por ejemplo,

ibmcloud ce secret delete --name myliteralsecret -f

Salida de ejemplo

Deleting secret myliteralsecret...
OK

También puede suprimir variables de entorno que hagan referencia a secretos y mapas de configuración desde la CLI.