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

无法使用用户分配的托管标识检索keyvault机密

公良奇
2023-03-14


我有一个控制台应用,使用的是"Microsoft. Azure. Services. AppAuthentiation"Version="1.2.0-preview"和"Microsoft. Azure. KeyVault"Version="3.0.2"。

我在Windows 2019虚拟机上有一个用户分配的托管标识。

托管标识已在我的keyvault上获得贡献者角色分配,并读取到它所在的资源组。

我使用的是用户指定的托管身份,目的是在kubernetes吊舱(带有aad吊舱身份)中运行类似的应用程序。我将连接字符串环境变量设置为AzureServicesAuthConnectionString RunAs=App;

当我试图连接到密钥库检索一个秘密时,我得到一个禁止异常:

未处理的异常:系统。聚合异常:发生了一个或多个错误。(操作返回无效的状态代码“禁止”)---

当我尝试使用"Microsoft. Azure. Management. ResourceManager"Version="2.0.0-preview"创建资源组时,它工作正常,因此用户分配的MI适用于此。

我尝试了完全相同的密钥库代码,但与系统分配托管标识,它工作正常,所以权限很好,代码工作正常。

有没有人能做到这一点。净核心?

共有1个答案

周宸
2023-03-14

从KeyVault或向KeyVault读取或写入机密是对Key Vault本身的操作,并且基于访问策略集允许(或不允许)。

您所指的参与者角色属于Azure Resource Manager RBAC系统,允许管理KeyVault(例如分配访问策略)。

最有可能有效的身份既有RBAC分配,也有访问策略。不起作用的需要访问策略(不需要RBAC分配)

有关访问策略的更多信息,请参见:https://docs.microsoft.com/en-us/azure/key-vault/key-vault-get-started#authorize

 类似资料:
  • > 创建用户分配托管标识Azure资源 提供了对给定密钥库的用户身份的访问 现在,当我试图使用以下C#代码访问keyvault时,它的抛出异常: 加载KV设置时出现异常错误:: 发生了一个或多个错误。(参数:连接字符串:[未指定连接字符串]、资源:https://vault.azure.net、权限:https://login.windows.net/xxxxxxxxx.异常消息:尝试了以下3种方

  • 我正在尝试各种Azure功能,目前希望从KeyVault检索一个秘密。 直截了当地说: 我正在使用这个nuget包与我的azure资源进行交互。 我开发了一个简单的。NET核心控制台应用程序,并在本地运行。 我有一个密钥库资源,其中定义了一个处于活动状态且未过期的秘密。 我在AAD中注册了一个应用程序,因此我的本地出货。NET Core控制台应用程序在AAD中具有标识。 然后我在AAD的注册应用程

  • null 更新: 对于用户分配的标识,需要指定对象id或客户端id。

  • 获取"服务器验证请求失败。请确保包括签名在内的授权标头的值正确形成。"使用C#语言在Azure中尝试使用系统分配托管标识时出错。 接下来是步骤 创建了一个启用标识(系统分配)的新VM 使用存储帐户中的角色分配在IAM中添加虚拟机 能够使用C# 但在阅读blob时遇到异常,下面是异常的详细信息 课程 AzureCloudBlob类,用于使用系统分配的托管Idenitity访问令牌连接和读取blob

  • 我能够通过Azure function managed identity使用下面的URI读取keyvault机密。 @Microsoft. KeyVault(https://myvault.vault.azure.net/secrets/mysecret/) 我提供了获取和设置机密访问FA托管身份使用Keyvault访问策略。 如何利用托管身份更新keyvault中的秘密。我正在使用visual

  • 接下来的步骤是: 创建了启用标识的新虚拟机(已分配系统) 使用存储帐户中的角色分配在IAM中添加虚拟机 能够使用C#生成令牌 为现有VM获取托管标识服务。 使用-az keyvault set-policy--name“”--object-id“--secret-permissions get list分配了访问azure KV的权限 现在,在执行来自VM的代码时,我得到一个错误