Azure 自动化 Runbook:使用托管标识的 Connect-AzAccount 错误

Azure Automation Runbook: Connect-AzAccount Error using Managed Identity

提问人:thedataguy 提问时间:10/28/2023 更新时间:10/30/2023 访问量:92

问:

看起来“运行方式”帐户已停用,因此我正在尝试使用托管标识与 Runbook(Azure 自动化帐户的一部分)中的 Azure 资源建立连接。

我按照这里的说明进行操作:https://learn.microsoft.com/en-us/azure/automation/add-user-assigned-identity#authenticate-access-with-user-assigned-managed-identity

法典

$azureContext = (Connect-AzAccount -Identity -Tenant $tenantId -AccountId $managedIdentityApplicationId).context  # Connect to Azure with user-assigned managed identity
$connectionResult = Set-AzContext -Tenant $tenantId -Subscription $subscriptionId -DefaultProfile $azureContext

对于 ,我正在传入用户分配的托管标识$managedIdentityApplicationIdClientId

错误

Connect-AzAccount : ManagedIdentityCredential authentication failed: **User assigned identity is currently not supported**
clientID must not be passed in request. 
Status: 400 (Bad Request)

我在这里可能错过了什么?

PowerShell Azure-Runbook

评论

1赞 Santiago Squarzon 10/28/2023
Connect-AzAccount -Identity是使用 AA 托管标识进行连接所需的全部内容。删除多余的参数。
0赞 thedataguy 10/31/2023
你是对的。我发现,在为混合辅助角色运行 Runbook 时,只能使用系统分配的托管标识。仅当在 Azure 云上运行 Runbook 时,才可以使用用户分配的托管标识。

答:

1赞 Jahnavi 10/30/2023 #1

首先,若要使用托管标识连接 Az 帐户,可以使用系统分配的托管标识以及用户分配的托管标识。

系统分配的标识:

我创建了新的自动化帐户和 Runbook。现在转到下方并启用系统分配,如图所示。IdentityAccount settings

enter image description here

现在,要使其正常工作,您需要通过单击上面的快照中的权限来授予调用的权限。Automation ContributorAzure role assignments

enter image description here

完成后,现在你将能够将 Az 帐户与 identity 参数连接,如下所示。

Connect-AzAccount -Identity

输出:

enter image description here

用户分配的标识:

现在,我创建了一个用户分配的标识,用于从自动化 Runbook 连接 Az 帐户。

enter image description here

在这里,需要启用以管理用户对 Azure 资源的访问。User Access Administrator role

enter image description here

参考您提供的 MSDoc,我尝试在我的 Runbook 中执行以下给定的脚本,并能够成功执行它。

Disable-AzContextAutosave -Scope Process
$context = (Connect-AzAccount -Identity -AccountId "xxx").context
$context = Set-AzContext -SubscriptionName $context.Subscription -DefaultProfile $context
write-output "context is $context"

enter image description here

评论

0赞 thedataguy 10/31/2023
谢谢你的详细说明,Jahnavi。我使用系统分配的托管标识对其进行了测试,它有效!我注意到,在混合辅助角色上运行 Runbook 时,只能使用系统同化托管标识。仅当在 Azure 云上运行 Runbook 时,才可以使用用户分配的托管标识。
0赞 Jahnavi 10/31/2023
这两个标识都可用于运行 Runbook,而不考虑混合辅助角色。@thedataguy