如何创建嵌套模板以将资源部署到不同Azure AD租户中的订阅?

时间:2019-06-29 11:18:25

标签: azure multi-tenant azure-resource-manager arm-template

我正在尝试创建一个嵌套的ARM模板,以将资源部署到不同Azure AD租户中的订阅。

作为指导,我使用了以下站点:Deploy Azure resources to more than one subscription or resource group

上面写着“如果指定的订阅存在于另一个Azure Active Directory租户中,则必须从另一个目录添加来宾用户。” 使我相信这应该可行。 >

我在租户A(6f16 ...)中有一个帐户,该帐户是Azure AD全局管理员,并且是分配给租户A的CSP订阅(04c5 ...)的贡献者。

我已在租户B(1ffc ...)中将该帐户添加为“新访客用户”,并将其分配为“按需付费”订阅(ebda ...)的贡献者,并且还使他成为了全局管理员来自租户B的Azure AD中。

为简单起见,我在网站上使用了第一个示例模板,该模板应在两个不同的资源组和两个不同的订阅中部署两个存储帐户。

在参数文件中,我为“ secondSubscriptionID”指示了分配给租户B(1ffc ...)的订阅ID(ebda ...),并为“ secondResourceGroup”指定了该订阅中的现有资源组:

      ...
      "secondResourceGroup": {
        "value": "existing-resource-group-in-Ten-B" },
      "secondSubscriptionID": {
        "value": "ebda..." },
      ...

我正在尝试通过Azure CLI进行部署:

az login -u <emailaddress> -p <pw>
az account set --subscription 04c5...
az group deployment create --resource-group "existing-resource-group-in-Ten-A" `
--template-file stor.temp.json --parameters @stor.para.json

我收到此错误消息:

Azure Error: CrossTenantDeploymentNotPermitted
Message: The template deployment tries to deploy resources to subscription 'ebda...'. 
However, the current tenant '6f16...' is not authorized to 
deploy resources to that subscription. 
Please see https://aka.ms/arm-template/#resources for usage details.

我在Azure门户或PowerShell中收到了相同的错误消息。我还尝试了其他租户/订阅。

我缺少一些权限吗?甚至支持吗?

是否有比这更好的将资源部署到多个租户的方法?

1 个答案:

答案 0 :(得分:0)

您登录到租户A,并将对0c45的订阅设置为租户A,但是 您在ARM模板的租户B中引用了订阅ebda

您必须登录并设置Tenant B / subscription ebda。

https://github.com/MicrosoftDocs/azure-docs-cli/issues/667

az login --username <myEmailAddress> -t <tenantIDofTenantB>
az account set --subscription <TenantBSubscriptionId>
az group deployment create ......