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

Poznámka:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

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