Delen via


Azure Spring Apps verifiëren met Azure Key Vault in GitHub Actions

Notitie

Azure Spring Apps is de nieuwe naam voor de Azure Spring Cloud-service. Hoewel de service een nieuwe naam heeft, ziet u de oude naam op sommige plaatsen terwijl we werken aan het bijwerken van assets, zoals schermopnamen, video's en diagrammen.

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:

Schermopname van Azure Portal met de pagina Toegangsbeheer met het tabblad Roltoewijzingen gemarkeerd.

Kopieer bijvoorbeeld azure-cli-2020-01-19-04-39-02de 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:

Schermopname van Azure Portal met de pagina Toegangsbeleid toevoegen met het deelvenster Principal geopend.

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.

Schermopname van Azure Portal met de pagina Een geheim maken.

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

Volgende stappen