我在资源组中创建了新的 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
我通过在 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 错误,在我看来,这很令人困惑。