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
Creare una libreria CSS universale: Clip-path
Implementare l'infinite scroll con QuickGrid in Blazor Server
Sostituire la GitHub Action di login su private registry
Recuperare l'ultima versione di una release di GitHub
Ottenere un token di accesso per una GitHub App
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare Model as a Service su Microsoft Azure
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Utilizzare i primary constructor di C# per inizializzare le proprietà
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Code scanning e advanced security con Azure DevOps
Modificare i metadati nell'head dell'HTML di una Blazor Web App
I più letti di oggi
- Screencast 'Primi passi con Windows Workflow Foundation'
- .NET Conference Italia 2021 - Online
- Venite a trovarci a SMAU, dal 2 al 6 ottobre!
- Validazione dell'input in ASP.NET MVC 2
- Ignorare gli errori negli script
- Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
- Inviare un'e-mail con ASP.NET