Utilizzo di integrazioni di segreti nelle vostre toolchain

Le funzionalità di gestione dei segreti fornite nelle interfacce utente della toolchain e della pipeline consentono di selezionare i segreti del vault utilizzando le integrazioni dei segreti per IBM Cloud® Secrets Manager, IBM® Key Protect o HashiCorp Vault. Utilizzando la finestra di dialogo Secrets Picker, un editor di toolchain o di pipeline può selezionare segreti denominati da un'integrazione di segreti vincolati, configurata per CRN (Cloud Resource Name) o per nome, che viene poi risolta per riferimento in fase di esecuzione all'interno della toolchain e della pipeline. Dopo aver scelto un segreto, un CRN o un riferimento canonico al segreto viene iniettato nella proprietà sicura della toolchain o della pipeline corrispondente, dove il formato è crn:v1:...secret:<secret-guid> se si tratta di un'integrazione Secrets Manager configurata per CRN, o in alternativa {vault::integration-name.secret-name} se si tratta di un'integrazione di vault che utilizza uno qualsiasi dei provider supportati e configurato per nome.

Il formato di riferimento canonico per nome attualmente non risolve un segreto che include il carattere punto nel nome del segreto perché questo carattere viene usato per delimitare ogni sezione del percorso canonico.

Indipendentemente dal tipo di riferimento segreto utilizzato, per CRN o per nome, i componenti dell'interfaccia utente front-end e la finestra di dialogo Secrets Picker utilizzano solo un riferimento segreto. Il valore risolto di un riferimento segreto per CRN o per nome non è mai esposto al front-end ed è sempre risolto dinamicamente in fase di esecuzione all'interno di una toolchain e di una pipeline in base alla disponibilità di un'autorizzazione per nome consentita (configurata utilizzando i criteri IAM Authorizations and Access).

All'interno di IBM Cloud®, il processo dinamico di risoluzione dei riferimenti ai segreti da CRN e per nome nelle toolchain e nelle pipeline viene eseguito utilizzando endpoint privati virtuali (VPE) interni a tutte le istanze dei provider IBM Cloud® Secrets Manager e IBM® Key Protect in tutte le regioni. Questo garantisce che tutti i dati di richiesta e risposta tra toolchain, pipeline e IBM Cloud® Secrets Manager e IBM® Key Protect istanze del provider siano mantenuti all'interno della rete privata IBM Cloud e non viaggino su canali di rete pubblici.

Oltre a selezionare manualmente i segreti scelti uno per uno da tutte le integrazioni di segreti vincolati in una catena di strumenti, è disponibile anche l'opzione di utilizzare un Secret Hint. Questa opzione consente di predefinire un modello di toolchain con nomi di segreti suggeriti (noti anche come Hints) che sono un riferimento segreto di forma breve. Il formato di un suggerimento segreto è {vault::secret-name} in cui non è incluso il nome dell'integrazione segreta. Ciò offre flessibilità all'autore della catena di strumenti, in quanto tutti i nomi dei segreti richiesti possono essere precompilati in un toolchain.yml e poi questi nomi vengono risolti automaticamente rispetto alle integrazioni di segreti configurate per la catena di strumenti.

Come descritto in precedenza, è possibile configurare Secrets Manager per fare riferimento ai segreti per CRN. Per ulteriori informazioni, vedere Nomi di risorse cloud(CRN). Questo formato consente una maggiore flessibilità, perché è possibile fare riferimento ai segreti di un'istanza Secrets Manager in un account diverso, se è presente la corretta autorizzazione. Per ulteriori informazioni, vedere Configurazione di Secrets Manager.

Un Hint è un nome predefinito suggerito che viene automaticamente risolto con il primo segreto corrispondente con lo stesso nome in tutte le integrazioni di segreti per nome disponibili che sono legate alla catena di strumenti.

DevSecOps segreti della pipeline

I segreti utilizzati sia in CI che in CD sono delineati di seguito:

SegretiDevSecOps
Secret Suggerimento Informazioni
Chiave API IBM Cloud ibmcloud-api-key Richiesta: CI & CD Utilizzato per autenticarsi con IBM public cloud ed eseguire una vasta gamma di operazioni
Chiave privata GPG signing_key Richiesta: Solo CI Questo è il certificato che viene utilizzato per firmare le immagini costruite dalla pipeline CI
IBM Chiave API del servizio di lavoro privato private-worker-service-api-key Richiesta: Solo CI Chiave API dell'ID del servizio Utilizzata per eseguire carichi di lavoro della pipeline di consegna su un servizio di lavoro privato Tekton
Token di accesso GitHub git-token Opzionale: CI & CD Utilizzato per autenticarsi con GitHub e fornire accesso ai repository
Artifactory Token API artifactory-token Richiesta: CI & CD Utilizzato per accedere alle immagini utilizzate dai task della pipeline
Webhook Slack slack-webhook Opzionale: CI & CD Questo webhook è necessario se si sceglie di utilizzare l'integrazione con Slack per inviare le notifiche sullo stato della toolchain
ServiceNow Token API servicenow-api-token Richiesta: Solo CD Utilizzato per accedere a Service Now per le operazioni di gestione del cambiamento
HashiCorp ID ruolo del vault role-id Richiesta: CI & CD Utilizzato per autenticarsi con il server HashiCorp Vault
HashiCorp ID segreto del caveau secret-id Richiesta: CI & CD Utilizzato per autenticarsi con il server HashiCorp Vault
IBM Cloud Object Storage Chiave API del writer cos-api-key Richiesta: CI & CD Utilizzato per l'autenticazione con il servizio Object Storage- Questa chiave deve avere il permesso writer
SonarQube password o token di autenticazione sonarqube-password Opzionale: CI Utilizzato per autenticarsi con l'analizzatore di codice sorgente SonarQube

