IBM Cloud Docs
Integración de secretos en sus cadenas de herramientas

Integración de secretos en sus cadenas de herramientas

Las capacidades de gestión de secretos que se proporcionan en la configuración de la cadena de herramientas y las interfaces de usuario de canalización permiten la selección de secretos de bóveda mediante el uso de integraciones de secretos para IBM Cloud® Secrets Manager, IBM® Key Protect, o HashiCorp Vault. Mediante el cuadro de diálogo Selector de secretos, un editor de cadena de herramientas o canalización puede seleccionar secretos con nombre de una integración de secretos vinculados que está configurada por CRN (Nombre de recurso en la nube) o por nombre, que luego se resuelve por referencia en tiempo de ejecución dentro de la cadena de herramientas y la canalización. Después de elegir un secreto, se inyecta una referencia CRN o canónica de secreto en la propiedad segura de la cadena de herramientas o canalización correspondiente, donde el formato es crn:v1:...secret:<secret-guid> si se trata de una integración Secrets Manager configurada por CRN, o bien {vault::integration-name.secret-name} si se trata de una integración de bóveda que utiliza cualquiera de los proveedores soportados y configurada por nombre.

El formato de referencia canónica por nombre actualmente no resuelve un secreto que incluya el carácter punto en el nombre secreto porque este carácter se utiliza para delimitar cada sección de la ruta canónica.

Independientemente del tipo de referencia secreta que se utilice, ya sea por CRN o por nombre, los componentes de la interfaz de usuario del front-end y el cuadro de diálogo Secrets Picker sólo utilizan una referencia secreta. El valor resuelto de una referencia secreta por CRN o por nombre nunca se expone al front-end y siempre se resuelve dinámicamente en tiempo de ejecución dentro de una cadena de herramientas y canalización basada en una autorización permitida que esté disponible (configurada mediante el uso de políticas de Autorizaciones y Acceso de IAM).

Dentro de IBM Cloud®, el proceso dinámico de resolución de por CRN y por nombre referencias a secretos en cadenas de herramientas y canalizaciones se realiza mediante el uso de puntos finales privados virtuales (VPE) internos a todos los IBM Cloud® Secrets Manager y IBM® Key Protect instancias de proveedor en todas las regiones. Esto garantiza que todos los datos de solicitud y respuesta entre cadenas de herramientas, canalizaciones e instancias de proveedores IBM Cloud® Secrets Manager y IBM® Key Protect se mantengan dentro de la red privada dentro de los límites de IBM Cloud y no viajen por ningún canal de red público.

Además de seleccionar manualmente los secretos elegidos uno a uno de cualquier integración de secretos vinculados en una cadena de herramientas, también está disponible la opción de utilizar un Secret Hint. Esta opción permite predefinir una plantilla de cadena de herramientas con nombres de secretos sugeridos (también conocidos como Hints) que son una referencia secreta abreviada. El formato de una pista secreta es {vault::secret-name} en la que no se incluye ningún nombre secreto de integración. Esto proporciona flexibilidad al autor de la cadena de herramientas en el sentido de que todos los nombres de secretos requeridos se pueden rellenar previamente en un toolchain.yml y luego estos nombres se resuelven automáticamente contra cualquier integración de secretos configurada para la cadena de herramientas.

Como se ha descrito anteriormente, puede configurar Secrets Manager para hacer referencia a secretos por CRN. Para más información, consulte Nombres de recursos en la nube(CRN). Este formato permite una mayor flexibilidad porque se puede hacer referencia a secretos de una instancia Secrets Manager en una cuenta diferente si se dispone de la autorización correcta. Para obtener más información, consulte Configuración de Secrets Manager.

Un Hint es un nombre predeterminado sugerido que se resuelve automáticamente contra el primer secreto coincidente con el mismo nombre en cualquiera de las integraciones de secretos por nombre disponibles que estén vinculadas a la cadena de herramientas.

Secretos de interconexión de DevSecOps

A continuación se describen los secretos que se utilizan tanto en la IC como en la DC:

SecretosDevSecOps
Secreto Sugerencia Información
Clave de API de IBM Cloud ibmcloud-api-key Requerido: CI & CD Se utiliza para autenticarse con la nube pública IBM y realizar una amplia gama de operaciones
Clave privada GPG signing_key Necesario: Sólo CI Se trata del certificado que se utiliza para firmar las imágenes creadas por el canal CI
Clave de API de servicio de trabajador privado de IBM private-worker-service-api-key Requerido: Solo CI Una clave API de ID de servicio Se utiliza para ejecutar cargas de trabajo de canalización de entrega en un servicio de trabajador privado de Tekton
Señal de acceso de GitHub git-token Opcional: CI & CD Se utiliza para autenticarse con GitHub y proporcionar acceso a los repositorios
Artifactory Token API artifactory-token Requerido: CI & CD Se utiliza para acceder a las imágenes utilizadas por las tareas del pipeline
Webhook Slack slack-webhook Opcional: CI y CD Este webhook es necesario si decide utilizar la integración de la herramienta Slack para publicar notificaciones de estado de la cadena de herramientas
ServiceNow Token API servicenow-api-token Requerido: Sólo CD Utilizado para acceder a Service Now para operaciones de gestión de cambios
ID de rol de HashiCorp Vault role-id Requerido: CI & CD Se utiliza para autenticarse con el servidor HashiCorp Vault
ID de secreto de HashiCorp Vault secret-id Requerido: CI & CD Se utiliza para autenticarse con el servidor HashiCorp Vault
Clave de API del escritor de IBM Cloud Object Storage cos-api-key Requerido: CI & CD Utilizada para autenticarse con el servicio Object Storage- Esta clave debe tener writer permiso
Señal de autenticación o contraseña de SonarQube sonarqube-password Opcional: CI Se utiliza para autenticarse con el analizador de código fuente SonarQube

