Menggunakan rahasia lingkungan dengan Azure Developer CLI

Azure Developer CLI (azd) mendukung referensi rahasia Azure Key Vault dalam lingkungan proyek Anda ( .env file). Ini menyediakan opsi aman untuk bekerja dengan data sensitif dalam proyek Anda azd . Rahasia ini terintegrasi dengan berbagai azd fitur, seperti kait dan konfigurasi alur CI/CD.

Prasyarat

Mengatur rahasia Key Vault

Untuk mengatur rahasia Key Vault, jalankan azd env set-secret <name> perintah , di mana <name> adalah kunci di lingkungan yang mereferensikan rahasia Key Vault. Setelah Anda mengatur rahasia, azd secara otomatis mengambil nilai dari Key Vault dalam skenario berikut.

Parameter Bicep

Untuk mengaitkan parameter Bicep dengan nilai rahasia Azure Key Vault, ikuti langkah-langkah berikut:

  1. Buat anotasi parameter Bicep sebagai aman dengan menggunakan @secure() kata kunci.
  2. Buat pemetaan dalam main.parameters.json file yang menautkan parameter Bicep ke nama kunci yang sesuai di lingkungan yang mereferensikan rahasia Azure Key Vault.

Nota

Rahasia lingkungan saat ini tidak didukung saat Anda menggunakan file parameter Bicep (.bicepparam).

Example

azd Dari proyek, jalankan azd env set-secret MY_SECRET dan ikuti perintah untuk memilih rahasia Azure Key Vault yang sudah ada atau buat yang baru. Setelah perintah selesai, kunci MY_SECRET menyimpan referensi ke rahasia Key Vault. Tambahkan atau pilih parameter Bicep yang ingin Anda gunakan nilainya dan tetapkan sebagai aman:

@secure()
param secureParameter string

Buat pemetaan dalam main.parameters.json file:

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

Lain kali Anda menjalankan azd up atau azd provision, azd menggunakan rahasia Azure Key Vault sebagai nilai untuk parameter Anda.

Hook

azd memungkinkan pengambilan rahasia Azure Key Vault secara otomatis saat skrip hook berjalan. Secara bawaan, saat azd menjalankan hook, semua pasangan kunci-nilai dalam lingkungan proyek (file .env) diatur di lingkungan hook. Namun, referensi ke rahasia Key Vault tidak secara otomatis diterjemahkan ke nilai rahasia yang sesuai.

Untuk mengatasi referensi ini, ikuti langkah-langkah berikut:

  1. Buat pemetaan dari kunci di lingkungan ke kunci baru tempat rahasia Key Vault diselesaikan.
  2. secrets Gunakan bidang dalam definisi hook untuk membuat pemetaan ini.

Example

azd Dari proyek, jalankan azd env set-secret MY_SECRET dan ikuti perintah untuk memilih rahasia Azure Key Vault yang sudah ada atau buat yang baru. Setelah perintah selesai, kunci MY_SECRET mereferensikan rahasia Key Vault. Buat definisi kait yang sesuai untuk sistem operasi Anda.

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

Lain kali Anda menjalankan azd provision, kait preprovision akan berjalan dan menyelesaikan MY_SECRET menjadi SECRET_RESOLVE.

Konfigurasi alur kerja

azd menyederhanakan proses pengaturan integrasi berkelanjutan (CI) untuk aplikasi Anda. Baik Anda menggunakan GitHub atau Azure DevOps, jalankan azd pipeline config dan ikuti langkah-langkah terpandu untuk mengonfigurasi CI/CD.

Sebagai bagian dari konfigurasi otomatis, azd membuat rahasia dan variabel untuk alur kerja penyebaran CI/CD Anda. Anda juga dapat menentukan variabel dan rahasia Anda sendiri menggunakan pipeline konfigurasi di azure.yaml. Nama yang Anda tentukan sesuai dengan kunci di lingkungan Anda azd (.env). Jika kunci menyimpan referensi rahasia (akvs), azd menerapkan perilaku yang berbeda tergantung pada apakah Anda menambahkannya sebagai variabel atau rahasia:

Pendekatan Nilai CI/CD disimpan Rotasi rahasia Paling cocok untuk
variables Key Vault Referensi (akvs://...) Otomatis — alur selalu membaca nilai terbaru dari Key Vault. Ketika perwakilan layanan CI/CD memiliki akses baca Key Vault.
secrets Nilai rahasia aktual Manual — jalankan azd pipeline config ulang setelah rotasi. Saat Anda tidak dapat menetapkan akses baca Key Vault ke perwakilan layanan.

Nota

Saat Anda menggunakan variables, azd mencoba untuk menetapkan peran pembacaan ke perwakilan layanan yang digunakan oleh alur kerja CI/CD. Jika Anda tidak memiliki izin yang memadai untuk menetapkan peran baca untuk Key Vault, operasi akan gagal. Gunakan secrets sebagai gantinya.

Example

Dari proyek yang diinisialisasi, jalankan azdazd env set-secret SECURE_KEY dan ikuti perintah. Setelah perintah selesai, azd env get-values memperlihatkan referensi:

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

Tambahkan SECURE_KEY ke dalam daftar variables atau secrets di azure.yaml:

# 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

Saat Anda menjalankan azd pipeline config, SECURE_KEY diatur sebagai variabel CI/CD dengan referensi Key Vault sebagai nilainya. Jika SECURE_KEY juga dipetakan ke parameter input Bicep atau definisi kait, azd secara otomatis menyelesaikan nilai rahasia saat runtime.