Se si utilizza un server HashiCorp Vault, assicurarsi che l'integrazione dello strumento HashiCorp Vault utilizzi il metodo AppRole Auth Method. Quando si usa il metodo di autenticazione AppRole, sono necessari role-id e secret-id per integrare correttamente il server HashiCorp Vault con la toolchain. Poiché role-id e secret-id sono segreti di per sé, si consiglia di memorizzarli utilizzando una IBM Key Protect integrazione di strumenti in modo che possano essere recuperati e applicati in modo sicuro nel flusso di lavoro della toolchain. Tutti gli altri segreti della catena di strumenti devono essere memorizzati e recuperati utilizzando l'integrazione dello strumento HashiCorp Vault.

Se la proprietà dell'ambiente pipeline git-token non è impostata, ibmcloud-api-key viene usata per recuperare il Git Repos and Issue Tracking Token di accesso per impostazione predefinita. Tuttavia, se ibmcloud-api-key non ha accesso a git, è necessario impostare git-token.

Configurazione dei depositi di segreti

Con IBM Cloud, potete scegliere tra diverse offerte di gestione dei segreti e di protezione dei dati che vi aiutano a proteggere i vostri dati sensibili e a centralizzare i vostri segreti. È possibile scegliere tra le integrazioni del caveau in base alle proprie esigenze, come spiegato in Gestione dei IBM Cloud segreti. Questa documentazione fornisce informazioni sui prerequisiti e su come utilizzare un elenco di nomi segreti prescritti, altrimenti noti come suggerimenti. Utilizzando i suggerimenti in un modello, una toolchain può essere popolata automaticamente con segreti preconfigurati senza doverli selezionare manualmente dalle varie integrazioni di vault collegate alla toolchain.

Utilizzare IBM Cloud® Secrets Manager per memorizzare e applicare in modo sicuro segreti come chiavi API, Image Signature o HashiCorp che fanno parte della propria toolchain.

Secrets Manager modulo di integrazione dello strumento
Integrazione dello strumentoIBM Secrets Manager

I modelli sono inoltre dotati di un'integrazione dello strumento Vault HashiCorp, come nell'esempio seguente:

Modulo di integrazione dello strumento VaultHashiCorp con campi obbligatori e valori di esempio
Integrazione dello strumento Vault diHashiCorp

Per utilizzare HashiCorp Vault, è necessario fornire le seguenti informazioni:

Nome
Un nome per questa integrazione di strumenti. Questo nome viene visualizzato nella catena degli strumenti.
URL del server
Il server URL per la tua istanza Vault di HashiCorp. Ad esempio, https://<vault-service>.<org>.com:8200.
Integrazione URL
L' URL e a cui vuoi accedere quando fai clic sul riquadro " HashiCorp Vault Integration".
Sentiero dei segreti
Il percorso di montaggio in cui sono memorizzati i segreti nell'istanza del vault HashiCorp.
Metodo di autenticazione
Il metodo di autenticazione per l'istanza del Vault HashiCorp. Utilizzare AppRole.
ID ruolo
Identificatore che seleziona l'AppRole rispetto al quale vengono valutate le altre credenziali.
ID segreto
Credenziale richiesta di default per qualsiasi login (con secret_id) e destinata a essere sempre segreta.

I modelli sono inoltre dotati di uno strumento di integrazione IBM® Key Protect for IBM Cloud®:

Key Protect modulo di integrazione dello strumento con campi obbligatori e valori di esempio
IBM Key Protect tool integration

Se sono stati memorizzati in anticipo i segreti role id e secret id in Key Protect, è possibile selezionare l'istanza Key Protect che contiene tali segreti nella scheda degli strumenti, come mostrato nella Figura 2. Dopo aver fatto ciò, è possibile fare clic sulle icone dei tasti nei campi Identità del ruolo e Identità del segreto nella scheda degli strumenti del Vault HashiCorp e utilizzare il selezionatore per applicare i segreti a tali campi.

Allo stesso modo, tutti gli altri segreti utilizzati nella catena degli strumenti hanno un'icona di chiave collegata al campo di testo. È possibile utilizzare lo stesso controllo picker per applicare i segreti del caveau HashiCorp a tutte le istanze rimanenti.