【问题标题】:Multicontainer Azure WebApp not working with Managed Identity多容器 Azure WebApp 无法使用托管标识
【发布时间】:2021-06-14 12:22:51
【问题描述】:

场景/重现

我有多容器(教程here)天蓝色网络应用程序。我将系统分配的身份分配给我的 Web 应用程序。我的 docker compose 中有两个容器:

  • Net core WebApi 容器
  • 防病毒 ClamAv 容器

一切正常(我的 API 使用防病毒软件扫描文件),直到我为 Azure 资源 (link) 添加具有托管标识的密钥库配置提供程序。这与我在 linux 上的标准 Web 应用程序完美配合。

// Program.cs
.ConfigureAppConfiguration((context, config) =>
{
  if (context.HostingEnvironment.IsProduction())
  {
    var builtConfig = config.Build();
    var secretClient = new SecretClient(new Uri($"https://{builtConfig["KeyVaultName"]}.vault.azure.net/"),
    new DefaultAzureCredential());
    config.AddAzureKeyVault(secretClient, new KeyVaultSecretManager());
  }
})

问题 我的 API 返回 503 状态码。 看来我需要做一些额外的配置才能使它与 Docker compose 一起使用。

EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
2021-06-14T11:42:46.912167603Z - ManagedIdentityCredential authentication unavailable. No Managed Identity endpoint found.
2021-06-14T11:42:46.912175503Z - Operating system Linux 5.4.0-1031-azure #32~18.04.1-Ubuntu SMP Tue Oct 6 10:03:22 UTC 2020 isn't supported.
2021-06-14T11:42:46.912183204Z - Stored credentials not found. Need to authenticate user in VSCode Azure Account.
2021-06-14T11:42:46.912190304Z - Azure CLI not installed
2021-06-14T11:42:46.912197204Z - PowerShell is not installed.
2021-06-14T11:42:46.912205004Z ---> System.AggregateException: Multiple exceptions were encountered 
...
Azure.Identity.CredentialUnavailableException: EnvironmentCredential authentication unavailable. Environment variables are not fully configured.
...
Azure.Identity.CredentialUnavailableException: Operating system Linux 5.4.0-1031-azure #32~18.04.1-Ubuntu SMP Tue Oct 6 10:03:22 UTC 2020 isn't supported.

似乎不完全支持此功能。知道如何在这种情况下使用 key vault proivder 吗?

【问题讨论】:

  • 请确认您是否已授予 getlist 对密钥保管库机密资源的托管标识的权限。这是您在帖子中提到的教程中的 sn-p:az keyvault set-policy --name {KEY VAULT NAME} --object-id {OBJECT ID} --secret-permissions get list
  • 是的,我做到了。正如我所提到的,这与我的标准 Web 应用程序完美配合。问题在于 docker compose 应用程序。异常详细信息表明错误是在 Web 应用环境中。
  • Web 应用环境自行设置此变量。用户看不到它,例如在库杜

标签: c# azure docker-compose azure-keyvault


【解决方案1】:
猜你喜欢
  • 2020-07-03
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2022-11-11
相关资源
最近更新 更多