Sdílet prostřednictvím


Ověřování aplikací Azure Spring pomocí služby Azure Key Vault v GitHub Actions

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Tento článek se vztahuje na: ✔️ Java ✔️ C#

Tento článek se vztahuje na: ✔️ Basic/Standard ✔️ Enterprise

V tomto článku se dozvíte, jak používat Key Vault s pracovním postupem CI/CD pro Azure Spring Apps s GitHub Actions.

Trezor klíčů je bezpečné místo pro ukládání klíčů. Podnikoví uživatelé musí ukládat přihlašovací údaje pro prostředí CI/CD v oboru, který řídí. Klíč pro získání přihlašovacích údajů v trezoru klíčů by měl být omezený na rozsah prostředků. Má přístup jenom k oboru trezoru klíčů, ne k celému oboru Azure. Je to jako klíč, který může otevřít pouze silný box, ne hlavní klíč, který může otevřít všechny dveře v budově. Je to způsob, jak získat klíč s jiným klíčem, což je užitečné v pracovním postupu CICD.

Generování přihlašovacích údajů

Pokud chcete vygenerovat klíč pro přístup k trezoru klíčů, spusťte na místním počítači následující příkaz:

az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT> --json-auth

Obor určený parametrem --scopes omezuje přístup ke klíči k prostředku. Má přístup pouze k silnému poli.

S výsledky:

{
    "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/"
}

Potom uložte výsledky do tajných kódů GitHubu, jak je popsáno v tématu Nastavení úložiště GitHub a ověření pomocí Azure.

Přidání zásad přístupu pro přihlašovací údaje

Přihlašovací údaje, které jste vytvořili výše, můžou získat pouze obecné informace o službě Key Vault, nikoli o obsahu, který ukládá. Pokud chcete získat tajné kódy uložené ve službě Key Vault, musíte pro přihlašovací údaje nastavit zásady přístupu.

Přejděte na řídicí panel služby Key Vault na webu Azure Portal, vyberte nabídku Řízení přístupu a pak otevřete kartu Přiřazení rolí. Vyberte Aplikace pro typ a This resource obor. Měli byste vidět přihlašovací údaje, které jste vytvořili v předchozím kroku:

Snímek obrazovky webu Azure Portal zobrazící stránku Řízení přístupu se zvýrazněnou kartou Přiřazení rolí

Zkopírujte název přihlašovacích údajů, azure-cli-2020-01-19-04-39-02například . Otevřete nabídku Zásad přístupu a pak vyberte odkaz Přidat zásadu přístupu. Vyberte Secret Management šablonu a pak vyberte Objekt zabezpečení. Do pole Pro výběr objektu zabezpečení/vložte název přihlašovacích údajů:

Snímek obrazovky webu Azure Portal znázorňující stránku Přidat zásadu přístupu s otevřeným podoknem Objekt zabezpečení

V dialogovém okně Přidat zásady přístupu vyberte tlačítko Přidat a pak vyberte Uložit.

Generování úplných přihlašovacích údajů Azure

Toto je hlavní klíč pro otevření všech dveří v budově. Postup je podobný předchozímu kroku, ale tady změníme obor pro vygenerování hlavního klíče:

az ad sp create-for-rbac --role contributor --scopes /subscriptions/<SUBSCRIPTION_ID> --json-auth

Opět výsledky:

{
    "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/"
}

Zkopírujte celý řetězec JSON. Vraťte se na řídicí panel služby Key Vault . Otevřete nabídku Tajné kódy a pak vyberte tlačítko Generovat/Importovat. Zadejte název tajného kódu, například AZURE-CREDENTIALS-FOR-SPRING. Vložte řetězec přihlašovacích údajů JSON do vstupního pole Hodnota . Můžete si všimnout, že vstupní pole hodnoty je jednořádkové textové pole místo víceřádkové textové oblasti. Tam můžete vložit celý řetězec JSON.

Snímek obrazovky webu Azure Portal se stránkou Vytvořit tajný kód

Kombinování přihlašovacích údajů v GitHub Actions

Nastavte přihlašovací údaje použité při spuštění kanálu CICD:

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

Další kroky