Környezeti titkos kódok használata az Azure Developer CLI-vel

Az Azure Developer CLI (azd) támogatja az Azure Key Vault titkos kulcsokra való hivatkozását a projektkörnyezetben (a fájlban .env ). Ez biztonságos lehetőséget biztosít a projektek bizalmas adatainak azd kezeléséhez. Ezek a titkos kódok különböző azd funkciókkal integrálhatók, például horgokkal és CI/CD-folyamatkonfigurációkkal.

Előfeltételek

Key Vault-titkos kulcs beállítása

Key Vault-titkos kulcs beállításához futtassa a azd env set-secret <name> parancsot, amelyben <name> a kulcs a Key Vault titkos kulcsára hivatkozik. A titkos kód azd beállítása után az alábbi forgatókönyvekben automatikusan lekéri az értéket a Key Vaultból.

Bicep-paraméterek

Ha Bicep-paramétert szeretne társítani egy Azure Key Vault-titkos kód értékéhez, kövesse az alábbi lépéseket:

  1. A Bicep paramétert a kulcsszóval @secure() védettként jegyzetelje.
  2. Hozzon létre egy leképezést a main.parameters.json fájlban, amely a Bicep paramétert az Azure Key Vault titkos kódjára hivatkozó környezetben lévő megfelelő kulcsnévhez kapcsolja.

Megjegyzés:

A környezeti titkok jelenleg nem támogatottak Bicep paraméterfájlok (.bicepparam) használatakor.

Example

azd Egy projektben futtassa azd env set-secret MY_SECRET és kövesse az utasításokat egy meglévő Azure Key Vault-titkos kód kiválasztásához, vagy hozzon létre egy újat. A parancs befejeződése után a kulcs MY_SECRET egy Key Vault-titkos kódra mutató hivatkozást tartalmaz. Adja hozzá vagy válassza ki azt a Bicep-paramétert, amellyel használni szeretné az értéket, és jelölje ki biztonságosként:

@secure()
param secureParameter string

Hozza létre a leképezést a main.parameters.json fájlban:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
      "secureParameter": {
        "value": "${MY_SECRET}"
      }
    }
}

A következő futtatáskor azd up vagy azd provisionazd a paraméter értékeként az Azure Key Vault titkos kulcsát használja.

Kampók

azd automatikusan lekérheti az Azure Key Vault titkos kulcsokat egy horog futtatásakor. Alapértelmezés szerint, amikor a azd futtat egy horgot, a projektkörnyezetből (a .env fájl) származó összes kulcs-érték pár beállításra kerül a horog környezetében. A Key Vault titkos kulcsokra mutató hivatkozásokat azonban nem oldja fel automatikusan a rendszer a hozzájuk tartozó titkos értékekkel.

A hivatkozások megoldásához kövesse az alábbi lépéseket:

  1. Hozzon létre egy leképezést a környezet kulcsából egy új kulcsra, ahol a Key Vault titkos kulcsa feloldva van.
  2. A leképezés létrehozásához használja a secrets horogdefiníció mezőjét.

Example

azd Egy projektben futtassa azd env set-secret MY_SECRET és kövesse az utasításokat egy meglévő Azure Key Vault-titkos kód kiválasztásához, vagy hozzon létre egy újat. A parancs befejezése után a kulcs MY_SECRET egy Key Vault-titkos kódra hivatkozik. Hozzon létre egy, az operációs rendszerhez megfelelő horogdefiníciót.

hooks:
  preprovision: 
    run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
    shell: sh
    interactive: true
    secrets:
      SECRET_RESOLVE: MY_SECRET

A következő futtatáskor azd provisiona preprovision horog lefut, és a következő lépésben MY_SECRETfeloldódikSECRET_RESOLVE.

Folyamatkonfiguráció

azd leegyszerűsíti a folyamatos integráció (CI) beállításának folyamatát az alkalmazáshoz. Akár a GitHubot, akár az Azure DevOpst használja, futtassa azd pipeline config és kövesse az irányított lépéseket a CI/CD konfigurálásához.

Az automatikus konfiguráció azd részeként titkos kulcsokat és változókat hoz létre a CI/CD üzembehelyezési munkafolyamatához. Saját változókat és titkos kulcsokat is meghatározhat a pipeline következő konfigurációval azure.yaml: . A definiált nevek megfelelnek a környezet kulcsainak azd (.env). Ha egy kulcs titkos referenciát tartalmaz (akvs), azd eltérő viselkedést alkalmaz attól függően, hogy változóként vagy titkos kódként adja hozzá:

Megközelítés CI/CD tárolt érték Titkos kulcsok rotálása A következőkre alkalmas
variables Key Vault-referencia (akvs://...) Automatikus – a folyamat mindig beolvassa a legújabb értéket a Key Vaultból. Ha a CI/CD szolgáltatási főszereplő rendelkezik Key Vault olvasási hozzáféréssel.
secrets Tényleges titkos kódérték Manuális – újrafuttatva azd pipeline config forgatás után. Ha a Key Vault olvasási hozzáférését nem tudja hozzárendelni a szolgáltatási fő felhasználóhoz.

Megjegyzés:

Amikor használja variables, azd megpróbál egy olvasási-hozzáférési szerepkört hozzárendelni a CI/CD munkafolyamat által használt szolgáltatási főszereplőhöz. Ha nem rendelkezik megfelelő engedélyekkel a Key Vault olvasási szerepkörének hozzárendeléséhez, a művelet meghiúsul. A secrets használható helyette.

Example

Inicializált azd projektből futtassa azd env set-secret SECURE_KEY és kövesse az utasításokat. A parancs befejeződése azd env get-values után a következő hivatkozás jelenik meg:

SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"

Adja hozzá a SECURE_KEY elemet vagy a variables vagy secrets listához a azure.yaml-ben:

# yaml-language-server: $schema=https://raw.githubusercontent.com/Azure/azure-dev/main/schemas/v1.0/azure.yaml.json
name: your-project-name
pipeline:
  variables:
    - SECURE_KEY

Futtatáskor azd pipeline config, SECURE_KEY CI/CD-változóként van beállítva, amelynek értéke a Kulcstároló referencia. Ha a SECURE_KEY Bicep bemeneti paraméterre vagy horogdefinícióra van megfeleltetve, akkor a azd futásidőben automatikusan megoldja a titkos érték feloldását.