Si utiliza un servidor HashiCorp Vault, asegúrese de que la integración de la herramienta HashiCorp Vault utiliza el método AppRole Auth Method. Si utiliza el método de autenticación AppRole, necesitará role-id y secret-id para integrar correctamente el servidor HashiCorp Vault con la cadena de herramientas. Dado que role-id y secret-id son secretos en sí mismos, se recomienda almacenarlos utilizando una integración de herramientas IBM Key Protect para que puedan recuperarse y aplicarse de forma segura en el flujo de trabajo de la cadena de herramientas. Todos los demás secretos de la cadena de herramientas deben almacenarse y recuperarse utilizando la integración de herramientas HashiCorp Vault.

Si la propiedad de entorno de canalización git-token no está establecida, por defecto se utiliza ibmcloud-api-key para recuperar el token de acceso Git Repos and Issue Tracking. Sin embargo, si ibmcloud-api-key no tiene acceso a git, se debe establecer git-token.

Configuración de los almacenes de secretos

Con IBM Cloud, puede elegir entre varias ofertas de gestión de secretos y protección de datos que le ayudarán a proteger sus datos confidenciales y centralizar sus secretos. Puede elegir entre las integraciones de cámara acorazada en función de sus necesidades, como se explica en Gestión de IBM Cloud secretos. Esta documentación proporciona información sobre los requisitos previos y sobre cómo utilizar una lista de nombres secretos prescritos que también se conocen como pistas. Mediante el uso de sugerencias en una plantilla, se puede llenar automáticamente una cadena de herramientas con secretos configurados previamente sin necesidad de seleccionarlos manualmente desde varias integraciones de caja fuerte conectadas a la cadena de herramientas.

Utilice IBM Cloud® Secrets Manager para almacenar y aplicar de forma segura secretos como claves API, firma de imágenes o credenciales de HashiCorp Vault que formen parte de su cadena de herramientas.

'Secrets Manager formulario de integración de herramientas
'IBM ' Secrets Manager Integración de herramientas

Las plantillas también vienen con una integración de la herramienta HashiCorp Vault como el siguiente ejemplo:

'HashiCorp Formulario de integración de la herramienta Vault con campos obligatorios y valores de ejemplo
'HashiCorp Integración de la herramienta Vault

Para utilizar HashiCorp Vault, debe proporcionar la siguiente información:

Nombre
Un nombre para esta integración de herramientas. El nombre se visualiza en la cadena de herramientas.
URL del servidor
El servidor URL para su instancia de HashiCorp Vault. Por ejemplo, https://<vault-service>.<org>.com:8200.
Integración URL
La dirección URL a la que desea navegar cuando haga clic en el mosaico HashiCorp Vault Integration.
Camino de los secretos
La ruta de montaje donde se almacenan sus secretos en su instancia de bóveda HashiCorp.
Método de autenticación
El método de autenticación para su instancia de HashiCorp Vault. Utilice AppRole.
ID de función
Identificador que selecciona el AppRole contra el que se evalúan las otras credenciales.
ID de secreto
Credencial que se requiere por defecto para cualquier inicio de sesión (con secret_id) y se pretende que sea siempre secreta.

Las plantillas también vienen con una integración de la herramienta IBM® Key Protect for IBM Cloud®:

Key Protect formulario de integración de herramientas con campos obligatorios y valores de ejemplo formulario de integración de herramientas con campos obligatorios y valores de ejemplo integración de herramientas
IBM Key Protect

Si ha almacenado role id y secret id en Key Protect de antemano, puede seleccionar la instancia Key Protect que contiene esos secretos en la tarjeta de herramientas, como se muestra en la figura 2. Una vez hecho esto, puede hacer clic en los iconos de llave de los campos id de rol y id de secreto de la tarjeta de herramientas HashiCorp y utilizar el selector para aplicar los secretos a esos campos.

Del mismo modo, cualquier otro secreto que se utilice en la cadena de herramientas tiene un icono de llave que se adjunta al campo de texto. Puede utilizar el mismo control de selección para aplicar los secretos de bóveda de HashiCorp a todas las instancias restantes.