Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Developer CLI (azd) obsługuje odwoływanie się do sekretów Azure Key Vault w środowisku projektowym (pliku .env). Zapewnia to bezpieczną opcję pracy z poufnymi danymi w azd projektach. Sekrety te integrują się z różnymi azd funkcjami, takimi jak haki i konfiguracje potoków CI/CD.
Wymagania wstępne
- Azure Developer CLI zainstalowany.
- Instancja Azure Key Vault, do której masz dostęp lub masz uprawnienia do jej utworzenia.
Ustaw sekret Key Vault
Aby ustawić sekret Key Vault, uruchom azd env set-secret <name> polecenie, gdzie <name> jest kluczem w środowisku odwołującym się do sekretu Key Vault. Po ustawieniu klucza tajemnicy azd automatycznie pobiera wartość z Key Vault w następujących scenariuszach.
Parametry Bicep
Aby powiązać parametr Bicep z wartością sekretem usługi Azure Key Vault, wykonaj następujące kroki:
- Dodaj adnotację do parametru Bicep jako zabezpieczony przy użyciu słowa kluczowego
@secure(). - Utwórz mapowanie w pliku
main.parameters.json, które łączy parametr Bicep z odpowiednią nazwą klucza w środowisku odwołującym się do tajemnicy usługi Azure Key Vault.
Uwaga / Notatka
Sekrety środowiska nie są obecnie obsługiwane podczas używania tych plików parametrów Bicep (.bicepparam).
Przykład
Z poziomu projektu azd uruchom azd env set-secret MY_SECRET i postępuj zgodnie z monitami, żeby wybrać istniejący sekret Azure Key Vault lub utworzyć nowy. Po zakończeniu wykonywania polecenia klucz MY_SECRET przechowuje odwołanie do tajemnicy usługi Key Vault. Dodaj lub wybierz parametr Bicep, z którym chcesz użyć wartości i wyznaczyć go jako bezpieczny:
@secure()
param secureParameter string
Utwórz mapowanie w main.parameters.json pliku:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"secureParameter": {
"value": "${MY_SECRET}"
}
}
}
Podczas następnego uruchomienia azd up lub azd provision, azd używa wpisu tajnego usługi Azure Key Vault jako wartości parametru.
Punkty zaczepienia
azd może automatycznie pobierać sekrety Azure Key Vault, gdy uruchomiony zostanie hook. Domyślnie, gdy azd uruchamia hak, wszystkie pary klucz-wartość ze środowiska projektu (pliku .env) są ustawiane w środowisku haka. Odwołania do tajemnic usługi Key Vault nie są jednak automatycznie rozpoznawane z ich odpowiednimi wartościami.
Aby rozwiązać te odwołania, wykonaj następujące kroki:
- Utwórz mapowanie klucza ze środowiska na nowy klucz, gdzie ustalono tajny wpis usługi Key Vault.
-
secretsUżyj pola w definicji haka, aby utworzyć to mapowanie.
Przykład
W projekcie azd uruchom polecenie azd env set-secret MY_SECRET i postępuj zgodnie z instrukcjami, aby wybrać istniejącą tajemnicę w usłudze Azure Key Vault lub utworzyć nową. Po zakończeniu polecenia klucz MY_SECRET odnosi się do sekretu w usłudze Key Vault. Utwórz definicję haka odpowiednią dla systemu operacyjnego.
hooks:
preprovision:
run: 'echo ".env value: $MY_SECRET \nResolved secret: $SECRET_RESOLVE"'
shell: sh
interactive: true
secrets:
SECRET_RESOLVE: MY_SECRET
Następnym razem, gdy uruchomisz azd provision polecenie, uruchamiany jest preprovision hook i rozpoznaje MY_SECRET jako SECRET_RESOLVE.
Konfiguracja pipeline'u
azd Upraszcza proces konfigurowania ciągłej integracji dla aplikacji. Niezależnie od tego, czy używasz GitHub, czy Azure DevOps, uruchom azd pipeline config i wykonaj kroki zgodnie z instrukcjami, aby skonfigurować CI/CD.
W ramach automatycznej konfiguracji azd tworzy sekrety i zmienne dla procesu CI/CD. Możesz również zdefiniować własne zmienne i wpisy tajne przy użyciu pipeline konfiguracji w pliku azure.yaml. Nazwy, które definiujesz, odpowiadają kluczom w azd środowisku (.env). Jeśli klucz zawiera odwołanie do wpisu tajnego (akvs), azd stosuje różne zachowanie w zależności od tego, czy dodajesz go jako zmienną, czy wpis tajny:
| Metoda | Przechowywana wartość w kontekście CI/CD | Rotacja sekretów | Najlepsze dla |
|---|---|---|---|
variables |
Dokumentacja usługi Key Vault (akvs://...) |
Automatyczne — potok danych zawsze odczytuje najnowszą wartość z usługi Key Vault. | Gdy jednostka usługi CI/CD ma dostęp do odczytu z Azure Key Vault. |
secrets |
Rzeczywista wartość tajna | Ręczne — ponowne uruchamianie azd pipeline config po rotacji. |
Jeśli nie możesz przypisać dostępu do odczytu Key Vault do głównego obiektu usługi. |
Uwaga / Notatka
Gdy używasz variables programu, azd próbuje przypisać rolę dostępu do odczytu do jednostki usługi używanej przez przepływ pracy CI/CD. Jeśli nie masz wystarczających uprawnień do przypisania roli odczytu dla usługi Key Vault, operacja zakończy się niepowodzeniem. Użyj secrets zamiast tego.
Przykład
W zainicjowanym azd projekcie uruchom azd env set-secret SECURE_KEY i postępuj zgodnie z instrukcjami. Po zakończeniu polecenia azd env get-values zostanie wyświetlone odwołanie:
SECURE_KEY="akvs://faa080af-c1d8-40ad-9cce-000000000000/vivazqu-kv/SECURE-KEY-kv-secret"
Dodaj SECURE_KEY do listy variables lub secrets w 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
Po uruchomieniu azd pipeline config, SECURE_KEY ustawiana jest jako zmienna CI/CD z odwołaniem do Key Vault jako jej wartością. Jeśli SECURE_KEY jest również przypisany do parametru wejściowego Bicep lub definicji haka, azd automatycznie rozpoznaje tajną wartość podczas wykonywania.