Azure Spring Apps verifiëren met Azure Key Vault in GitHub Actions
Notitie
De Basic-, Standard- en Enterprise-abonnementen worden afgeschaft vanaf medio maart 2025, met een pensioenperiode van 3 jaar. We raden u aan om over te stappen naar Azure Container Apps. Zie de aankondiging over buitengebruikstelling van Azure Spring Apps voor meer informatie.
Het standaardverbruik en het speciale abonnement worden vanaf 30 september 2024 afgeschaft, met een volledige afsluiting na zes maanden. We raden u aan om over te stappen naar Azure Container Apps. Zie Azure Spring Apps Standard-verbruik en toegewezen abonnement migreren naar Azure Container Apps voor meer informatie.
Dit artikel is van toepassing op:✅ Java ✅ C#
Dit artikel is van toepassing op:✅ Basic/Standard ✅ Enterprise
In dit artikel leest u hoe u Key Vault gebruikt met een CI/CD-werkstroom voor Azure Spring Apps met GitHub Actions.
Key Vault is een veilige plek om sleutels op te slaan. Zakelijke gebruikers moeten referenties opslaan voor CI/CD-omgevingen binnen het bereik dat ze beheren. De sleutel voor het ophalen van referenties in de sleutelkluis moet worden beperkt tot het resourcebereik. Het heeft alleen toegang tot het bereik van de sleutelkluis, niet tot het volledige Azure-bereik. Het is net een sleutel die alleen een sterke doos kan openen, niet een hoofdsleutel die alle deuren in een gebouw kan openen. Het is een manier om een sleutel op te halen met een andere sleutel, wat handig is in een CICD-werkstroom.
Referentie genereren
Als u een sleutel wilt genereren voor toegang tot de sleutelkluis, voert u de onderstaande opdracht uit op uw lokale computer:
az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT> --json-auth
Het bereik dat is opgegeven door de --scopes
parameter beperkt de sleuteltoegang tot de resource. Het heeft alleen toegang tot de sterke doos.
Met resultaten:
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Sla vervolgens de resultaten op in GitHub-geheimen, zoals beschreven in Uw GitHub-opslagplaats instellen en verifiëren met Azure.
Toegangsbeleid voor de referentie toevoegen
De referenties die u hierboven hebt gemaakt, kunnen alleen algemene informatie over de Sleutelkluis ophalen, niet de inhoud die wordt opgeslagen. Als u geheimen wilt ophalen die zijn opgeslagen in Key Vault, moet u toegangsbeleid instellen voor de referentie.
Ga naar het Key Vault-dashboard in Azure Portal, selecteer het menu Toegangsbeheer en open vervolgens het tabblad Roltoewijzingen . Selecteer Apps voor type en This resource
voor bereik. U ziet nu de referentie die u in de vorige stap hebt gemaakt:
Kopieer bijvoorbeeld azure-cli-2020-01-19-04-39-02
de referentienaam. Open het menu Toegangsbeleid en selecteer vervolgens de koppeling Toegangsbeleid toevoegen. Selecteer Secret Management
voor Sjabloon en selecteer Vervolgens Principal. Plak de referentienaam in het invoervak Principal/Select:
Selecteer de knop Toevoegen in het dialoogvenster Toegangsbeleid toevoegen en selecteer Opslaan.
Volledige Azure-referentie genereren
Dit is de hoofdsleutel om alle deuren in het gebouw te openen. De procedure is vergelijkbaar met de vorige stap, maar hier wijzigen we het bereik om de hoofdsleutel te genereren:
az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID> --json-auth
Nogmaals, resultaten:
{
"clientId": "<GUID>",
"clientSecret": "<GUID>",
"subscriptionId": "<GUID>",
"tenantId": "<GUID>",
"activeDirectoryEndpointUrl": "https://login.microsoftonline.com",
"resourceManagerEndpointUrl": "https://management.azure.com/",
"sqlManagementEndpointUrl": "https://management.core.windows.net:8443/",
"galleryEndpointUrl": "https://gallery.azure.com/",
"managementEndpointUrl": "https://management.core.windows.net/"
}
Kopieer de hele JSON-tekenreeks. Ga terug naar het Key Vault-dashboard . Open het menu Geheimen en selecteer vervolgens de knop Genereren/importeren . Voer de geheime naam in, zoals AZURE-CREDENTIALS-FOR-SPRING
. Plak de JSON-referentietekenreeks in het invoervak Waarde . U ziet mogelijk dat het invoervak van de waarde een tekstveld met één regel is, in plaats van een tekstgebied met meerdere regels. U kunt de volledige JSON-tekenreeks daar plakken.
Referenties combineren in GitHub Actions
Stel de referenties in die worden gebruikt wanneer de CICD-pijplijn wordt uitgevoerd:
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }} # Strong box key you generated in the first step
- uses: Azure/get-keyvault-secrets@v1.0
with:
keyvault: "<Your Key Vault Name>"
secrets: "AZURE-CREDENTIALS-FOR-SPRING" # Master key to open all doors in the building
id: keyvaultaction
- uses: azure/login@v1
with:
creds: ${{ steps.keyvaultaction.outputs.AZURE-CREDENTIALS-FOR-SPRING }}
- name: Azure CLI script
uses: azure/CLI@v1
with:
azcliversion: 2.0.75
inlineScript: |
az extension add --name spring # Spring CLI commands from here
az spring list