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:
Zkopírujte název přihlašovacích údajů, azure-cli-2020-01-19-04-39-02
napří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ů:
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.
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