当前位置: 首页 > 知识库问答 >
问题:

为什么Azure托管标识显示为无效的资源ID

章安易
2023-03-14

我试图使用Azure Key Vault存储Web应用的连接字符串。

我的第一步是为我的应用服务创建一个托管标识。

完成此操作并获得可用的对象ID后,我导航到我的密钥库,并授予以前的身份权限以获取

当我浏览到关键的保险库秘密时,我会得到以下信息:

对我来说,这与我刚才设置的相矛盾。我有列表权限。此外,使用以下方式检查CLI中创建的托管标识:

az identity show --ids b38196d2-be05-4681-b93a-828d4cd63034
invalid resource ID: b38196d2-be05-4681-b93a-828d4cd63034

web应用服务与数据库/服务器一起位于资源组中。密钥库位于另一个资源组中。对于我的CI/dev,我使用以下方法创建了一个服务主体:

az ad sp create-for-rbac -n appx --role contributor --scopes "/subscriptions/d95201ae-f361-4c30-a527-581695bfab01/resourceGroups/example-resources" --sdk-auth

并将输出存储在我的github秘密中作为AZURE_CREDENTIALS。这很好。我的网络应用程序也一样,测试连接字符串仍在appsettings.json.

我不明白我的管理身份出了什么问题。

共有1个答案

杨学真
2023-03-14

正如AnsumanBal MT所提到的(回到你在问题中提到的),据我们所知,你只在KV的秘密访问策略中添加了WebApp的身份。您没有将自己的用户主体添加到KV的秘密策略中,这就是为什么您看到错误,即您无权查看内容。AppService是允许的,但你没有。

您在下面看到的这个错误是因为您没有正确使用该命令。它不以标识的对象ID作为参数。

az identity show --ids b38196d2-be05-4681-b93a-828d4cd63034
invalid resource ID: b38196d2-be05-4681-b93a-828d4cd63034

查看az identity文档,您需要解析AppService的完整资源ID,您可以在WebApp的属性部分找到它。

例如。:

az identity show --ids /subscriptions/mysubscription/resourceGroups/myrg/providers/Microsoft.Web/sites/myapp
 类似资料:
  • 我们计划在我们的单个Azure kubernetes集群上部署多个应用程序,每个应用程序都将拥有自己的一组Azure资源-例如:Key vault、Storage。 我计划为每个应用程序提供个人托管身份,并提供对相关资源的访问。 我知道AZURE AAD POD identify是配置POD以使用托管标识访问AZURE资源的方法。 但是,如何将多个托管标识添加到Azure kubernetes集群

  • 我试图使用托管标识从API管理实例调用Azure函数。我已为我的APIM实例设置了系统管理的标识。我已将参与者角色授予Azure Function应用程序上的此身份。我还将应用程序服务身份验证更改为AD。 现在我尝试从API调用该函数。 我有两个问题: 第一个:当我使用身份验证管理身份策略来获取令牌时,我得到了一个错误,当我使用受众https://myfunctionapp.azurewebsit

  • 我有一个连接到MySQL的服务方法,可以在中获取数据,最后在

  • 本文向大家介绍详解C# 托管资源和非托管资源,包括了详解C# 托管资源和非托管资源的使用技巧和注意事项,需要的朋友参考一下 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调用垃圾回收器进行回收。 非托管资源指的是.NET不知道如何回收的资源,最常见的一类非托管资源是包装操作系统资源的对象,例如文件,窗口,网

  • 有没有办法将Azure托管标识与LinuxVM一起使用来访问AzureSQL数据库?我只能找到这个文档https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql它专门针对Windows VM。Linux机器是否有文档

  • 注释了println语句,但未注释unicode。为什么?