AzureKeyVault@2 - Azure Key Vault v2 工作
使用此工作來下載秘密,例如驗證金鑰、記憶體帳戶金鑰、資料加密金鑰、 。來自 Azure Key Vault 實例的 PFX 檔案和密碼。 此工作可用來從保存庫擷取所有或秘密子集的最新值,並將其設定為可用於管線後續工作的變數。 工作是以節點為基礎,可與Linux、macOS和Windows上的代理程式搭配使用。
語法
# Azure Key Vault v2
# Download Azure Key Vault secrets.
- task: AzureKeyVault@2
inputs:
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
KeyVaultName: # string. Required. Key vault.
SecretsFilter: '*' # string. Required. Secrets filter. Default: *.
#RunAsPreJob: false # boolean. Make secrets available to whole job. Default: false.
輸入
azureSubscription
-
Azure 訂用帳戶
輸入別名:ConnectedServiceName
。
string
。 必填。
針對包含 Azure Key Vault 實例的 Azure 訂用帳戶選取服務連線,或建立新的連線。 深入瞭解。
KeyVaultName
-
金鑰保存庫
string
。 必填。
包含要下載之秘密的 Azure Key Vault 名稱。
SecretsFilter
-
秘密篩選
string
。 必填。 預設值:*
。
根據輸入的值下載秘密名稱。 此值可以是預設值,可從選取的金鑰保存庫下載所有秘密,或以逗號分隔的秘密名稱清單。
RunAsPreJob
-
讓整個作業可以使用秘密
boolean
。 預設值:false
。
在作業執行開始之前執行工作。 將秘密公開給作業中的所有工作,而不只是遵循此秘密的工作。
工作控制選項
除了工作輸入之外,所有工作都有控制選項。 如需詳細資訊,請參閱 控制項選項和一般工作屬性。
輸出變數
沒有。
言論
2.0 版的新功能:已新增對 %3B的支援,%5D 秘密。
使用此工作來下載秘密,例如驗證金鑰、記憶體帳戶金鑰、資料加密金鑰、 。來自 Azure Key Vault 實例的 PFX 檔案和密碼。 此工作可用來從保存庫擷取所有或秘密子集的最新值,並將其設定為可用於管線後續工作的變數。 工作是以節點為基礎,可與Linux、macOS和Windows上的代理程式搭配使用。
我在從 Azure Key Vault 取得認證時,在管線上收到 forbidden
錯誤
如果 Azure 金鑰保存庫中缺少必要的許可權,就會發生這種情況。 若要解決此問題,新增具有正確許可權的存取原則。
先決條件
此工作具有下列必要條件:
- 使用 Azure Resource Manager 服務連線連結至 Azure Pipelines 或 Team Foundation Server 的 Azure 訂用帳戶。
- 包含秘密 Azure Key Vault。
您可以建立金鑰儲存庫:
- 在 Azure 入口網站 中
- 使用 azure PowerShell
- 使用 azure CLI
將秘密新增至金鑰儲存庫:
使用 PowerShell Cmdlet Set-AzKeyVaultSecret。 如果秘密不存在,此 Cmdlet 會建立它。 如果秘密已經存在,此 Cmdlet 會建立該密碼的新版本。
使用 Azure CLI。 若要將秘密新增至密鑰保存庫,例如名為 SQLPassword 的秘密,其值 PlaceholderPassword,請輸入:
az keyvault secret set --vault-name 'ContosoKeyVault' --name 'SQLPassword' --value 'PlaceholderPassword'
當您要存取秘密時:
請確定 Azure 服務連線至少有 取得,並 列出保存庫 許可權。 您可以在 Azure 入口網站中設定這些權限:
- 開啟保存庫的 [設定] 刀鋒視窗,選擇 [存取原則],然後 [新增]。
- 在 [[新增存取原則] 刀鋒視窗中,選擇 [選取主體],然後選取用戶端帳戶的服務主體。
- 在 [新增存取原則] 刀鋒視窗中,選擇 [秘密許可權],並確定已核取 [取得] 和 [列表]。
- 選擇 [確定] 來儲存變更。
注意
如果您使用Microsoft裝載的代理程式,您必須將Microsoft裝載代理程式的IP範圍新增至防火牆。 從每周 JSON 檔案
注意
值會擷取為字串。 例如,如果有名為 connectionString的秘密,則會使用從 Azure 密鑰保存庫擷取之個別秘密的最新值來建立工作變數 connectionString
。 此變數接著可在後續工作中取得。
如果從保存庫擷取的值是憑證(例如 PFX 檔案),工作變數會以字串格式包含 PFX 的內容。 您可以使用下列 PowerShell 程序代碼,從工作變數擷取 PFX 檔案:
$kvSecretBytes = [System.Convert]::FromBase64String("$(PfxSecret)")
$certCollection = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2Collection
$certCollection.Import($kvSecretBytes,$null,[System.Security.Cryptography.X509Certificates.X509KeyStorageFlags]::Exportable)
如果憑證檔案將儲存在本機計算機上,最好是使用密碼加密:
#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)
如需詳細資訊,請參閱 開始使用 Azure Key Vault 憑證。
例子
要求
要求 | 描述 |
---|---|
管線類型 | YAML、傳統組建、傳統版本 |
執行於 | Agent、DeploymentGroup |
需求 | 沒有 |
功能 | 此工作不符合作業中後續工作的任何需求。 |
命令限制 | 任何 |
Settable 變數 | 任何 |
代理程式版本 | 2.182.1 或更新 |
工作類別 | 部署 |