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:
| 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.
Las plantillas también vienen con una integración de la herramienta HashiCorp Vault como el siguiente ejemplo:
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®:
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.