Usare i segreti di Azure Key Vault nella pipeline
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Con Azure Key Vault è possibile archiviare e gestire in modo sicuro le informazioni riservate, ad esempio password, chiavi API, certificati e così via. usando Azure Key Vault, è possibile creare e gestire facilmente le chiavi di crittografia per crittografare i dati. Azure Key Vault può essere usato anche per gestire i certificati per tutte le risorse. In questo articolo si apprenderà come:
- Creare un insieme di credenziali delle chiavi di Azure.
- Configurare le autorizzazioni di Key Vault.
- Creare una nuova connessione al servizio.
- Eseguire una query per individuare i segreti dalla pipeline di Azure.
Prerequisiti
- Un'organizzazione Azure DevOps. Crearne uno gratuitamente se non ne hai già uno.
- Il tuo progetto. Creare un progetto se non ne è già disponibile uno.
- Repository personalizzato. Creare un nuovo repository Git se non ne è già disponibile uno.
- Una sottoscrizione di Azure. Creare un account Azure gratuito se non ne è già disponibile uno.
Creazione di un Key Vault
Accedere al portale di Azure e quindi selezionare Crea una risorsa.
In Key Vault selezionare Crea per creare un nuovo insieme di credenziali delle chiavi di Azure.
Selezionare la sottoscrizione dal menu a discesa e quindi selezionare un gruppo di risorse esistente o crearne uno nuovo. Immettere un nome dell'insieme di credenziali delle chiavi, selezionare un'area, scegliere un piano tariffario e selezionare Avanti se si desidera configurare proprietà aggiuntive. In caso contrario, selezionare Rivedi e crea per mantenere le impostazioni predefinite.
Una volta completata la distribuzione, selezionare Vai alla risorsa.
Configurare l'autenticazione
Creare un'identità gestita assegnata dall'utente
Accedere al portale di Azure, quindi cercare il servizio Identità gestite nella barra di ricerca.
Selezionare Crea e compilare i campi obbligatori come indicato di seguito:
- Sottoscrizione: selezionare la sottoscrizione dal menu a discesa.
- Gruppo di risorse: selezionare un gruppo di risorse esistente o crearne uno nuovo.
- Area: selezionare un'area dal menu a discesa.
- Nome: immetti un nome per l'identità gestita assegnata dall'utente.
Al termine, selezionare Rivedi e crea .
Al termine della distribuzione, selezionare Vai alla risorsa, quindi copiare i valori sottoscrizione e ID client da usare nei passaggi successivi.
Passare a Proprietà impostazioni> e copiare il valore dell'ID tenant dell'identità gestita per usarlo in un secondo momento.
Configurare i criteri di accesso dell'insieme di credenziali delle chiavi
Passare a portale di Azure e usare la barra di ricerca per trovare l'insieme di credenziali delle chiavi creato in precedenza.
Selezionare Criteri di accesso e quindi Crea per aggiungere un nuovo criterio.
In Autorizzazioni segrete selezionare Le caselle di controllo Recupera ed Elenco .
Selezionare Avanti, quindi incollare l'ID client dell'identità gestita creata in precedenza nella barra di ricerca. Selezionare l'identità gestita.
Selezionare Avanti, quindi Avanti ancora una volta.
Esaminare i nuovi criteri e quindi selezionare Crea al termine.
Creare una connessione al servizio
Accedere all'organizzazione di Azure DevOps e passare al progetto.
Selezionare Connessioni al servizio Impostazioni> progetto, quindi selezionare Nuova connessione al servizio per creare una nuova connessione al servizio.
Selezionare Azure Resource Manager e quindi avanti.
Per Tipo di identità selezionare Identità gestita dal menu a discesa.
Per Passaggio 1: Dettagli identità gestita, compilare i campi come indicato di seguito:
Sottoscrizione per l'identità gestita: selezionare la sottoscrizione contenente l'identità gestita.
Gruppo di risorse per l'identità gestita: selezionare il gruppo di risorse che ospita l'identità gestita.
Identità gestita: selezionare l'identità gestita dal menu a discesa.
Per Il passaggio 2: Ambito di Azure compilare i campi come indicato di seguito:
Livello di ambito per la connessione al servizio: selezionare Sottoscrizione.
Sottoscrizione per la connessione al servizio: selezionare la sottoscrizione a cui si accederà l'identità gestita.
Gruppo di risorse per la connessione al servizio: (facoltativo) Specificare per limitare l'accesso all'identità gestita a un gruppo di risorse.
Per Il passaggio 3: Dettagli della connessione al servizio:
Nome connessione al servizio: specificare un nome per la connessione al servizio.
Informazioni di riferimento sulla gestione dei servizi: (facoltativo) informazioni sul contesto da un database ITSM.
Descrizione: (Facoltativo) Aggiungere una descrizione.
In Sicurezza selezionare la casella di controllo Concedi l'autorizzazione di accesso a tutte le pipeline per consentire a tutte le pipeline di usare questa connessione al servizio. Se non si seleziona questa opzione, è necessario concedere manualmente l'accesso a ogni pipeline che usa questa connessione al servizio.
Selezionare Salva per convalidare e creare la connessione al servizio.
Eseguire query e usare segreti nella pipeline
Usando l'attività azure Key Vault è possibile recuperare il valore del segreto e usarlo nelle attività successive nella pipeline. Un aspetto da tenere presente è che i segreti devono essere mappati in modo esplicito alla variabile env, come illustrato nell'esempio seguente.
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureKeyVault@1
inputs:
azureSubscription: 'SERVICE_CONNECTION_NAME'
KeyVaultName: 'KEY_VAULT_NAME'
SecretsFilter: '*'
- bash: |
echo "Secret Found! $MY_MAPPED_ENV_VAR"
env:
MY_MAPPED_ENV_VAR: $(SECRET_NAME)
L'output dell'ultimo comando bash dovrebbe essere simile al seguente:
Secret Found! ***
Nota
Se si vuole eseguire una query per più segreti da Azure Key Vault, usare l'argomento SecretsFilter
per passare un elenco delimitato da virgole di nomi segreti: 'secret1, secret2'.