Azure Geliştirici CLI ile çevre sırlarını kullanma

Azure Geliştirici CLI'sı (azd), proje ortamınızdaki Azure Key Vault gizli dizilerine başvurmayı (.env dosyasında) destekler. Bu, projelerinizdeki azd hassas verilerle çalışmak için güvenli bir seçenek sağlar. Bu sırlar, kancalar ve CI/CD pipeline yapılandırmaları gibi çeşitli azd özelliklerle entegre olur.

Önkoşullar

Key Vault gizli ayarla

Key Vault gizlisini ayarlamak için azd env set-secret <name> komutunu çalıştırın, burada <name> ortamda Key Vault gizlisine başvuran anahtardır. Gizli bilgiyi ayarladıktan sonra, azd aşağıdaki senaryolarda değeri Key Vault'tan otomatik olarak alır.

Bicep parametreleri

Bicep parametresini Azure Key Vault gizli dizisinin değeriyle ilişkilendirmek için şu adımları izleyin:

  1. Bicep parametresine @secure() anahtar kelimesini kullanarak güvenli olarak açıklama ekleyin.
  2. Dosya main.parameters.json'da, Bicep parametresini ortamda Azure Key Vault sırrına başvuran karşılık gelen anahtar adına bağlayan bir eşleme oluşturun.

Uyarı

Bicep parametre dosyalarını (.bicepparam) kullandığınızda ortam gizli bilgileri desteklenmiyor.

Example

Bir azd projesinde azd env set-secret MY_SECRET komutunu çalıştırın ve ekrandaki istemleri takip ederek mevcut bir Azure Key Vault gizli anahtarını seçin veya yeni bir gizli anahtar oluşturun. Komut tamamlandıktan sonra anahtar MY_SECRET , bir Key Vault gizli anahtarına referans tutar. Değerini birlikte kullanmak istediğiniz Bicep parametresini ekleyin veya seçin ve bunu güvenli olarak belirleyin:

@secure()
param secureParameter string

Dosya içinde main.parameters.json eşlemeyi oluşturun.

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

Bir sonraki azd up veya azd provision çalıştırmanızda, azd, parametreniz için Azure Key Vault gizli dizesini değer olarak kullanır.

Kancalar

azd bir tetikleyici çalıştırıldığında Azure Key Vault gizli bilgilerini otomatik olarak alabilir. Varsayılan olarak, bir kanca çalıştırıldığında azd, proje ortam dosyasından (.env dosya) tüm anahtar-değer çiftleri kancanın ortamında ayarlanır. Ancak Key Vault gizli dizilerine yapılan başvurular ilgili gizli dizi değerlerine otomatik olarak çözümlenmez.

Bu bağlantıları çözmek için şu adımları izleyin:

  1. Çevredeki anahtardan, Key Vault'taki gizli bilginin çözüldüğü yeni anahtara bir eşleme oluşturun.
  2. Bu eşlemeyi oluşturmak için kanca tanımındaki secrets alanını kullanın.

Example

Bir azd projesinden azd env set-secret MY_SECRET komutunu çalıştırın ve istemleri izleyerek mevcut bir Azure Key Vault gizli anahtarını seçin veya yeni bir gizli anahtar oluşturun. Komut tamamlandıktan sonra anahtar MY_SECRET bir anahtar kasası sırrına başvurur. İşletim sisteminize uygun bir kanca tanımı oluşturun.

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

Bir dahaki sefer azd provision çalıştırdığınızda, preprovision kancası çalıştırılır ve MY_SECRET olarak çözülür SECRET_RESOLVE.

İşlem hattı konfigürasyonu

azd uygulamanız için sürekli tümleştirmeyi (CI) ayarlama işlemini basitleştirir. GitHub veya Azure DevOps kullanmanız fark etmeksizin CI/CD'yi yapılandırmak için komutunu çalıştırın azd pipeline config ve kılavuzlu adımları izleyin.

Otomatik yapılandırmanın bir parçası olarak azd CI/CD dağıtım iş akışınız için gizli anahtarlar ve değişkenler oluşturur. pipeline ve azure.yaml yapılandırmasını kullanarak kendi değişkenlerinizi ve gizli öğelerinizi de tanımlayabilirsiniz. Tanımladığınız adlar ortamınızdaki azd (.env) anahtarlara karşılık gelir. Anahtarda bir gizli başvuru (akvs) varsa, azd bunu değişken olarak mı yoksa gizli olarak mı eklediğinize bağlı olarak farklı davranışlar uygular.

Yaklaşım Depolanan CI/CD değeri Gizli döndürme işlemi En iyi kullanım alanı:
variables Key Vault referansı (akvs://...) Otomatik — işlem hattı her zaman Key Vault'tan en son değeri okur. CI/CD hizmet sorumlusu Key Vault okuma erişimine sahip olduğunda.
secrets Gerçek gizli değer Elle — döndürme işlemi sonrası azd pipeline config tekrar çalıştırın. Hizmet sorumlusuna Key Vault okuma erişimi atayamıyorsanız.

Uyarı

variables kullandığınızda, azd CI/CD iş akışı tarafından kullanılan hizmet sorumlusuna bir okuma erişim rolü atamaya çalışır. Key Vault için okuma rolünü atamak için yeterli izinleriniz yoksa işlem başarısız olur. Bunun yerine secrets kullanın.

Example

Başlatılan bir azd projesinde azd env set-secret SECURE_KEY komutunu çalıştırın ve istemleri izleyin. Komut tamamlandıktan sonra azd env get-values referansı gösterir.

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

SECURE_KEY listesini variables veya secrets listesinde azure.yaml ekleyin.

# 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

komutunu çalıştırdığınızdaazd pipeline configSECURE_KEY, değeri Key Vault başvurusu olan bir CI/CD değişkeni olarak ayarlanır. SECURE_KEY bir Bicep giriş parametresine veya kanca tanımına da eşlenmişse, azd gizli değeri çalışma zamanında otomatik olarak çözümler.