Chi deve amministrare in modo automatico la propria infrastruttura su Azure, facendo uso delle GitHub Actions, si sarà sicuramente imbattuto nella necessità di autenticarsi con Azure stesso. Per farlo, seguendo la documentazione è necessario utilizzare delle credenziali di un utente o, meglio, di un service principal, che possono essere salvate come segreti all'interno del repository.
- name: Azure login uses: azure/login@v2 with: creds: ${{ secrets.AZURE_CREDENTIALS }}
Queste credenziali, non sono nient'altro che un file JSON contenente le informazioni necessarie per autenticarsi con Azure. Questo file può essere generato in diversi modi, ma il più semplice è quello di utilizzare il comando `az ad sp create-for-rbac` di Azure CLI, che ci restituirà un risultato simile al seguente:
{ "clientSecret": "******", "subscriptionId": "******", "tenantId": "******", "clientId": "******" }
Tuttavia, questa secret ha il problema di essere multilinea. Questo significa che se venisse esposta in un log tramite un altro step del workflow, potrebbe essere letta in chiaro da chiunque. Per evitare questo problema di sicurezza, è sufficiente utilizzare dei parametri diversi nella action di login, che prevede l'utilizzo di quattro secret separati, uno per ogni campo del file JSON.
- name: Azure login uses: azure/login@v2 with: client-id: ${{ secrets.AZURE_CLIENT_ID }} tenant-id: ${{ secrets.AZURE_TENANT_ID }} subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
Ottimizzare le performance usando Span<T> e il metodo Split
Ottenere un token di accesso per una GitHub App
Rendere le variabili read-only in una pipeline di Azure DevOps
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Creare una libreria CSS universale: Clip-path
Generare una User Delegation SAS in .NET per Azure Blob Storage
Creare una libreria CSS universale: Immagini
Creare un webhook in Azure DevOps
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Eseguire i worklow di GitHub su runner potenziati