Sdílet prostřednictvím


Nastavení tajných proměnných

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Tajné proměnné jsou šifrované proměnné, které můžete použít v kanálech bez zveřejnění jejich hodnoty. Tajné proměnné se dají použít pro soukromé informace, jako jsou hesla, ID a další identifikační data, která byste nechtěli vystavit v kanálu. 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.

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 tajný kód uvidí také každý, kdo má přístup k vašemu kanálu.

Tajné proměnné nastavené v uživatelském rozhraní nastavení kanálu pro kanál jsou vymezeny na kanál, ve kterém jsou nastavené. Skupiny proměnných můžete použít ke sdílení tajných proměnných mezi kanály.

Proměnná tajného kódu v uživatelském rozhraní

Proměnné tajných kódů můžete nastavit v editoru kanálů při úpravách jednotlivých kanálů. Šifrujete a nastavíte tajný kód proměnné kanálu výběrem ikony zámku.

Proměnné tajných kódů nastavíte stejným způsobem pro YAML a Classic.

Pokud chcete nastavit tajné kódy ve webovém rozhraní, postupujte takto:

  1. Přejděte na stránku Kanály , vyberte příslušný kanál a pak vyberte Upravit.
  2. Vyhledejte proměnné pro tento kanál.
  3. Přidejte nebo aktualizujte proměnnou.
  4. Vyberte možnost Zachovat tento tajný kód hodnoty, aby se proměnná ukládal šifrovaným způsobem.
  5. Uložte kanál.

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. Dávejte pozor na to, kdo má přístup ke změně kanálu.

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 neodhalujte tajné kódy jako výstup. Některé argumenty příkazového řádku protokolu operačních systémů. Nikdy nepředávejte tajné kódy na příkazovém řádku. Místo toho doporučujeme namapovat tajné kódy 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í

Proměnnou tajného kódu musíte mapovat jako proměnné prostředí, abyste na ně odkazovali v kanálech YAML. V tomto příkladu jsou definovány dvě tajné proměnné v uživatelském rozhraní SecretOne a SecretTwo. Hodnota SecretOne je foo a 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 tajné kódy při generování dat do protokolů kanálu, takže můžete vidět další proměnné a data maskovaná ve výstupu a protokolech, které nejsou nastavené jako tajné kódy.

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

  1. Vyberte skupinu Pipelines>Library+ Variable (Knihovna> kanálů+ proměnná).

    Snímek obrazovky s tlačítkem Přidat skupinu proměnných zvýrazněným červeným polem

  2. Zadejte název a popis skupiny.

  3. Volitelné: Přesuňte přepínač pro propojení tajných kódů ze služby Azure Key Vault jako proměnné. Další informace najdete v tématu Použití tajných kódů služby Azure Key Vault.

  4. 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.

  5. Pokud chcete proměnnou zabezpečit, zvolte na konci řádku ikonu zámku.

  6. Po dokončení přidávání proměnných vyberte Uložit.

    Snímek obrazovky s uložením skupiny proměnných

Skupiny proměnných se řídí modelem zabezpečení knihovny.

Můžete vytvořit skupiny proměnných a propojit je s existujícím trezorem klíčů Azure, což vám umožní namapovat na tajné kódy uložené v trezoru klíčů. Pouze názvy tajných kódů se mapují na skupinu proměnných, nikoli na hodnoty tajných kódů. 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

Úlohu služby Azure Key Vault můžete použít k zahrnutí tajných kódů do kanálu. Tato úloha umožňuje kanálu připojit se ke službě Azure Key Vault a načíst tajné kódy, které se použijí jako proměnné kanálu.

  1. V editoru kanálů vyberte Zobrazit asistenta a rozbalte panel asistenta.

  2. Vyhledejte vault a vyberte úlohu služby Azure Key Vault.

    Přidejte úlohu služby Azure Key Vault.

V Azure DevOps Serveru 2019 a 2020 se v současné době nepodporuje možnost Zpřístupnit tajné kódy pro celou úlohu .

Další informace o úloze služby Azure 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í

Pomocí příkazu protokolování můžete task.setvariable 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 Azure Key Vault.

Pokud chcete nastavit proměnnou jako skript pomocí příkazu protokolování, musíte příznak předat issecret .

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 tajné kódy při generování dat do protokolů kanálu, takže můžete vidět další proměnné a data maskovaná ve výstupu a protokolech, které nejsou nastavené jako tajné kódy.

Nastavte proměnnou mySecretValtajného kódu .

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"

Získejte proměnnou mySecretValtajného kódu .

- bash: |
    echo "##vso[task.setvariable variable=mySecretVal;issecret=true]secretvalue"
- bash: |
    echo $(mySecretVal)

Výstup proměnné tajného kódu v Bash.

Snímek obrazovky s výstupem proměnné Bash

Přečtěte si další informace o nastavení a používání proměnných ve skriptech.