将Azure应用程序服务连接到支持密钥库的应用程序配置会引发403



我想知道如何将我的应用程序服务正确连接到同样通过KeyVault支持的应用程序配置。

遗憾的是,我并没有真正找到一个完美的教程,所以现在我有点困惑,这不起作用。

这是我的错误:

Unhandled exception. Microsoft.Extensions.Configuration.AzureAppConfiguration.KeyVaultReferenceException: Key vault error. ErrorCode:, Key:copied out, Label:, Etag:copied out, SecretIdentifier:https://copied out.vault.azure.net/secrets/copied out
2021-03-21T00:07:43.756601504Z  ---> Azure.RequestFailedException: Service request failed.
2021-03-21T00:07:43.756608304Z Status: 403 (Forbidden)
2021-03-21T00:07:43.756614804Z Content:
2021-03-21T00:07:43.756614804Z {"error":{"code":"Forbidden","message":"The user, group or application 'appid=copied out;oid=copied out;iss=https://sts.windows.net/copied out/' does not have secrets get permission on key vault 'moonwatch;location=eastus'. For help resolving this issue, please see https://go.microsoft.com/fwlink/?linkid=2125287","innererror":{"code":"AccessDenied"}}}

(注意,我已经复制了敏感数据

我对此有点激动。这是我的设置:

ConfigBuilder.AddAzureAppConfiguration(options =>
{
var credentials = new ManagedIdentityCredential();
options.Connect(new Uri("https://copied out.azconfig.io"), credentials)
.ConfigureKeyVault(kv => kv.SetCredential(credentials));
});

以下是我目前配置资源的方式:

  1. 我的应用程序服务具有托管、系统分配的标识
  2. 应用程序配置包含我的所有配置,以及一些由keyvault支持的配置条目
  3. 密钥库被设置为";保险库访问";作为访问策略,并根据设置过程正确连接到应用程序配置
  4. 我的应用服务应用程序被分配角色";应用程序配置数据读取器";在我的应用程序配置中

我现在不完全确定这个设置在哪里仍然出错。我现在已经尝试了几种方法,切换到RBAC,到处更改设置,但似乎还没有什么效果。RBAC将错误更改为:

2021-03-21T00:07:43.756618504Z {"error":{"code":"Forbidden","message":"Caller is not authorized to perform action on resource.rnIf role assignments, deny assignments or role definitions were changed recently, please observe propagation time.rnCaller: appid=copied out;oid=copied out;iss=copied out/rnAction: 'Microsoft.KeyVault/vaults/secrets/getSecret/action'rnResource: '/subscriptions/copied out/resourcegroups/moonwatch/providers/microsoft.keyvault/vaults/copied out/secrets/copied out'rnAssignment: (not found)rnVault: copied out;location=eastusrn","innererror":{"code":"ForbiddenByRbac"}}} 

我哪里错了?我是否也需要以某种方式将我的应用程序本身连接到keyvault?这看起来对我来说是一件传递性的事情

发生此错误的原因是您的应用程序服务无权访问您的密钥库。Azure应用程序配置不会访问您的密钥保管库。你的应用程序会。在密钥库的访问策略中,请授予应用程序服务的托管身份"获取"机密权限。

相关内容

  • 没有找到相关文章

最新更新