具有对象 ID 的客户端无权在范围内执行操作“Microsoft.CognitiveServices/accounts/listKeys/action”

问题描述 投票:0回答:1

我在资源组中创建了新的 Azure AI 服务资源。我在包含此 Azure AI 服务资源的资源组中具有贡献者访问权限。

我的问题是我无法使用此 az cli 命令列出密钥。我已经使用 az login 登录。

az cognitiveservices account keys list --name alper-azure-ai-service --resource-group alper-playground

我收到此错误消息: (AuthorizationFailed)对象 ID 为“{myObjectId}”的客户端“alper.silistre@{myCompanyEmail}”无权在范围“/subscriptions/{subscriptionObjectId}”上执行操作“Microsoft.CognitiveServices/accounts/listKeys/action” /resourceGroups/alper-playground/providers/Microsoft.CognitiveServices/accounts/alper-azure-ai-service' 或范围无效。如果最近授予了访问权限,请刷新您的凭据。

我可以从 Azure 门户访问密钥和端点部分:

我们在IAM中还可以看到我是来自RG的Contributor(继承):

现在,很明显贡献者已经拥有“Microsoft.CognitiveServices/accounts/listKeys/action”:

所以,我不确定我在这里缺少什么,因为我应该能够使用 az cli 命令列出密钥。我绝对拥有从资源组继承的贡献者访问权限。

作为参考,我正在关注此 Microsoft Learn 练习:https://microsoftlearning.github.io/mslearn-ai-services/Instructions/Exercises/02-ai-services-security.html

azure azure-cli azure-rbac azure-ai
1个回答
0
投票

我通过在 az recognizeservices 下尝试不同的 az cli 命令发现了问题。例如,当我运行此

az cognitiveservices account show --name alper-azure-ai-service --resource-group alper-playground'
时,它会给出以下错误:

(ResourceGroupNotFound) Resource group 'alper-playground' could not be found.
Code: ResourceGroupNotFound
Message: Resource group 'alper-playground' could not be found.

这给了我一个想法,专门将 --subscription 放入我原来的命令中。因此,当我使用以下命令运行原始 cli 命令时:

az cognitiveservices account keys list --subscription {mySubscriptionName} --name alper-azure-ai-service --resource-group alper-playground
成功了。

这里有趣的是,虽然

az cognitiveservices account show
给出 ResourceGroupNotFound 错误,但
az cognitiveservices account keys list
给出 AuthorizationFailed 错误,在我看来,这很令人困惑。

© www.soinside.com 2019 - 2024. All rights reserved.