Azure Key Vault úkol
Ujistěte se, že připojení ke službě Azure má k trezoru aspoň oprávnění získat a Zobrazit seznam . Tato oprávnění můžete nastavit v Azure Portal:
- otevřete okno Nastavení pro trezor, zvolte zásady přístupua pak přidat nový.
- V okně Přidat zásadu přístupu zvolte Vybrat objekt zabezpečení a vyberte instanční objekt pro váš klientský účet.
- V okně Přidat zásadu přístupu vyberte tajná oprávnění a zkontrolujte, že je zaškrtnuté políčko načísta zobrazit .
- Kliknutím na tlačítko OK uložte změny.
Poznámka
Pokud používáte agenta hostovaného Microsoftem, musíte do brány firewall přidat rozsah IP adres agenta hostovaného Microsoft. Získejte týdenní Seznam rozsahů IP adres z týdenního souboru JSON, který je publikovaný v každé středu. Nové rozsahy IP adres začnou platit od pondělí. Další informace najdete v tématu agenti hostované v Microsoftu. pokud chcete najít rozsahy ip adres, které jsou potřeba pro vaši organizaci Azure DevOps, přečtěte si, jak identifikovat možné rozsahy ip adres pro agenty hostované microsoftem.
Fragment YAML
# Azure Key Vault
# Download Azure Key Vault secrets
- task: AzureKeyVault@2
inputs:
connectedServiceName: # Azure subscription
keyVaultName: # Name of existing key vault
secretsFilter: '*' # Downloads all secrets for the key vault
runAsPreJob: true # Runs before the job starts
Argumenty
| Parametr | Popis |
|---|---|
connectedServiceNamePředplatné Azure |
Požadovanou Vyberte připojení služby pro předplatné Azure, které obsahuje instanci Azure Key Vault, nebo vytvořte nové připojení. Další informace |
keyVaultNameKey Vault |
Požadovanou Vyberte název Azure Key Vault, ze kterého se budou tajně stahovat. |
secretsFilterFiltr tajných kódů |
Požadovanou Čárkami oddělený seznam názvů tajných kódů ke stažení nebo * ke stažení všech tajných kódů z vybraného trezoru klíčů. Výchozí hodnota: * |
runAsPreJobZpřístupnění tajných kódů pro celou úlohu |
Požadovanou Spusťte úlohu před zahájením provádění úlohy. Zveřejňuje tajné kódy pro všechny úlohy v rámci úlohy, nikoli jenom úkoly, které následují. Výchozí hodnota: false |
| Parametr | Popis |
|---|---|
connectedServiceNamePředplatné Azure |
Požadovanou Vyberte připojení služby pro předplatné Azure, které obsahuje instanci Azure Key Vault, nebo vytvořte nové připojení. Další informace |
keyVaultNameKey Vault |
Požadovanou Vyberte název Azure Key Vault, ze kterého se budou tajně stahovat. |
secretsFilterFiltr tajných kódů |
Požadovanou Čárkami oddělený seznam názvů tajných kódů ke stažení nebo * ke stažení všech tajných kódů z vybraného trezoru klíčů. Výchozí hodnota: * |
Poznámka
Hodnoty se načítají jako řetězce. Pokud je například tajný kód s názvem ConnectionString, vytvoří se proměnná úlohy s nejnovější hodnotou příslušného tajného kódu načteného z trezoru klíčů Azure. Tato proměnná je pak k dispozici v následujících úlohách.
Pokud je hodnota načtená z trezoru certifikát (například soubor PFX), proměnná úlohy bude obsahovat obsah souboru PFX ve formátu řetězce. K načtení souboru PFX z proměnné úlohy můžete použít následující kód PowerShellu:
$kvSecretBytes = [System.Convert]::FromBase64String($(PfxSecret))
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
Pokud bude soubor certifikátu uložen místně na počítači, je vhodné ho zašifrovat pomocí hesla:
#Get the file created
$password = 'your password'
$protectedCertificateBytes = $certCollection.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Pkcs12, $password)
$pfxPath = [Environment]::GetFolderPath("Desktop") + "\MyCert.pfx"
[System.IO.File]::WriteAllBytes($pfxPath, $protectedCertificateBytes)
Další informace najdete v tématu Začínáme s Azure Key Vault certifikáty.
Open source
Tato úloha je open source v GitHub. Názory a příspěvky jsou vítány.
Časté otázky
Při forbidden získávání přihlašovacích údajů z Azure Key Vault se zobrazí chyba kanálů
K tomu dochází, pokud v trezoru klíčů Azure chybí požadovaná oprávnění. Pokud chcete tento problém vyřešit, přidejte zásadu přístupu se správnými oprávněními.
Potřebuji agenta?
Potřebujete aspoň jednoho agenta , aby bylo možné spustit sestavení nebo vydání.
Mám problémy. Jak je mohu řešit?
Viz řešení potíží při sestavování a vydávání.
Nemůžu vybrat výchozí fond agentů a Build nebo Release nejde zařadit do fronty. Návody opravit?
Viz fondy agentů.
úloha nabízení NuGet push selhala s následující chybou: "chyba: nepovedlo se získat certifikát místního vystavitele". Jak mohu tuto situaci opravit?
To může být opraveno přidáním důvěryhodného kořenového certifikátu. Můžete přidat NODE_EXTRA_CA_CERTS=file proměnnou prostředí do svého agenta sestavení nebo můžete přidat NODE.EXTRA.CA.CERTS=file proměnnou úlohy do svého kanálu. Další podrobnosti o této proměnné naleznete v dokumentaci kNode.js . Pokyny k nastavení proměnné v kanálu najdete v tématu nastavení proměnných v kanálu .
Nemůžu se připojit k Key Vault z Azure DevOps.
K tomu dojde, když brána firewall Key Vault není správně nakonfigurovaná. Ujistěte se, že fond agentů a Datacenter (TFS) má přístup k trezoru klíčů. Ujistěte se, že jsou povolené rozsahy IP adres agenta pro agenty hostované Microsoftem .
Azure Pipelines
Přehled
Pomocí této úlohy můžete stahovat tajné kódy, jako jsou ověřovací klíče, klíče účtu úložiště, šifrovací klíče dat. Soubory PFX a hesla z instance Azure Key Vault . Úkol lze použít k načtení nejnovějších hodnot všech nebo podmnožiny tajných kódů z trezoru a jejich nastavení jako proměnných, které lze použít v následných úkolech kanálu. Úkol je založený na uzlu a spolupracuje s agenty v systémech Linux, macOS a Windows.
Požadavky
Úloha má následující požadavky:
- předplatné Azure propojené s Azure Pipelines nebo Team Foundation Server pomocí připojení služby Azure Resource Manager.
- Azure Key Vault obsahující tajné kódy.
Můžete vytvořit Trezor klíčů:
- V Azure Portal
- Pomocí Azure PowerShell
- Pomocí Azure CLI
Přidání tajných kódů do trezoru klíčů:
Pomocí rutiny PowerShellu set-AzureKeyVaultSecret. Pokud tajný kód neexistuje, tato rutina ho vytvoří. Pokud tajný klíč už existuje, vytvoří tato rutina novou verzi tohoto tajného klíče.
Pomocí Azure CLI. Pokud chcete do trezoru klíčů přidat tajný klíč, například tajný klíč s názvem SQLPassword s hodnotou PA $ $w 0rd, zadejte:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'Pa$$w0rd'
Když chcete získat přístup k tajným klíčům: