Megosztás a következőn keresztül:


Az Azure Spring Apps hitelesítése az Azure Key Vaulttal a GitHub Actionsben

Feljegyzés

Az Azure Spring Apps az Azure Spring Cloud szolgáltatás új neve. Bár a szolgáltatásnak új neve van, bizonyos helyeken a régi nevet fogja látni egy darabig, miközben az eszközök, például képernyőképek, videók és diagramok frissítésével dolgozunk.

Ez a cikk a következőre vonatkozik: ✔️ Java ✔️ C#

Ez a cikk a következőre vonatkozik: ✔️ Basic/Standard ✔️ Enterprise

Ez a cikk bemutatja, hogyan használhatja a Key Vaultot egy CI-/CD-munkafolyamattal az Azure Spring Appshez a GitHub Actions használatával.

A Kulcstartó biztonságos hely a kulcsok tárolására. A vállalati felhasználóknak a ci/CD-környezetekhez tartozó hitelesítő adatokat az általuk szabályozható hatókörben kell tárolniuk. A kulcstartóban a hitelesítő adatok lekéréséhez használt kulcsnak erőforrás-hatókörre kell korlátozódnia. Csak a key vault hatóköréhez fér hozzá, nem a teljes Azure-hatókörhöz. Olyan, mint egy kulcs, amely csak egy erős dobozt tud kinyitni, nem egy főkulcsot, amely minden ajtót megnyit egy épületben. Ez egy másik kulccsal való kulcs lekérésének módja, amely hasznos lehet egy CICD-munkafolyamatban.

Hitelesítő adatok létrehozása

A kulcstartó eléréséhez szükséges kulcs létrehozásához hajtsa végre az alábbi parancsot a helyi gépen:

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

A paraméter által --scopes megadott hatókör korlátozza az erőforráshoz való kulcshozzáférést. Csak az erős dobozhoz fér hozzá.

Eredmények:

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

Ezután mentse az eredményeket a GitHub titkos kulcsaiba a GitHub-adattár beállítása és az Azure-beli hitelesítés című cikkben leírtak szerint.

Hozzáférési szabályzatok hozzáadása a hitelesítő adatokhoz

A fent létrehozott hitelesítő adatok csak általános információkat kaphatnak a Key Vaultról, nem pedig az általa tárolt tartalmakról. A Key Vaultban tárolt titkos kulcsok lekéréséhez be kell állítania a hitelesítő adatok hozzáférési szabályzatát.

Nyissa meg a Key Vault irányítópultját az Azure Portalon, válassza a Hozzáférés-vezérlés menüt, majd nyissa meg a Szerepkör-hozzárendelések lapot. Válassza a Típushoz és This resource hatókörhöz tartozó alkalmazások lehetőséget. Az előző lépésben létrehozott hitelesítő adatokat kell látnia:

Képernyőkép az Azure Portalról, amelyen a Hozzáférés-vezérlés lap látható, kiemelve a Szerepkör-hozzárendelések lap.

Másolja ki például a hitelesítő adatokat azure-cli-2020-01-19-04-39-02. Nyissa meg az Access-szabályzatok menüt, majd válassza az Access Policy hozzáadása hivatkozást. Válassza a Secret Management Sablon lehetőséget, majd válassza az Egyszerű lehetőséget. Illessze be a hitelesítő adatokat a Principal/Select beviteli mezőbe:

Képernyőkép az Azure Portalról, amelyen a Hozzáférési szabályzat hozzáadása lap látható, és meg van nyitva az Egyszerű ablaktábla.

Válassza a Hozzáadás gombot a Hozzáférési szabályzat hozzáadása párbeszédpanelen, majd válassza a Mentés lehetőséget.

Teljes hatókörű Azure Credential létrehozása

Ez a főkulcs az épület összes ajtajának megnyitásához. Az eljárás hasonló az előző lépéshez, de itt módosítjuk a hatókört a főkulcs létrehozásához:

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

Ismét az eredmények:

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

Másolja ki a teljes JSON-sztringet. Lépjen vissza a Key Vault irányítópultjára. Nyissa meg a Titkos kódok menüt, majd válassza a Létrehozás/Importálás gombot. Adja meg a titkos kód nevét, például AZURE-CREDENTIALS-FOR-SPRING. Illessze be a JSON hitelesítőadat-sztringet az Érték beviteli mezőbe. Észreveheti, hogy az értékbeviteli mező egy egysoros szövegmező, nem pedig többsoros szövegterület. Itt illessze be a teljes JSON-sztringet.

Képernyőkép az Azure Portalról, amelyen a Titkos kulcs létrehozása lap látható.

Hitelesítő adatok kombinálása a GitHub Actionsben

Adja meg a CICD-folyamat végrehajtásakor használt hitelesítő adatokat:

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

Következő lépések