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 nedoporučuje se to, protože tajný kód uvidí i 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 budete muset 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 skupinu proměnných, která odkazuje na existující trezor klíčů Azure, a namapovat vybrané tajné kódy služby Key Vault na skupinu proměnných. 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.

Všechny změny stávajících tajných kódů v trezoru klíčů jsou automaticky dostupné pro všechny kanály, které používají skupinu proměnných. Pokud se ale tajné kódy přidají do nebo odstraní z trezoru, přidružené skupiny proměnných se automaticky neaktualizují. Tajné kódy musíte explicitně aktualizovat, aby byly zahrnuty do skupiny proměnných.

I když Key Vault podporuje ukládání a správu kryptografických klíčů a certifikátů v Azure, integrace skupin proměnných Azure Pipelines podporuje pouze mapování tajných kódů trezoru klíčů. Kryptografické klíče a certifikáty se nepodporují.

Poznámka:

Trezory klíčů, které používají řízení přístupu na základě role v Azure (Azure RBAC), se nepodporují.

Požadavky

  • Trezor klíčů Azure, který obsahuje vaše tajné kódy. Trezor klíčů můžete vytvořit pomocí webu Azure Portal.
  • Připojení služby Azure pro váš projekt.

Vytvoření skupiny proměnných

  1. V projektu Azure DevOps vyberte skupinu Pipelines>Library>+ Variable.
  2. Na stránce Skupiny proměnných zadejte název a volitelný popis skupiny proměnných.
  3. Povolte tajné kódy propojení z trezoru klíčů Azure jako přepínač proměnných .
  4. Vyberte koncový bod předplatného Azure a název trezoru klíčů.
  5. Povolte Azure DevOps pro přístup k trezoru klíčů výběrem možnosti Autorizovat vedle názvu trezoru.
  6. Na obrazovce Zvolit tajné kódy vyberte konkrétní tajné kódy z trezoru pro mapování na tuto skupinu proměnných a pak vyberte OK.
  7. Vyberte Uložit a uložte skupinu tajných proměnných.

Snímek obrazovky se skupinou proměnných s integrací služby Azure Key Vault

Poznámka:

Připojení ke službě Azure musí mít k trezoru klíčů alespoň oprávnění Získat a zobrazit seznam , která můžete autorizovat v předchozích krocích. Tato oprávnění můžete také poskytnout na webu Azure Portal pomocí následujícího postupu:

  1. Otevřete Nastavení trezoru klíčů a pak zvolte Konfigurace>accessu Přejít k zásadám přístupu.
  2. Pokud váš projekt Azure Pipelines není uvedený v části Aplikace s alespoň oprávněními Získat a zobrazit seznam, na stránce Zásady přístupu vyberte Vytvořit.
  3. V části Oprávnění k tajným kódům vyberte Získat a Seznam a pak vyberte Další.
  4. Vyberte instanční objekt a pak vyberte Další.
  5. Znovu vyberte Další , zkontrolujte nastavení a pak vyberte Vytvořit.

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. Jedná se o 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í, budete muset předat 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 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.