【问题标题】:Deployment of ARM: Authorization failed for template resource 'sqlARM 的部署:模板资源“sql”的授权失败
【发布时间】:2020-07-21 00:43:12
【问题描述】:

我尝试使用 PS 和 ARM 部署 SQL Server 逻辑服务器。我可以在具有贡献者权限的门户上成功创建逻辑服务器,但无法弄清楚这里出了什么问题。

我这里有 Windows 上的 PowerShell ISE。

ARM模板是从https://github.com/Azure/azure-quickstart-templates/tree/master/101-sql-logical-server/复制粘贴

//CODE
Connect-AzAccount -Credential $Credential -Tenant $tenant -Subscription $subscription

#ARM Deployment
$templateFile = "C:\Azure\SQLServer\azuredeploy.json"

New-AzResourceGroupDeployment `
  -Name SQLDeployment `
  -ResourceGroupName my-rg `
  -TemplateFile $templateFile 

错误: New-AzResourceGroupDeployment:17.35.18 - 错误:代码=InvalidTemplateDeployment;消息= 模板部署失败并出现错误:'模板资源'sql 的授权失败 vasvtmcp42o3wko/Microsoft.Authorization/11fd61df-2336-5b96-9b45-ffc7160df111' 类型 'Microsoft.Storage/storageAccounts/providers/roleAssignments'。客户'john.smith@mycompany。 com' 对象 ID 为 '1115f3de-834b-4d28-a48f-ecaad01e3111' 无权在范围 '/subscriptions/1111111 执行操作 'Microsoft.Authorization/roleAssignments/write' 11111111111111/resourceGroups/my-rg/providers/Microsoft.Storage/storageAccounts/sqlvasvtmcp42o3wko/providers/Microsoft.Authorization/roleAssignments/11111df -2336-5b96-9b45-ffc7160df168'.'.

【问题讨论】:

  • 这个问题有更新吗?你能告诉我它是否有效吗?

标签: azure-resource-manager


【解决方案1】:

错误清楚地表明正在用于该操作的帐户没有正确的角色分配来执行该操作。

the client 'john.smith@mycompany. com' with object id '1115f3de-834b-4d28-a48f-ecaad01e3111' does not have permission to perform action 'Microsoft.Authorization/roleAssignments/write' at scope '/subscriptions/1111111 11111111111111

这意味着您的下一步应该是验证分配给该用户的角色分配,然后检查该角色是否有权执行Microsoft.Authorization/roleAssignments/write

【讨论】:

  • 我拥有资源组的贡献者权利。那还不足以执行ARM?我可以在门户中创建 SQL Server,但 ARM 需要更多?
  • 在 Azure 门户中去哪里以及需要什么权限级别?为什么我不能创建具有贡献者权限的资源?读者权限级别低于贡献者? docs.microsoft.com/en-us/azure/role-based-access-control/…
  • 这是一个与最初的问题不同的问题。我已经回答了这个问题,告诉您您确实没有权限执行错误中所述的请求。至于您必须访问的具体操作 - 您需要 Microsoft.Authorization/roleAssignments/write
  • 这里是另一个资源,您可以使用它来了解您的问题以及您如何能够访问执行任务所需的特定操作。 Azure Resource Manager resource provider operations
  • 另外,我发现您通常不会将已回答的问题标记为已回答。如果我的回答对您有所帮助,请做必要的事情。谢谢,祝你好运!
【解决方案2】:

我可以在门户网站上成功创建具有贡献者权限的逻辑服务器,但无法弄清楚这里出了什么问题。

因为the template you used 将为您启用Advanced data security,这将为您的sql server 创建一个存储帐户和服务主体,然后将服务主体作为Storage Blob Data Contributor 角色自动分配给存储帐户。

要执行此操作,您的用户帐户需要是资源组或订阅中的OwnerUser Access Administrator。或者你也可以创建一个custom role,它的Microsoft.Authorization/roleAssignments/write在它的actions中,那么这个角色也可以这样做。

因此,总而言之,您有两种方法可以解决此问题。

1.导航到门户中的资源组或订阅 -> Access control (IAM) -> Add -> 将您的用户帐户添加为上述角色,例如Owner,那么它就可以正常工作了。详情见here

2.部署模板时,在azuredeploy.parameters.json文件中指定enableADSfalse。然后它不会为您启用Advanced data security,您将能够通过模板创建带有Contributor的sql server。

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "serverName": {
            "value": "GEN-UNIQUE"
        },
        "administratorLogin": {
            "value": "GEN-UNIQUE"
        },
        "administratorLoginPassword": {
            "value": "GEN-PASSWORD"
        },
        "enableADS": {
            "value": "false"
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 2022-09-29
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多