[英]Why do I need to specify a Service Principal in Azure Resource Manager service connection in Azure DevOps?
[英]Azure Devops - Azure Resource Manager (ARM) Service Connection
我有一個 PowerShell 腳本,我想將它移到 Azure DevOps 管道中。
PowerShell 腳本執行Connect-AzAccount
,然后遍歷我的帳戶可以看到的所有約 300 個訂閱:
foreach ( $Subscription in $(Get-AzSubscription | Where-Object { $_.State -ne "Disabled" }) ) {...}
DevOps 管道使用AzurePowerShell@5
任務中的服務連接:
- task: AzurePowerShell@5
inputs:
azurePowerShellVersion: 'LatestVersion'
ConnectedServiceNameARM: test-infosec-connection
scriptPath: './_AzureWafCompliance.ps1'
pwsh: true
作業運行並成功完成,但問題是它只迭代一個訂閱,即 ARM 服務連接訂閱。
在調試中可以看到 AzurePowerShell 任務運行以下命令:
Connect-AzAccount -ServicePrincipal -Tenant xxxxxxx-xxxxxxx-xxxxxx-xxxxxx-xxxxxx -Credential System.Management.Automation.PSCredential -Environment AzureCloud @processScope
Set-AzContext -SubscriptionId xxxxxx-xxxx-xxxx-xxxx-xxxxxx -TenantId xxxx-xxxx-xxxx-xxxx-xxxxxx
我懷疑這是將我鎖定在訂閱中的第二個命令。 是否有另一種/更好的方法來解決這個問題,或者有什么方法可以更改 AzurePowershell 任務的默認行為?
Azure PowerShell 任務用於在 Z3A580F1422036776F1F0BC308938 環境中運行 PowerShell 腳本 Azure 上下文通過提供的 Azure 資源管理器服務連接進行身份驗證。
在本地,該腳本使用您的憑據運行,並且會成功,因為您可能具有所需的訪問權限。
創建 ARM 服務連接訂閱時,必須選擇 Azure 訂閱。
因此,您的 Azure PowerShell 任務僅迭代此選擇的 Azure 訂閱。
使用 ARM 服務連接管理組代替 ARM 服務連接訂閱: https://docs.microsoft.com/en-us/azure/governance/governance
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.