簡體   English   中英

Azure Devops - Azure 資源管理器 (ARM) 服務連接

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM