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

如何让MSI启用功能的应用程序访问密钥库?

黄跃
2023-03-14

我有一个启用了托管服务标识(MSI)的功能应用程序。

我正在尝试使用这个功能应用程序从我的密钥库访问一个秘密。

我已经将代码添加到我的函数应用程序中来检索秘密。

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();

var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));

var secret = await keyVaultClient.GetSecretAsync("https://test-prototype-vault.vault.azure.net/secrets/batman/guidhere").ConfigureAwait(false);
Microsoft.Azure.WebJobs.Script: One or more errors occurred. Microsoft.Azure.KeyVault: Access denied.

当我尝试添加主体时会发生什么。

共有1个答案

张翰海
2023-03-14

本博客有详细内容,但您需要进入密钥库,并在新的访问策略中给予功能应用程序访问机密的权限

https://medium.com/@jeffhollan/getting-key-vault-secrets-in-azure-functions-37620FD20A0B

你的功能应用程序的名称应该显示在用户列表中

 类似资料:
  • 我在过去为Azure函数使用了很多秘密,现在我试图使用一个密钥,RSA加密,4096位。这是一个私有的PuTTy.ppk键,我已经将其导出为。pem类型以满足Azure的要求。我有一个Python 3.7应用程序,我已经在其中部署了所需的功能,并尝试在应用程序设置中引用所需的键,下面的语句是: @microsoft.keyvault(secreturi=https://{thevault-addr

  • 我正试图用我的Azure函数使用PowerShell连接到Keyvault。已打开托管服务标识(MSI),并且在Keyvault中,我授予MSI“GET”和“List”访问策略。使用下面的脚本,我成功地获得了一个访问令牌,但是当我向Keyvault发出请求时,我总是收到401响应。 知道为什么令牌不够吗?

  • 由于我是Azure的新手,这个问题可能很傻。我正在尝试构建一个提供和管理虚拟机集群的服务。出于安全考虑,我不想在每个集群上放一些敏感数据。因此我决定为每个集群提供一个Azure密钥库来存储这些数据,并创建一个MSI(managed identity)并分派给集群的每个节点,这样vm就可以访问密钥库来获取机密。 在服务端,我需要提供vms、密钥库和MSI。将MSI分配给每个VM,同时授予MSI访问A

  • 这个Python脚本被部署为从Azure函数应用程序运行在Linux消费计划上,这个脚本被期望从Azure密钥库中读取机密。 除了代码部署之外,还进行了以下配置 null 此错误说明应用程序没有密钥库上的机密获取权限,但如上所述,将角色分配给在密钥库上具有阅读器角色的功能应用程序。 配置中可能出现的问题是什么?如何缓解?

  • 我想通过托管服务标识(MSI)从我的Service Fabric应用程序访问密钥库。我已经在Azure门户中设置的虚拟机规模上启用了MSI,并授予它访问我的密钥库资源的权限。这就像一个云中的魅力。然而,我的本地开发环境有问题。 据我所知,我可以授予自己对密钥库的访问权,并在Azure CLI中运行。唉,当在本地Service Fabric集群中运行应用程序时,这就不起作用了。我假设这是因为一个本地