如何通过CLI或REST为Azure自动化账户启用Managed Identity?
如何通过Azure CLI或REST API为Azure自动化Runbook启用托管标识
当然可以,你完全可以通过Azure CLI或者REST API完成Runbook托管标识的启用与配置,具体操作步骤如下:
Azure CLI 操作步骤
1. 启用系统分配的托管标识
使用以下命令为自动化账户启用系统分配的托管标识,执行后会返回该标识的主体ID(principalId)等信息:
az automation account identity assign --resource-group <你的资源组名称> --name <你的自动化账户名称>
2. 为托管标识分配权限
Runbook需要操作Azure资源,所以要给托管标识分配对应的角色权限,比如分配资源组的Contributor角色:
az role assignment create --assignee <上一步返回的principalId> --role "Contributor" --scope "/subscriptions/<你的订阅ID>/resourceGroups/<目标资源组名称>"
如果需要使用用户分配的托管标识,可以在启用时指定标识ID:
az automation account identity assign --resource-group <资源组名> --name <自动化账户名> --identities "/subscriptions/<订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<用户分配标识名>"
REST API 操作步骤
1. 启用系统分配的托管标识
发送PATCH请求到自动化账户的管理端点,需要使用Azure AD令牌进行授权:
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}?api-version=2023-11-01
请求体(JSON格式):
{ "identity": { "type": "SystemAssigned" } }
2. 为托管标识分配角色权限
发送POST请求到角色分配端点,完成权限配置:
POST https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01
请求体(JSON格式,替换占位符为实际值):
{ "properties": { "roleDefinitionId": "/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{角色定义ID}", "principalId": "<托管标识的principalId>", "principalType": "ServicePrincipal" } }
若要启用用户分配的托管标识,只需将请求体中的identity部分修改为:
{ "identity": { "type": "UserAssigned", "userAssignedIdentities": { "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{用户分配标识名}": {} } } }
内容的提问来源于stack exchange,提问作者Chris Hayes
相关产品推荐
相关产品推荐

