我试图通过在terrafrom中执行ARM模板来提供Azure AD Domain Service
。为了让terrafrom访问Azure,我使用以下脚本创建了service principal
:
az ad sp create-for-rbac --role="Owner" --scopes="/subscriptions/xxxxxxxx-xxxxxfca38"
,然后将客户端ID和密钥提供给terrafrom。
问题是,当我执行脚本时,azure给我一个错误,说:
code":"BadRequest", "message": "The user xxxxx-80b is not the tenant admin of tenant xxxxxx-xxxxxfca38.
但是,当我使用电子邮件和密码登录Azure门户时,我可以创建AZ AD Domain Service
,而不会出现任何错误。
如何为执行此类操作的用户创建具有权限的服务主体?最初,我认为--role="Owner"
就足够了。
或者,是否可以获取我用来登录Azure门户的同一帐户的客户端ID和密码?
P.S:我正在使用天蓝色的未与任何组织AD关联的个人帐户。
答案 0 :(得分:1)
我没有个人帐户可以订阅测试。只需参考以下步骤即可尝试。
我正在使用不与任何组织AD关联的天蓝色的个人帐户。
登录到Azure门户时,实际上存在一个默认目录,但是如果直接在Azure AD中创建AD App,则无法选择单租户应用。
1。在门户中导航到Azure AD-> Create a directory
(我们以后不再使用该目录,只是因为该操作会使Default Directory
出现)。
成功创建目录后,关闭浏览器(不刷新)并打开一个新目录,登录到门户网站,单击以下按钮,您将找到Default Directory
。
2。导航到门户中的订阅->检查Directory
,然后您将知道订阅所在的目录,并确保My role
是Owner
或{{ 1}},否则将无法成功运行命令User Access Administrator
。
3。如果您的订阅位于az ad sp create-for-rbac --role="Owner" --scopes="/subscriptions/xxxxxxxx-xxxxxfca38"
中,则可以导航到Azure AD-> Default directory
->将Properties
设置为Access management for Azure resources
,然后您将Yes
。(如果您已经是User Access Administrator
或Owner
,请忽略此步骤。)
4。然后,使用以下命令登录Azure CLI,并使用预订所在的User Access Administrator
指定tenant
。
tenant ID
5。运行命令az login --tenant <tenant>
,它应该可以工作。