Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Tajné proměnné jsou šifrované proměnné, které můžete použít v potrubích bez odhalení jejich hodnoty. Tajné proměnné použijte pro soukromé informace, jako jsou hesla, ID a další identifikační data, která nechcete v kanálu vystavit. Tajné proměnné se šifrují v klidovém stavu pomocí 2048bitového klíče RSA a jsou k dispozici v agentovi pro úlohy a skripty, které se mají použít.
Proč záleží na tajných proměnných: Ochrana citlivých přihlašovacích údajů v kanálech CI/CD je důležitá. Uložením tajných kódů bezpečně zabráníte neoprávněnému přístupu k citlivým prostředkům, snížíte riziko vystavení přihlašovacích údajů v protokolech sestavení a zachováte dodržování osvědčených postupů zabezpečení. Tajné proměnné zajišťují, že k citlivým datům mají přístup jenom autorizované pipeline a úlohy, které chrání bezpečnostní situaci vaší organizace.
Doporučené způsoby nastavení tajných proměnných jsou v uživatelském rozhraní, ve skupině proměnných a ve skupině proměnných ze služby Azure Key Vault. Tajné proměnné můžete také nastavit ve skriptu pomocí příkazu protokolování, ale tato metoda se nedoporučuje, protože tyto proměnné mohou vidět všichni, kdo mají přístup k vašemu kanálu.
Tajné proměnné, které jste nastavili v uživatelském rozhraní nastavení kanálu pro kanál, jsou omezeny na kanál, ve kterém je nastavíte. Skupiny proměnných slouží ke sdílení tajných proměnných mezi kanály.
Skrytá proměnná v uživatelském rozhraní
Při úpravě jednotlivých potrubí nastavte tajné proměnné v editoru potrubí. Zašifrujte proměnnou kanálu a udělejte ji tajnou výběrem ikony zámku.
Nastavte tajné proměnné stejným způsobem pro YAML a Classic.
Pokud chcete nastavit tajné kódy ve webovém rozhraní, postupujte takto:
- Přejděte na stránku Kanály , vyberte příslušný kanál a pak vyberte Upravit.
- Vyhledejte proměnné pro tento kanál.
- Přidejte nebo aktualizujte proměnnou.
- Vyberte možnost Udržet tuto hodnotu v tajnosti, aby se proměnná ukládala šifrovaně.
- Uložte potrubí.
Tajné proměnné se šifrují v klidovém stavu pomocí 2048bitového klíče RSA. Tajné kódy jsou k dispozici v agentu pro úlohy a skripty, které se mají použít. Buďte opatrní, kdo má přístup ke změně vašeho potrubí.
Důležité
Snažíme se maskovat tajné kódy, které se zobrazují ve výstupu Služby Azure Pipelines, ale přesto je potřeba provést preventivní opatření. Nikdy nevypisujte tajemství jako výstup. Některé operační systémy zaznamenávají argumenty příkazového řádku. Nikdy nepředávejte tajné kódy na příkazovém řádku. Místo toho navrhujeme, abyste své tajnosti namapovali na proměnné prostředí.
Nikdy nezamaskujeme podřetěžky tajných kódů. Pokud je například "abc123" nastaven jako tajný kód, "abc" není maskován z protokolů. Tím se vyhnete maskování tajných kódů na příliš podrobné úrovni, aby protokoly byly nečitelné. Z tohoto důvodu by tajné kódy neměly obsahovat strukturovaná data. Pokud je například "{ "foo": "bar" }" nastaven jako tajný kód, "bar" není maskován z protokolů.
Na rozdíl od normální proměnné nejsou automaticky dešifrovány do proměnných prostředí pro skripty. Musíte explicitně mapovat tajné proměnné.
Použití tajné proměnné v uživatelském rozhraní
Pokud chcete odkazovat na tajné proměnné v kanálech YAML, namapujte je jako proměnné prostředí. V tomto příkladu uživatelské rozhraní definuje dvě tajné proměnné SecretOne a SecretTwo. Hodnota SecretOne je fooa hodnota SecretTwo je 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)
Výstupy kanálu:
My first secret variable is ***
True
My second secret variable: ***
Strings are equal.
Poznámka:
Azure Pipelines se snaží maskovat tajemství při zaznamenávání dat do protokolů pipeline, takže můžete vidět, že další proměnné a data jsou maskována ve výstupu a protokolech, přestože nejsou označena jako tajemství.
Podrobnější příklad najdete v tématu Definice proměnných.
Nastavení tajné proměnné ve skupině proměnných
Tajné kódy můžete přidat do skupiny proměnných nebo propojit tajné kódy z existující služby Azure Key Vault.
Vytvoření nových skupin proměnných
Vyberte Kanály>Knihovnu>+ skupinu proměnných.
Zadejte název a popis skupiny.
Volitelné: Přesuňte přepínač pro propojení tajných kódů ze služby Azure Key Vault jako proměnných. Další informace najdete v tématu Použití tajných kódů služby Azure Key Vault.
Zadejte název a hodnotu pro každou proměnnou, která se má zahrnout do skupiny, a zvolte + Přidat pro každou z nich.
Pokud chcete proměnnou zabezpečit, zvolte ikonu zámku na konci řádku.
Po dokončení přidávání proměnných vyberte Uložit.
Skupiny proměnných se řídí modelem zabezpečení knihovny.
Zpřístupnit tajemství ze služby Azure Key Vault
Můžete vytvořit skupiny proměnných a propojit je s existující službou Key Vault, abyste je mohli mapovat na tajné kódy uložené v trezoru klíčů. Pouze tajné názvy se mapují do skupiny proměnných, nikoli tajné hodnoty. Kanál spustí propojení se skupinou proměnných a načte nejnovější hodnoty tajných kódů z trezoru. Další informace najdete v tématu Propojení skupiny proměnných s tajnými kódy ve službě Azure Key Vault.
Použití úlohy služby Azure Key Vault
Pomocí úlohy Služby Azure Key Vault zahrňte do potrubí tajemství. Pomocí této úlohy se váš kanál může připojit ke službě Key Vault a načíst tajné kódy, které se použijí jako proměnné kanálu.
V editoru kanálů vyberte Zobrazit asistenta a rozbalte panel asistenta.
Vyhledejte
vaulta vyberte úlohu služby Key Vault.
Další informace o úloze služby Key Vault najdete v tématu Použití tajných kódů služby Azure Key Vault v Azure Pipelines.
Nastavení tajné proměnné ve skriptu pomocí příkazů protokolování
task.setvariable Pomocí příkazu protokolování můžete nastavit proměnné ve skriptech PowerShellu a Bash. Tato metoda je nejméně bezpečný způsob práce s tajnými proměnnými, ale může být užitečný pro ladění. Doporučené způsoby nastavení tajných proměnných jsou v uživatelském rozhraní, ve skupině proměnných a ve skupině proměnných ze služby Key Vault.
Výstraha
Riziko zabezpečení: Nastavení tajných proměnných ve skriptech pomocí příkazů protokolování je ze své podstaty méně bezpečné. Každý, kdo má přístup k definici kanálu, protokolům sestavení nebo zdrojovému kódu, může zobrazit příkaz protokolování a potenciálně zpřístupnit tajný klíč. Tuto metodu použijte pouze pro účely ladění v zabezpečených důvěryhodných prostředích. Vždy upřednostňujte konfiguraci založenou na uživatelském rozhraní, skupinám proměnných nebo integraci služby Azure Key Vault pro produkční scénáře.
Pokud chcete nastavit proměnnou jako skript pomocí příkazu protokolování, předejte issecret příznak.
Pokud issecret je nastavena hodnota true, hodnota proměnné se uloží jako tajný kód a maskuje se z protokolů.
Poznámka:
Azure Pipelines se snaží maskovat tajemství při zaznamenávání dat do protokolů pipeline, takže můžete vidět, že další proměnné a data jsou maskována ve výstupu a protokolech, přestože nejsou označena jako tajemství.
Nastavte tajnou proměnnou mySecretVal.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
Získejte tajnou proměnnou mySecretVal.
- bash: |
echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
echo $(mySecretVal)
Výstup tajné proměnné v Bash.
Další informace najdete v tématu nastavení a použití proměnných ve skriptech.