Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Zmienne tajne to zaszyfrowane zmienne, których można używać w potokach bez uwidaczniania ich wartości. Użyj zmiennych tajnych dla informacji prywatnych, takich jak hasła, identyfikatory i inne dane identyfikujące, których nie chcesz ujawniać w potoku. Zmienne tajne są szyfrowane w stanie spoczynku z 2048-bitowym kluczem RSA i są dostępne w agencie do użycia przez zadania i skrypty.
Dlaczego zmienne tajne mają znaczenie: Ochrona poufnych poświadczeń w potokach ciągłej integracji/ciągłego wdrażania ma kluczowe znaczenie. Bezpieczne przechowywanie wpisów tajnych zapobiega nieautoryzowanemu dostępowi do poufnych zasobów, zmniejsza ryzyko ujawnienia poświadczeń w dziennikach kompilacji i zapewnia zgodność z najlepszymi rozwiązaniami w zakresie zabezpieczeń. Zmienne tajne zapewniają, że tylko autoryzowane potoki i zadania mogą uzyskiwać dostęp do poufnych danych, chroniąc stan zabezpieczeń organizacji.
Zalecane sposoby ustawiania zmiennych tajnych znajdują się w interfejsie użytkownika, w grupie zmiennych i w grupie zmiennych z usługi Azure Key Vault. Można również ustawić tajne zmienne w skrypcie za pomocą polecenia rejestrowania, ale ta metoda nie jest zalecana, ponieważ każda osoba, która może uzyskać dostęp do pipeline'u, może również zobaczyć zmienną tajną.
Zmienne tajne ustawione w interfejsie użytkownika ustawień potoku dla potoku są ograniczone do potoku, w którym zostały ustawione. Użyj grup zmiennych, aby udostępniać zmienne tajne między potokami.
Tajna zmienna w interfejsie użytkownika
Ustaw zmienne tajne w edytorze potoków podczas edytowania pojedynczego potoku. Szyfruj i ustaw zmienną potoku jako tajną, wybierając ikonę blokady.
Ustaw zmienne tajne w taki sam sposób dla języka YAML i klasycznego.
Aby ustawić wpisy tajne w interfejsie internetowym, wykonaj następujące kroki:
- Przejdź do strony Potoki , wybierz odpowiedni potok, a następnie wybierz pozycję Edytuj.
- Znajdź zmienne dla tego przepływu danych.
- Dodaj lub zaktualizuj zmienną.
- Wybierz opcję Zachowaj tę wartość w tajemnicy, aby przechowywać zmienną w zaszyfrowany sposób.
- Zapisz potok.
Zmienne tajne są szyfrowane w spoczynku przy użyciu 2048-bitowego klucza RSA. Wpisy tajne są dostępne w agencie dla zadań i skryptów do użycia. Uważaj, kto ma dostęp do zmiany projektu.
Ważne
Staramy się ukrywać tajemnice przed pojawieniem się w wynikach usługi Azure Pipelines, ale nadal należy zachować środki ostrożności. Nigdy nie wyświetlaj sekretów jako danych wyjściowych. Niektóre systemy operacyjne rejestrują argumenty wiersza poleceń. Nigdy nie przekazuj tajemnic w linii poleceń. Zamiast tego, sugerujemy, aby przypisać swoje sekrety do zmiennych środowiskowych.
Nigdy nie maskujemy podciągów tajnych danych. Jeśli na przykład "abc123" jest ustawione jako tajne hasło, "abc" nie jest maskowane w dziennikach. Jest to unikanie maskowania wpisów tajnych na zbyt szczegółowym poziomie, dzięki czemu dzienniki są nieczytelne. Z tego powodu wpisy tajne nie powinny zawierać danych strukturalnych. Jeśli na przykład "{ "foo": "bar" }" jest ustawiony jako wpis tajny, "bar" nie jest maskowany z dzienników.
W przeciwieństwie do zmiennej normalnej nie są one automatycznie odszyfrowywane do zmiennych środowiskowych dla skryptów. Musisz jawnie mapować zmienne tajne.
Używanie zmiennej tajnej w interfejsie użytkownika
Aby odwołać się do zmiennych tajnych w potokach YAML, przypisz je jako zmienne środowiskowe. W tym przykładzie interfejs użytkownika definiuje dwie zmienne tajne, SecretOne i SecretTwo. Wartość SecretOne wynosi foo, a wartość SecretTwo to bar.
steps:
- powershell: |
Write-Host "My first secret variable is $env:FOO_ONE"
$env:FOO_ONE -eq "foo"
env:
FOO_ONE: $(SecretOne)
- bash: |
echo "My second secret variable: $FOO_TWO"
if [ "$FOO_TWO" = "bar" ]; then
echo "Strings are equal."
else
echo "Strings are not equal."
fi
env:
FOO_TWO: $(SecretTwo)
Dane wyjściowe rurociągu:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Uwaga
Usługa Azure Pipelines podejmuje próbę maskowania wpisów tajnych podczas emitowania danych do dzienników potoku, dzięki czemu mogą być widoczne dodatkowe zmienne i dane maskowane w danych wyjściowych i dziennikach, które nie są ustawione jako wpisy tajne.
Aby uzyskać bardziej szczegółowy przykład, zobacz Definiowanie zmiennych.
Ustawianie zmiennej tajnej w grupie zmiennych
Wpisy tajne można dodawać do grupy zmiennych lub łączyć wpisy tajne z istniejącej usługi Azure Key Vault.
Tworzenie nowych grup zmiennych
Wybierz Potoki>Biblioteka>+ Grupa zmiennych.
Wprowadź nazwę i opis grupy.
Opcjonalnie: przenieś przełącznik, aby połączyć wpisy tajne z usługi Azure Key Vault jako zmienne. Aby uzyskać więcej informacji, zobacz Używanie tajemnic usługi Azure Key Vault.
Wprowadź nazwę i wartość dla każdej zmiennej do uwzględnienia w grupie, klikając + Dodaj dla każdej z nich.
Aby zabezpieczyć zmienną, wybierz ikonę blokady na końcu wiersza.
Po zakończeniu dodawania zmiennych wybierz pozycję Zapisz.
Grupy zmiennych są zgodne z modelem zabezpieczeń biblioteki.
Łączenie sekretów z Azure Key Vault
Możesz utworzyć grupy zmiennych i połączyć je z istniejącym Key Vault, co umożliwia mapowanie do sekretów przechowywanych w magazynie kluczy. Tylko tajne nazwy są mapowane na grupę zmiennych, a nie tajne wartości. Potok przetwarzania danych uruchamia łącze do grupy zmiennych i pobiera najnowsze wartości tajne z magazynu. Aby uzyskać więcej informacji, zobacz Połączyć grupę zmiennych z tajemnicami w usłudze Azure Key Vault.
Korzystanie z zadania usługi Azure Key Vault
Użyj zadania Azure Key Vault, aby umieścić tajemnice w potoku. Korzystając z tego zadania, Twój potok może połączyć się z Twoją usługą Key Vault i pobrać sekrety do użycia jako zmienne potoku.
W edytorze potoku wybierz pozycję Pokaż asystenta , aby rozwinąć panel asystenta.
vaultWyszukaj i wybierz zadanie Key Vault.
Aby uzyskać więcej informacji na temat zadania Key Vault, zobacz Używanie sekretów w Azure Key Vault w usłudze Azure Pipelines.
Ustawianie zmiennej tajnej w skrypie przy użyciu poleceń rejestrowania
Użyj polecenia rejestrowania task.setvariable, aby ustawić zmienne w skryptach powłoki Bash i programu PowerShell. Ta metoda jest najmniej bezpiecznym sposobem pracy ze zmiennymi tajnymi, ale może być przydatna do debugowania. Zalecane sposoby ustawiania zmiennych tajnych znajdują się w interfejsie użytkownika, w grupie zmiennych i w grupie zmiennych z usługi Key Vault.
Ostrzeżenie
Ryzyko bezpieczeństwa: ustawianie zmiennych tajnych w skryptach przy użyciu poleceń rejestrowania jest z natury mniej bezpieczne. Każdy, kto ma dostęp do definicji potoku, dzienników kompilacji lub kodu źródłowego, może zobaczyć polecenie rejestrowania i może potencjalnie ujawnić tajny klucz. Ta metoda jest używana tylko do celów debugowania w bezpiecznych, zaufanych środowiskach. Zawsze preferuj konfigurację opartą na interfejsie użytkownika, grupy zmiennych lub integrację usługi Azure Key Vault w scenariuszach produkcyjnych.
Aby ustawić zmienną jako skrypt przy użyciu polecenia rejestrowania, przekaż flagę issecret .
Gdy issecret jest ustawione na true, wartość zmiennej zostanie zapisana w trybie tajnym i zamaskowana w dziennikach.
Uwaga
Usługa Azure Pipelines podejmuje próbę maskowania wpisów tajnych podczas emitowania danych do dzienników potoku, dzięki czemu mogą być widoczne dodatkowe zmienne i dane maskowane w danych wyjściowych i dziennikach, które nie są ustawione jako wpisy tajne.
Ustaw zmienną tajną mySecretVal.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Pobierz zmienną tajną mySecretVal.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Dane wyjściowe zmiennej tajnej w powłoce bash.
Aby uzyskać więcej informacji, zobacz ustawianie zmiennych i używanie ich w skryptach.