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:
| 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.
I modelli sono inoltre dotati di un'integrazione dello strumento Vault HashiCorp, come nell'esempio seguente:
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®:
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.